MjAxNS0xMi0xNyAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IERvbid0IGJ1aWxkIGRlZmF1bHQgbGlibm9zeXMgZm9yIG1zcDQzMAoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIG1zcDQzMC9NYWtlZmlsZTogUmVuYW1lIGxpYmNpbyB0byBsaWJub3N5cy4KCgkqIG1zcDQzMC9jaW8uYzogUmVtb3ZlLCByZXBsYWNlIHdpdGguLi4KCSogbXNwNDMwL2Npby5TOiBOZXcsIHRoaXMuCgoyMDE1LTEyLTE2ICBLZXZpbiBCdWV0dG5lciAgPGtldmluYkByZWRoYXQuY29tPgoKCSogcmw3OC93cml0ZS5jIChfd3JpdGUpOiBEb24ndCBvdXRwdXQgQ1Igd2hlbiBMRiBpcyBlbmNvdW50ZXJlZC4KCjIwMTUtMTItMDQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBtc3A0MzAvbXNwNDMweGwtc2ltLmxkIChfX2hpZ2hfYnNzc2l6ZSk6IERlZmluZS4KCjIwMTUtMTEtMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBtc3A0MzAvbXNwNDMweGwtc2ltLmxkIChfX2hpZ2hfYnNzc2l6ZSk6IFByb3ZpZGUuCgoyMDE1LTExLTEyICBBbnRvbiBLb2xlc292ICA8QW50b24uS29sZXNvdkBzeW5vcHN5cy5jb20+CgoJKiBjb25maWd1cmU6IEFkZCBBUkMgc3VwcG9ydC4KCSogY29uZmlndXJlLmluOiBMaWtld2lzZS4KCSogYXJjL01ha2VmaWxlLmluOiBMaWtld2lzZS4KCSogYXJjL2FjbG9jYWwubTQ6IExpa2V3aXNlLgoJKiBhcmMvY29uZmlndXJlOiBMaWtld2lzZS4KCSogYXJjL2NvbmZpZ3VyZS5pbjogTGlrZXdpc2UuCgkqIGFyYy9jcnQwLlM6IExpa2V3aXNlLgoJKiBhcmMvbGliY2Z1bmMuYzogTGlrZXdpc2UuCgkqIGFyYy9uc2ltLXN5c2NhbGwuaDogTGlrZXdpc2UuCgkqIGFyYy9uc2ltLXN5c2NhbGxzLmM6IExpa2V3aXNlLgoJKiBhcmMvbnNpbS5zcGVjczogTGlrZXdpc2UuCgkqIGFyYy9zYnJrLmM6IExpa2V3aXNlLgoKMjAxNS0xMC0yMCAgS2F1c2hpayBQaGF0YWsgPGthdXNoaWsucGhhdGFrQGtwaXQuY29tPgoKICAgICAgICAqIHJsNzgvY3J0MC5TIChfc3RhcnQpOiBGaXhlZCBjb2RlIHRoYXQgY2xlYXJzIC5ic3MKCjIwMTUtMTAtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBtc3A0MzAvbXNwNDMwLXNpbS5sZDogQWRkIC5wZXJzaXN0ZW50IHNlY3Rpb24uCglUaWR5IHVwIHNlY3Rpb24gbGF5b3V0LgoJU3RhcnQgUkFNIGFib3ZlIGhhcmR3YXJlIG11bHRpcGx5IHJlZ2lzdGVycy4KCSogbXNwNDMwL21zcDQzMHhsLXNpbS5sZDogTGlrZXdpc2UuCgoyMDE1LTA5LTA0ICBKYW1lcyBCb3dtYW4gIDxqYW1lcy5ib3dtYW5AZnRkaWNoaXAuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgZnQzMiBzdXBwb3J0LgoJKiBmdDMyL3NicmsuYzogTmV3IGZpbGUuCgkqIGZ0MzIvc2ltLWNsb3NlLlM6IERpdHRvLgoJKiBmdDMyL3NpbS1leGl0LlM6IERpdHRvLgoJKiBmdDMyL3NpbS1pbmJ5dGUuYzogRGl0dG8uCgkqIGZ0MzIvc2ltLmxkOiBEaXR0by4KCSogZnQzMi9zaW0tbHNlZWsuYzogRGl0dG8uCgkqIGZ0MzIvc2ltLWxzZWVrLlM6IERpdHRvLgoJKiBmdDMyL3NpbS1vcGVuLlM6IERpdHRvLgoJKiBmdDMyL3NpbS1yZWFkLlM6IERpdHRvLgoJKiBmdDMyL3NpbS10aW1lLmM6IERpdHRvLgoJKiBmdDMyL3NpbS11bmxpbmsuUzogRGl0dG8uCgkqIGZ0MzIvc2ltLXdyaXRlLlM6IERpdHRvLgoJKiBmdDMyL3N0YXQuYzogRGl0dG8uCgkqIGZ0MzIvY29uZmlndXJlLmluOiBEaXR0by4KCSogZnQzMi9jcnQwLlM6IERpdHRvLgoJKiBmdDMyL2ZzdGF0LmM6IERpdHRvLgoJKiBmdDMyL2dldHBpZC5jOiBEaXR0by4KCSogZnQzMi9pc2F0dHkuYzogRGl0dG8uCgkqIGZ0MzIva2lsbC5jOiBEaXR0by4KCSogZnQzMi9NYWtlZmlsZS5pbjogRGl0dG8uCgoyMDE1LTA4LTIwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIGxpYmdsb3NzLzE4Nzg2CgkqIG1zcDQzMC9jcnQwLlM6IFJlbW92ZSB3YXRjaGRvZyBkaXNhYmxpbmcgY29kZS4KCjIwMTUtMDgtMDcgU3RlZmFuIFdhbGxlbnRvd2l0eiA8c3RlZmFuLndhbGxlbnRvd2l0ekB0dW0uZGU+CgoJKiBvcjFrL2JvYXJkcy9vcHRpbXNvYy5TOiBGaXggc3ltYm9sIG5hbWUKCSogb3Ixay9jcnQwLlM6IFJlbW92ZSBwYXJhbnRoZXNpcwoKMjAxNS0wOC0wNyBTdGVmYW4gV2FsbGVudG93aXR6IDxzdGVmYW4ud2FsbGVudG93aXR6QHR1bS5kZT4KCgkqIG9yMWsvY3J0MC5TOiBBZGQgZXhjZXB0aW9uIG5lc3RpbmcKCSogb3Ixay9leGNlcHRpb25zLWFzbS5TOiBkaXR0bwoJKiBvcjFrL3V0aWwuYzogZGl0dG8KCjIwMTUtMDgtMDcgU3RlZmFuIFdhbGxlbnRvd2l0eiA8c3RlZmFuLndhbGxlbnRvd2l0ekB0dW0uZGU+CgoJKiBvcjFrL3NicmsuYzogTWFrZSBoZWFwIGVuZCBnbG9iYWxseSB2aXNpYmxlCgoyMDE1LTA4LTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmw3OC9ybDc4LXNpbS5sZDogUHJvdmlkZSBhIHZhbHVlIGZvciBfX3JsNzhfYWJzX18uCgkqIHJsNzgvcmw3OC5sZDogTGlrZXdpc2UuCgoyMDE1LTA3LTE0ICBBbmRyZSBWaWVpcmEgIDxhbmRyZS5zaW1vZXNkaWFzdmllaXJhQGFybS5jb21cPgoKCSogYXJtL2VsZi1uYW5vLnNwZWNzOiBBZGRlZCBvcHRpb24gdG8gc2VhcmNoIGZvciBzeXN0ZW0gaGVhZGVycyBpbgoJbmV3bGliLW5hbm8gZGlyZWN0b3J5LgoKMjAxNS0wNS0yNiAgU3RlZmFuIFdhbGxlbnRvd2l0eiAgPHN0ZWZhbi53YWxsZW50b3dpdHpAdHVtLmRlPgoKCSogb3Ixay9pbXB1cmUuYzogRml4IGluaXRpYWxpemF0aW9uIG9mIGltcHVyZSBwdHIKCjIwMTUtMDUtMjYgIFN0ZWZhbiBXYWxsZW50b3dpdHogIDxzdGVmYW4ud2FsbGVudG93aXR6QHR1bS5kZT4KCgkqIG9yMWsvYm9hcmRzL29wdGltc29jLlM6IEhlYXAgZm9yIGd6bGwga2VybmVsCgoyMDE1LTA1LTI2ICBTdGVmYW4gV2FsbGVudG93aXR6ICA8c3RlZmFuLndhbGxlbnRvd2l0ekB0dW0uZGU+CgoJKiBvcjFrL3NicmsuYzogQWxsb3cgZm9yIGRpZmZlcmVudCBoZWFwIHN0YXJ0CgoyMDE1LTA1LTI2ICBTdGVmYW4gV2FsbGVudG93aXR6ICA8c3RlZmFuLndhbGxlbnRvd2l0ekB0dW0uZGU+CgoJKiBvcjFrL29yMWtfdWFydC5jOiBGaXggaW50ZXJydXB0cwoKMjAxNS0wNS0yNiAgU3RlZmFuIFdhbGxlbnRvd2l0eiAgPHN0ZWZhbi53YWxsZW50b3dpdHpAdHVtLmRlPgoKCSogb3Ixay90aW1lci5jOiBQcm9wZXJseSBzZXQgaW50ZXJydXB0IGZsYWdzCgoyMDE1LTA1LTI2ICBTdGVmYW4gV2FsbGVudG93aXR6ICA8c3RlZmFuLndhbGxlbnRvd2l0ekB0dW0uZGU+CgoJKiBvcjFrL2V4Y2VwdGlvbi1hc20uUzogU3RvcmUgbWlzc2luZyBzdGF0ZQoKMjAxNS0wNS0yNiAgU3RlZmFuIFdhbGxlbnRvd2l0eiAgPHN0ZWZhbi53YWxsZW50b3dpdHpAdHVtLmRlPgoKCSogb3Ixay9jcnQwLlM6IEZpeCBleGNlcHRpb24gc3RhY2sgZnJhbWUKCSogb3Ixay9leGNlcHRpb24tYXNtLlM6IGRpdHRvCgoyMDE1LTA1LTI2ICBTdGVmYW4gV2FsbGVudG93aXR6ICA8c3RlZmFuLndhbGxlbnRvd2l0ekB0dW0uZGU+CgoJKiBvcjFrL2ludGVycnV0cy1hc20uUzogQ2hhbmdlIHJlZ2lzdGVycyB0byBjYWxsZWUtc2F2ZWQuCgoyMDE1LTA1LTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbXNwNDMwL21zcDQzMC1zaW0ubGQgKC5zdGFjayk6IEFkZCBhbiBhc3NlcnRpb24gdG8gbWFrZSBzdXJlCgl0aGF0IHRoZSBkYXRhIGFyZWEgZG9lcyBub3Qgb3ZlcnJ1biB0aGUgc3RhY2suICBQUk9WSURFIGEgbmV3CglzeW1ib2wgX19zdGFja19zaXplIHRvIGFsbG93IHRoZSB1c2VyIHRvIHNldCB0aGUgbGltaXQuCgkqIG1zcDQzMC9tc3A0MzB4bC1zaW0ubGQgKC5zdGFjayk6IExpa2V3aXNlLgoJKiBybDc4L3JsNzgtc2ltLmxkICguc3RhY2spOiBMaWtld2lzZS4KCSogcmw3OC9ybDc4LmxkICguc3RhY2spOiBMaWtld2lzZS4KCSogcngvcngtc2ltLmxkICguc3RhY2spOiBMaWtld2lzZS4KCSogcngvcngubGQgKC5zdGFjayk6IExpa2V3aXNlLgoKMjAxNS0wNS0wNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIG1zcDQzMC9tc3A0MzAubGQ6IERlbGV0ZS4KCSogbXNwNDMwL21zcDQzMEY1NDM4QS1sLmxkOiBEZWxldGUuCgkqIG1zcDQzMC9tc3A0MzBGNTQzOEEtcy5sZDogRGVsZXRlLgoJKiBtc3A0MzAvY3J0X21vdmVkYXRhLlM6IERlbGV0ZS4KCgkqIG1zcDQzMC9NYWtlZmlsZS5pbiAoU0NSSVBUUyk6IFJlbW92ZSBtc3A0MzAubGQuCgkoQ1JUX09CSlMpOiBBZGQgY3J0X21vdmVfaGlnaGRhdGEuby4KCSogbXNwNDMwL21lbW1vZGVsLmggKFNUQVJUX0NSVF9GVU5DKTogTmV3IG1hY3JvLgoJKEVORF9DUlRfRlVOQyk6IE5ldyBtYWNyby4KCShXRUFLX0RFRik6IE5ldyBtYWNyby4KCSogbXNwNDMwL2NydDAuUzogVXNlIG5ldyBtYWNyb3MuCgkobW92ZV9oaWdoZGF0YSk6IE5ldyBjb2RlIHRvIGluaXRpYWxpc2UgdGhlIC5kYXRhIHNlY3Rpb24gaWYgaXQgaXMKCWhlbGQgaW4gaGlnaCBtZW1vcnkuCgoJKiBtc3A0MzAvbXNwNDMwLXNpbS5sZCAoLmRhdGEpOiBBZGQgLmVpdGhlci5kYXRhLgoJKC5yb2RhdGEyKTogTW92ZSBzb21lIHJlYWQtb25seSBkYXRhIHNlY3Rpb25zIGhlcmUuCgkoLnRleHQpOiBBZGQgLmVpdGhlci50ZXh0LgoJKC5yb2RhdGEpOiBBZGQgLmVpdGhlci5yb2RhdGEuCgkoLmJzcyk6IEFkZCAuZWl0aGVyLmJzcy4KCSogbXNwNDMwL21zcDQzMHhsLXNpbS5sZCAoTUVNT1JZKTogQWRkIEhJUk9NLgoJKC5yb2RhdGEyKTogTW92ZSBzb21lIHJlYWQtb25seSBkYXRhIHNlY3Rpb25zIGhlcmUuCgkoLnVwcGVyLmRhdGEpOiBOZXcgc2VjdGlvbi4gIEluY2x1ZGUgbm90ZXMgYWJvdXQgaG93IHRvIGluaXRpYWxpc2UKCWl0LgoKMjAxNS0wNC0yMSAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIG1jb3JlL3N5c2NhbGwuaDogTmV3IGhlYWRlci4KCjIwMTUtMDQtMjEgIE1pa2UgRnJ5c2luZ2VyICA8dmFwaWVyQGdlbnRvby5vcmc+CgoJKiBhcm0vc3lzY2FsbC5oOiBBZGp1c3QgY29tbWVudCBoZWFkZXIuCgoyMDE1LTA0LTA5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcngvY3J0MC5TIChfc3RhcnQpOiBJZiBzdHJpbmcgaW5zdHJ1Y3Rpb25zIGFyZSBub3QgYWxsb3dlZCwKCWF2b2lkIHVzaW5nIFNNT1ZGLgoKMjAxNS0wNC0wOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJ4L3J4LmxkOiBBZGQgLm5vdGUgYW5kIERXQVJGMyBzZWN0aW9ucy4KCSogcngvcngtc2ltLmxkOiBMaWtld2lzZS4KCjIwMTUtMDQtMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBybDc4L3JsNzgubGQgKC5jc3N0YXJ0KTogQWRkIGEgS0VFUCBkaXJlY3RpdmUuCgkqIHJsNzgvcmw3OC1zaW0ubGQgKC5jc3N0YXJ0KTogQWRkIGEgS0VFUCBkaXJlY3RpdmUuCgoyMDE1LTAzLTA1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogdjg1MC9zaW0ubGQ6IEFkZCBhIC5ub3RlLnJlbmVzYXMgc2VjdGlvbi4KCjIwMTUtMDItMTcgIFJlbmxpbiBMaSAgPHJlbmxpbi5saUBhcm0uY29tPgoKCSogYXJtL2NydDAuUzogSW5pdGlhbGlzZSBfX2hlYXBfbGltaXQgd2hlbiBBUk1fUkRJX01PTklUT1IgaXMgZGVmaW5lZC4KCSogYXJtL3N5c2NhbGxzLmM6IGRlZmluZSBfX2hlYXBfbGltaXQgZ2xvYmFsIHN5bWJvbC4KCSogYXJtL3N5c2NhbGxzLmMgKF9zYnJrKTogSG9ub3VyIF9faGVhcF9saW1pdC4KCjIwMTUtMDItMTEgIFN0ZWZhbiBXYWxsZW50b3dpdHogIDxzdGVmYW4ud2FsbGVudG93aXR6QHR1bS5kZT4KCgkqIG9yMWsvb3Ixa191YXJ0LmM6IFdyaXRlIGJ1Z2ZpeCBhbmQgY2xlYW51cC9kb2N1bWVudGF0aW9uLgoJKiBvcjFrL29yMWtfdWFydC5oOiBDbGVhbnVwLgoKMjAxNS0wMS0yMiAgWWFha292IFNlbGtvd2l0eiAgPHlzZWxrb3dpQHJlZGhhdC5jb20+CgoJKiBzcGFyYy9jcnQwLlM6IERlY2xhcmUgdXNlIG9mIHN5c3RlbSByZWdpc3RlcnMuCgkqIHNwYXJjL2N5Z21vbi1jcnQwLlM6IERpdHRvLgoJKiBzcGFyYy9lcmMzMi1jcnQwLlM6IERpdHRvLgoJKiBzcGFyYy90cmFwcy5TOiBEaXR0by4KCjIwMTUtMDEtMjEgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAYWRhY29yZS5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBWaXNpdW0gc3VwcG9ydC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiB2aXNpdW0vOiBOZXcgZGlyZWN0b3J5LgoKMjAxNS0wMS0xNSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBybDc4L2NydDAuUzogSW5pdGlhbGl6ZSAuc2FkZHIuICBBdm9pZCB1c2luZyBTRUwuCgkqIHJsNzgvcmw3OC1zaW0ubGQ6IEFkZCAuc2FkZHIvLmZyb2RhdGEgc2VjdGlvbi4KCSogcmw3OC9ybDc4LmxkOiBMaWtld2lzZS4KCSogcmw3OC9ybDc4LXNpbS5sZDogTWFrZSByb29tIGZvciB2aXJ0dWFsIHJlZ2lzdGVyIGJhbmtzLgoJKiBybDc4L3JsNzgubGQ6IExpa2V3aXNlLgoKCSogcmw3OC92cmVncy5oOiBOZXcuCgkqIHJsNzgtc3lzLmg6IFVzZSBpdC4KCSogcmw3OC9zd3JpdGUuUzogTmV3LgoJKiBybDc4L01ha2VmaWxlLmluOiBCdWlsZCBpdC4KCSogcmw3OC93cml0ZS5jOiBVc2UgaXQuCgoyMDE1LTAxLTE0ICBTdGVmYW4gV2FsbGVudG93aXR6ICA8c3RlZmFuLndhbGxlbnRvd2l0ekB0dW0uZGU+CgoJKiBvcjFrL2luY2x1ZGUvb3Ixay1zcHJzLmg6IE5ldyBhdXRvLWdlbmVyYXRlZCBoZWFkZXIgZmlsZS4KCjIwMTUtMDEtMDUgIFlhYWtvdiBTZWxrb3dpdHogIDx5c2Vsa293aUByZWRoYXQuY29tPgoKCSogbG0zMi9NYWtlZmlsZS5pbiAoaW5zdGFsbCk6IFJlc3BlY3QgREVTVERJUi4KCShpbnN0YWxsLXNjcmlwdHMpOiBEaXR0by4KCSogbWVwL01ha2VmaWxlLmluIChpbnN0YWxsKTogRGl0dG8uCgkqIG10L01ha2VmaWxlLmluIChpbnN0YWxsKTogRGl0dG8uCgkqIHJsNzgvTWFrZWZpbGUuaW4gKGluc3RhbGwpOiBEaXR0by4KCjIwMTQtMTItMjcgIEFudGhvbnkgR3JlZW4gIDxncmVlbkBtb3hpZWxvZ2ljLmNvbT4KCgkqIG1veGllL2NydDAuUyAoX3N0YXJ0KTogc3ViLmwgaXMgbm93IHN1Yi4KCjIwMTQtMTItMTUgIFN0ZWZhbiBXYWxsZW50b3dpdHogIDxzdGVmYW4ud2FsbGVudG93aXR6QHR1bS5kZT4KCgkqIG9yMWsvTWFrZWZpbGUuaW46IEJ1aWxkIGFuZCBpbnN0YWxsIGJvYXJkIGxpYnJhcmllcwoJKiBvcjFrL2JvYXJkLmg6IE5ldyBmaWxlCgkqIG9yMWsvYm9hcmRzL1JFQURNRTogTmV3IGZpbGUKCSogb3Ixay9ib2FyZHMvYXRseXMuUzogTmV3IGZpbGUKCSogb3Ixay9ib2FyZHMvZGUwX25hbm8uUzogTmV3IGZpbGUKCSogb3Ixay9ib2FyZHMvbWw1MDEuUzogTmV3IGZpbGUKCSogb3Ixay9ib2FyZHMvbWw1MDkuUzogTmV3IGZpbGUKCSogb3Ixay9ib2FyZHMvb3B0aW1zb2MuUzogTmV3IGZpbGUKCSogb3Ixay9ib2FyZHMvb3Ixa3NpbS11YXJ0LlM6IE5ldyBmaWxlCgkqIG9yMWsvYm9hcmRzL29yMWtzaW0uUzogTmV3IGZpbGUKCSogb3Ixay9ib2FyZHMvb3JkYjFhM3BlMTUwMC5TOiBOZXcgZmlsZQoJKiBvcjFrL2JvYXJkcy9vcmRiMmEuUzogTmV3IGZpbGUKCSogb3Ixay9ib2FyZHMvb3Jwc29jcmVmZGVzaWduLlM6IE5ldyBmaWxlCgkqIG9yMWsvYm9hcmRzL3RtcGwuUzogTmV3IGZpbGUKCSogb3Ixay9ib2FyZHMvdG1wbC5jOiBOZXcgZmlsZQoKMjAxNC0xMi0xNSAgU3RlZmFuIFdhbGxlbnRvd2l0eiAgPHN0ZWZhbi53YWxsZW50b3dpdHpAdHVtLmRlPgoKCSogb3Ixay9NYWtlZmlsZS5pbjogQWRkIGxpYm9yMWsKCSogb3Ixay9SRUFETUU6IE5ldyBmaWxlCgkqIG9yMWsvY2FjaGVzLWFzbS5TOiBOZXcgZmlsZQoJKiBvcjFrL2V4Y2VwdGlvbnMtYXNtLlM6IE5ldyBmaWxlCgkqIG9yMWsvZXhjZXB0aW9ucy5jOiBOZXcgZmlsZQoJKiBvcjFrL2ltcHVyZS5jOiBOZXcgZmlsZQoJKiBvcjFrL2luY2x1ZGUvb3Ixay1ub3AuaDogTmV3IGZpbGUKCSogb3Ixay9pbmNsdWRlL29yMWstc3VwcG9ydC5oOiBOZXcgZmlsZQoJKiBvcjFrL2ludGVycnVwdHMtYXNtLlM6IE5ldyBmaWxlCgkqIG9yMWsvaW50ZXJydXB0cy5jOiBOZXcgZmlsZQoJKiBvcjFrL21tdS1hc20uUzogTmV3IGZpbGUKCSogb3Ixay9vcjFrLWludGVybmFscy5oOiBOZXcgZmlsZQoJKiBvcjFrL29yMWtfdWFydC5jOiBOZXcgZmlsZQoJKiBvcjFrL29yMWtfdWFydC5oOiBOZXcgZmlsZQoJKiBvcjFrL291dGJ5dGUuUzogTmV3IGZpbGUKCSogb3Ixay9zYnJrLmM6IE5ldyBmaWxlCgkqIG9yMWsvc3luYy1hc20uUzogTmV3IGZpbGUKCSogb3Ixay9zeXNjYWxscy5jOiBOZXcgZmlsZQoJKiBvcjFrL3RpbWVyLmM6IE5ldyBmaWxlCgkqIG9yMWsvdXRpbC5jOiBOZXcgZmlsZQoKMjAxNC0xMi0xNSAgU3RlZmFuIFdhbGxlbnRvd2l0eiAgPHN0ZWZhbi53YWxsZW50b3dpdHpAdHVtLmRlPgoKCSogUkVBRE1FOiBBZGQgZGV0YWlscyBhYm91dCBvcjFrLgoJKiBjb25maWd1cmUuaW46IEFkZCBvcjFrL29yMWtuZAoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBvcjFrL2FjbG9jYWwubTQ6IE5ldyBmaWxlLgoJKiBvcjFrL2NvbmZpZ3VyZTogRGl0dG8uCgkqIG9yMWsvTWFrZWZpbGUuaW46IE5ldyBmaWxlCgkqIG9yMWsvY29uZmlndXJlLmluOiBOZXcgZmlsZQoJKiBvcjFrL2NydDAuUzogTmV3IGZpbGUKCSogb3Ixay9pbmNsdWRlL29yMWstYXNtLmg6IE5ldyBmaWxlCgoyMDE0LTEyLTE1ICBOaWNrIEh1bmcgIDxuaWNrQGFuZGVzdGVjaC5jb20+CgoJKiBsaWJnbG9zcy9uZHMzMi9fZXhpdC5TOiBGaW5pc2ggd2l0aCBhbiBpbmZpbml0ZSBsb29wIGluIF9leGl0LgoJKiBsaWJnbG9zcy9uZHMzMi9fZ2V0cGlkLlM6IERvbid0IGlzc3VlIF9nZXRwaWQgc3lzdGVtIGNhbGwsIGl0IGlzCglhbHdheXMgc3VjY2Vzc2Z1bC4KCSogbGliZ2xvc3MvbmRzMzIvX2dldHRpbWVvZmRheS5TOiBObyBlcnJvciBmb3IgX2dldHRpbWVvZmRheSBpcyBkZWZpbmVkCglpbiBTWVNfZ2V0ZXJyIGhhbmRsZXIuCgkqIGxpYmdsb3NzL25kczMyL19pc2F0dHkuUzogTm8gZXJyb3IgZm9yIF9pc2F0dHkgaXMgZGVmaW5lZCBpbgoJU1lTX2dldGVyciBoYW5kbGVyLgoJKiBsaWJnbG9zcy9uZHMzMi9fa2lsbC5TOiBBbHdheSBmYWlsLiBlcnJubyA9IEVJTlZBTC4KCSogbGliZ2xvc3MvbmRzMzIvX2xpbmsuUzogQWx3YXkgZmFpbC4gZXJybm8gPSAgRU1MSU5LLgoJKiBsaWJnbG9zcy9uZHMzMi9fdGltZXMuUzogQWx3YXkgZmFpbC4gZXJybm8gPSBFQUNDRVMuCgkqIGxpYmdsb3NzL25kczMyL191bmxpbmsuUzogZml4IGNvcHkgYW5kIHBhc3RlIGVycm9yLgoJKiBsaWJnbG9zcy9uZHMzMi9jcnQwLlM6IEFkZCBwcmVfY19pbml0LCBwb3N0X2NfaW5pdCwgYXJnX2luaXQuCgkqIGxpYmdsb3NzL25kczMyL2NydDEuUzogQWRkIHByZV9jX2luaXQsIHBvc3RfY19pbml0LCBhcmdfaW5pdC4KCSogbGliZ2xvc3MvbmRzMzIvc3lzY2FsbF9leHRyYS5oOiBSZS1mb3JtYXQuCgkqIGxpYmdsb3NzL25kczMyL3ZoLmg6IEFkZCBtb3JlIHZpcnR1YWwgaG9zdGluZyBudW1iZXIuCgoyMDE0LTEyLTExICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CgoJKiBtb3hpZS9jb25maWd1cmU6IFJlYnVpbHQuCgoyMDE0LTExLTI4ICBKYXlkZWVwIFBhdGlsICA8amF5ZGVlcC5wYXRpbEBpbWd0ZWMuY29tPgoJICAgIE1hdHRoZXcgRm9ydHVuZSAgPE1hdHRoZXcuRm9ydHVuZUBpbWd0ZWMuY29tPgoKCSogbWlwcy9jcnQwLlM6IENvbmZpZ3VyZSBwcm9jZXNzb3IgYmFzZWQgb24gLk1JUFMuYWJpZmxhZ3MuCglSZW1vdmUgRlBVIGF2YWlsYWJpbGl0eSBjaGVjaywganVzdCB1c2UgdGhlIHByZS1wcm9jZXNzb3IgZmxhZ3MKCXRvIGluZGljaWNhdGUgd2hhdCB0aGUgdXNlciB3YW50ZWQuCgkqIG1pcHMvYWJpZmxhZ3MuUzogTmV3IGZpbGUuCgkqIG1pcHMvcmVncy5TIChTUl9NU0EpOiBEZWZpbmUgbWFjcm8uCgkqIG1pcHMvbXRpMzIubGQ6IFBsYWNlIC5NSVBTLmFiaWZsYWdzIGFuZCB3cmFwIGluIG1hcmtlciBzeW1ib2xzLgoJKiBtaXBzL210aTY0LmxkOiBMaWtld2lzZS4KCSogbWlwcy9tdGk2NF82NC5sZDogTGlrZXdpc2UuCgkqIG1pcHMvbXRpNjRfbjMyLmxkOiBMaWtld2lzZS4KCjIwMTQtMTEtMjYgIE1hdHRoZXcgRm9ydHVuZSAgPE1hdHRoZXcuRm9ydHVuZUBpbWd0ZWMuY29tPgoKCSogbWlwcy9jcnQwLlM6IFJlbW92ZSAuc2V0IG5vcmVvcmRlciB0aHJvdWdob3V0LgoJKHplcm9ic3MpOiBPcGVuIGNvZGUgdGhlIGJsdHUgbWFjcm8gaW5zdHJ1Y3Rpb24gc28gdGhhdCB0aGUKCXplcm8tbG9vcCBkb2VzIG5vdCBoYXZlIGEgTk9QIGluIHRoZSBicmFuY2ggZGVsYXkgc2xvdC4KCjIwMTQtMTEtMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBtc3A0MzAvTWFrZWZpbGUuaW4gKENSVF9PQkpTKTogQWRkIGNydF9oaWdoX2Jzcy5vLgoJKiBtc3A0MzAvY3J0MC5TIChoaWdoX2Jzcyk6IEFkZC4KCSogbXNwNDMwL21zcDQzMC1zaW0ubGQ6IEFkZCBlcnJvciBtZXNzYWdlIGlmIC51cHBlciBzZWN0aW9ucyBhcmUKCWRldGVjdGVkLgoJKiBtc3A0MzAvbXNwNDMweGwtc2ltLmxkIChNRU1PUlkpOiBBZGp1c3QgdG8gYmV0dGVyIG1pbWljIHJlYWwKCWxpZmUgTUNVcy4gIEFkZCBzdXBwb3J0IGZvciB1cHBlciBhbmQgbG93ZXIgc2VjdGlvbnMuCgoyMDE0LTEwLTIyICBUaW0gSGFyZGVyICA8cmFkaGVybWl0QGdtYWlsLmNvbT4KCgkqIG1zcDQzMC9NYWtlZmlsZS5pbjogUmVzcGVjdCBERVNURElSIGR1cmluZyBpbnN0YWxsLgoKMjAxNC0wOS0yMiAgUGV0ZXIgQS4gQmlnb3QgIDxwYWJAcGFiaWdvdC5jb20+CgoJKiBjb25maWd1cmUuaW46IFJlbW92ZSBjb25maWdfbGlibm9zeXM9ZmFsc2UKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCSogbXNwNDMwL25vc3lzY2FsbHMuUzogUmVuYW1lIHRvIGNpb3N5c2NhbGxzLlMKCSogbXNwNDMwL01ha2VmaWxlLmluOiBDaGFuZ2UgTElCTk9TWVMgdG8gTElCX0NJTy4KCjIwMTQtMDgtMTQgIEJpbiBDaGVuZyAgPGJpbi5jaGVuZ0Bhcm0uY29tPgoKCSogYXJtL2VsZi1uYW5vLnNwZWNzOiBOZXcgZmlsZS4KCSogYXJtL2VsZi1yZGltb24uc3BlY3M6IFN1cHBvcnQgbmFuby5zcGVjcy4KCSogYXJtL01ha2VmaWxlLmluOiBTdXBwb3J0IG5hbm8uc3BlY3MuCgkqIGxpYm5vc3lzL25vc3lzLnNwZWNzOiBTdXBwb3J0IG5hbm8uc3BlY3MuCgoyMDE0LTA3LTI3ICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CgoJKiBtb3hpZS9NYWtlZmlsZS5pbiAoTERfU0NSSVBUUyk6IEFkZCBtb3hpZWJveC5sZAoJQ29uZGl0aW9uYWxseSBidWlsZCBhbmQgaW5zdGFsbCBjcnQwLm8uCgkqIG1veGllL2NvbmZpZ3VyZS5pbjogRG9uJ3QgYnVpbGQgY3J0MC5vIGZvciBtb3hpZWJveC4KCSogbW94aWUvbW94aWVib3gubGQ6IE5ldyBmaWxlLgoKMjAxNC0wNy0xNiAgS3lyeWxvIFRrYWNob3YgIDxreXJ5bG8udGthY2hvdkBhcm0uY29tPgoKCSogYXJtL2VsZi1hcHJvZmlsZS12YWxpZGF0aW9uLnNwZWNzICgqbGluayk6IE1ha2UgdGV4dCBzZWdtZW50Cgk2NGstYWxpZ25lZC4KCSogYXJtL2VsZi1hcHJvZmlsZS12ZS5zcGVjcyAoKmxpbmspOiBMaWtld2lzZS4KCjIwMTQtMDQtMzAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBtc3A0MzAvTWFrZWZpbGUuaW4gKE5PU1lTX09CSlMpOiBBZGQgdW5saW5rLm8uCgkoU0NSSVBUUyk6IFJlbW92ZSBtc3A0MzBGNTQzOEEtcy5sZCBhbmQgbXNwNDMwRjU0MzhBLXMubGQuCgkqIHVubGluay5jOiBOZXcgZmlsZS4KCjIwMTQtMDQtMDQgIEFzaGlzaCBLYXBhbmlhICA8YWthcGFuaWFAdGkuY29tPgoKCSogYXJtL2NvbmZpZ3VyZS5pbjogKCotKi10aXJ0b3MqKSBBY2NlcHQgVElSVE9TIHRhcmdldCB3aGVuIHNldHRpbmcKCW9ianR5cGUKCSogYXJtL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDE0LTAzLTIxICBTYWJyaW5pIE5pICA8c2FicmluYW5pdHdAZ21haWwuY29tPgoKCSogbmRzMzIvX3NicmsuUzogQWRkIC5zaXplIGFuZCAudHlwZSBkaXJlY3RpdmUuCgoyMDE0LTAzLTIxICBTYWJyaW5pIE5pICA8c2FicmluYW5pdHdAZ21haWwuY29tPgoKCSogbmRzMzIvY3J0MC5TOiBUd2VhayBpbml0aWFsaXphdGlvbiBzcWV1ZW5jZS4KCSogbmRzMzIvY3J0MS5TOiBEaXR0by4KCjIwMTQtMDMtMjEgIFNhYnJpbmkgTmkgIDxzYWJyaW5hbml0d0BnbWFpbC5jb20+CgoJKiBuZHMzMi9fYXJndi5TOiBSZXBsYWNlIHN5c2NhbGwgd2l0aCBicmVhay4KCSogbmRzMzIvX2FyZ3ZsZW4uUzogRGl0dG8uCgkqIG5kczMyL19jaGRpci5TOiBEaXR0by4KCSogbmRzMzIvX2NobW9kLlM6IERpdHRvLgoJKiBuZHMzMi9fY2xvc2UuUzogRGl0dG8uCgkqIG5kczMyL19leGl0LlM6IERpdHRvLgoJKiBuZHMzMi9fZnN0YXQuUzogRGl0dG8uCgkqIG5kczMyL19nZXRwaWQuUzogRGl0dG8uCgkqIG5kczMyL19nZXR0aW1lb2ZkYXkuUzogRGl0dG8uCgkqIG5kczMyL19pc2F0dHkuUzogRGl0dG8uCgkqIG5kczMyL19raWxsLlM6IERpdHRvLgoJKiBuZHMzMi9fbGluay5TOiBEaXR0by4KCSogbmRzMzIvX2xzZWVrLlM6IERpdHRvLgoJKiBuZHMzMi9fb3Blbi5TOiBEaXR0by4KCSogbmRzMzIvX3JlYWQuUzogRGl0dG8uCgkqIG5kczMyL19yZW5hbWUuUzogRGl0dG8uCgkqIG5kczMyL19zdGF0LlM6IERpdHRvLgoJKiBuZHMzMi9fc3lzdGVtLlM6IERpdHRvLgoJKiBuZHMzMi9fdGltZS5TOiBEaXR0by4KCSogbmRzMzIvX3RpbWVzLlM6IERpdHRvLgoJKiBuZHMzMi9fdW5saW5rLlM6IERpdHRvLgoJKiBuZHMzMi9fdXRpbWUuUzogRGl0dG8uCgkqIG5kczMyL193cml0ZS5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF9lcnJvcl9oYW5kbGVyLlM6IERpdHRvLgoJKiBuZHMzMi92aC5oOiBOZXcuCgoyMDE0LTAzLTIxICBTYWJyaW5pIE5pICA8c2FicmluYW5pdHdAZ21haWwuY29tPgoKCSogbmRzMzIvY3J0MC5TOiBJbml0aWFsaXplIElUQiBiYXNlLgoJKiBuZHMzMi9jcnQxLlM6IERpdHRvLgoKMjAxNC0wMy0yMSAgU2FicmluaSBOaSAgPHNhYnJpbmFuaXR3QGdtYWlsLmNvbT4KCgkqIG5kczMyL01ha2VmaWxlLmluOiBBbHRlciBmaWxlbmFtZS4KCSogbmRzMzIvc3lzY2FsbF9hcmd2LlM6IFJlbmFtZSB0byBfYXJndi5TCgkqIG5kczMyL3N5c2NhbGxfYXJndmxlbi5TOiBSZW5hbWUgdG8gX2FyZ3ZsZW4uUwoJKiBuZHMzMi9zeXNjYWxsX2NoZGlyLlM6IFJlbmFtZSB0byBfY2hkaXIuUwoJKiBuZHMzMi9zeXNjYWxsX2NobW9kLlM6IFJlbmFtZSB0byBfY2htb2QuUwoJKiBuZHMzMi9zeXNjYWxsX2Nsb3NlLlM6IFJlbmFtZSB0byBfY2xvc2UuUwoJKiBuZHMzMi9zeXNjYWxsX2V4aXQuUzogUmVuYW1lIHRvIF9leGl0LlMKCSogbmRzMzIvc3lzY2FsbF9mc3RhdC5TOiBSZW5hbWUgdG8gX2ZzdGF0LlMKCSogbmRzMzIvc3lzY2FsbF9nZXRwaWQuUzogUmVuYW1lIHRvIF9nZXRwaWQuUwoJKiBuZHMzMi9zeXNjYWxsX2dldHRpbWVvZmRheS5TOiBSZW5hbWUgdG8gX2dldHRpbWVvZmRheS5TCgkqIG5kczMyL3N5c2NhbGxfaXNhdHR5LlM6IFJlbmFtZSB0byBfaXNhdHR5LlMKCSogbmRzMzIvc3lzY2FsbF9raWxsLlM6IFJlbmFtZSB0byBfa2lsbC5TCgkqIG5kczMyL3N5c2NhbGxfbGluay5TOiBSZW5hbWUgdG8gX2xpbmsuUwoJKiBuZHMzMi9zeXNjYWxsX2xzZWVrLlM6IFJlbmFtZSB0byBfbHNlZWsuUwoJKiBuZHMzMi9zeXNjYWxsX29wZW4uUzogUmVuYW1lIHRvIF9vcGVuLlMKCSogbmRzMzIvc3lzY2FsbF9yZWFkLlM6IFJlbmFtZSB0byBfcmVhZC5TCgkqIG5kczMyL3N5c2NhbGxfcmVuYW1lLlM6IFJlbmFtZSB0byBfcmVuYW1lLlMKCSogbmRzMzIvc3lzY2FsbF9zYnJrLlM6IFJlbmFtZSB0byBfc2Jyay5TCgkqIG5kczMyL3N5c2NhbGxfc3RhdC5TOiBSZW5hbWUgdG8gX3N0YXQuUwoJKiBuZHMzMi9zeXNjYWxsX3N5c3RlbS5TOiBSZW5hbWUgdG8gX3N5c3RlbS5TCgkqIG5kczMyL3N5c2NhbGxfdGltZS5TOiBSZW5hbWUgdG8gX3RpbWUuUwoJKiBuZHMzMi9zeXNjYWxsX3RpbWVzLlM6IFJlbmFtZSB0byBfdGltZXMuUwoJKiBuZHMzMi9zeXNjYWxsX3VubGluay5TOiBSZW5hbWUgdG8gX3VubGluay5TCgkqIG5kczMyL3N5c2NhbGxfdXRpbWUuUzogUmVuYW1lIHRvIF91dGltZS5TCgkqIG5kczMyL3N5c2NhbGxfd3JpdGUuUzogUmVuYW1lIHRvIF93cml0ZS5TCgoyMDE0LTAzLTIxICBTYWJyaW5pIE5pICA8c2FicmluYW5pdHdAZ21haWwuY29tPgoKCSogbmRzMzIvc3lzY2FsbF9hcmd2LlM6IENvcnJlY3QgdGhlIG1ldGhvZCB0byBzZXQgZXJybm8uCgkqIG5kczMyL3N5c2NhbGxfYXJndmxlbi5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF9jaGRpci5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF9jaG1vZC5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF9jbG9zZS5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF9lcnJvcl9oYW5kbGVyLlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX2ZzdGF0LlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX2dldHBpZC5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF9nZXR0aW1lb2ZkYXkuUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfaXNhdHR5LlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX2tpbGwuUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfbGluay5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF9sc2Vlay5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF9vcGVuLlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX3JlYWQuUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfcmVuYW1lLlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX3NicmsuUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfc3RhdC5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF9zeXN0ZW0uUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfdGltZS5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF90aW1lcy5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF91bmxpbmsuUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfdXRpbWUuUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfd3JpdGUuUzogRGl0dG8uCgoyMDE0LTAzLTIxICBTYWJyaW5pIE5pICA8c2FicmluYW5pdHdAZ21haWwuY29tPgoKCSogbmRzMzIvY3J0MC5TOiBVc2UgcHNldWRvLWluc3RydWN0aW9uICJiYWwgZnJhbWUiIHRvIHJlcGxhY2UgCgkibGEgKyBqcmFsIi4KCSogbmRzMzIvY3J0MS5TOiBEaXR0by4KCjIwMTQtMDMtMjEgIFNhYnJpbmkgTmkgIDxzYWJyaW5hbml0d0BnbWFpbC5jb20+CgoJKiBuZHMzMi9jcnQwLlM6IEVsaW1pbmF0ZSBpbml0aWFsaXphdGlvbiBmb3IgJGZwLgoJKiBuZHMzMi9jcnQxLlM6IERpdHRvLgoKMjAxNC0wMy0yMSAgU2FicmluaSBOaSAgPHNhYnJpbmFuaXR3QGdtYWlsLmNvbT4KCgkqIG5kczMyL2NydDAuUzogUmVmaW5lLgoJKiBuZHMzMi9jcnQxLlM6IFJlZmluZS4KCjIwMTQtMDMtMjEgIFNhYnJpbmkgTmkgIDxzYWJyaW5hbml0d0BnbWFpbC5jb20+CgoJKiBuZHMzMi9jcnQwLlM6IFNldCBhcmdjPWFyZ3Y9ZW52PTAuCgkqIG5kczMyL2NydDEuUzogRGl0dG8uCgoyMDE0LTAzLTIxICBTYWJyaW5pIE5pICA8c2FicmluYW5pdHdAZ21haWwuY29tPgoKCSogbmRzMzIvTWFrZWZpbGUuaW46IEFkZCBzeXNjYWxsX2Vycm9yX2hhbmRsZXIuby4KCSogbmRzMzIvc3lzY2FsbF9lcnJvcl9oYW5kbGVyLlM6IE5ldy4KCSogbmRzMzIvc3lzY2FsbF9leHRyYS5oOiBSZWR1Y2UgY29kZSBzaXplLgoKMjAxNC0wMy0yMSAgU2FicmluaSBOaSAgPHNhYnJpbmFuaXR3QGdtYWlsLmNvbT4KCgkqIG5kczMyL3N5c2NhbGxfZXh0cmEuaDogRGVmaW5lIG1hY3JvLgoJKiBuZHMzMi9zeXNjYWxsX2FyZ3YuUzogVXNlIGRlZmluZSBtYWNyby4KCSogbmRzMzIvc3lzY2FsbF9hcmd2bGVuLlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX2NoZGlyLlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX2NobW9kLlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX2Nsb3NlLlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX2ZzdGF0LlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX2dldHBpZC5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF9nZXR0aW1lb2ZkYXkuUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfaXNhdHR5LlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX2tpbGwuUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfbGluay5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF9sc2Vlay5TOiBEaXR0by4KCSogbmRzMzIvc3lzY2FsbF9vcGVuLlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX3JlYWQuUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfcmVuYW1lLlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX3N0YXQuUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfc3lzdGVtLlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX3RpbWUuUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfdGltZXMuUzogRGl0dG8uCgkqIG5kczMyL3N5c2NhbGxfdW5saW5rLlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX3V0aW1lLlM6IERpdHRvLgoJKiBuZHMzMi9zeXNjYWxsX3dyaXRlLlM6IERpdHRvLgoKMjAxNC0wMi0yNyAgSm9leSBZZSAgPGpvZXkueWVAYXJtLmNvbT4KCgkqIGxpYm5vc3lzL3NicmsuYyAoX3NicmspOiBSZW1vdmUgVFdTCgoyMDE0LTAyLTExICBKb2V5IFllICA8am9leS55ZUBhcm0uY29tPgoKCSogYXJtL3N5c2NhbGxzLmMgKF9zYnJrKTogRGVmaW5lIGFzIHdlYWsgc3ltYm9scy4KCShfcmVhZCwgX3dyaXRlKTogRGl0dG8uCgoyMDE0LTAyLTAzICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGFhcmNoNjQvTWFrZWZpbGUuaW4gKFJESU1PTl9TQ1JJUFRTKTogUnVsZSB0byBidWlsZCBpbi10cmVlIGNvcGllcwoJb2Ygc2NyaXB0cy4KCShhbGwpOiBCdWlsZCB0aGUgaW4tdHJlZSBjb3BpZXMgb2YgdGhlIHNjcmlwdHMuCgkoY2xlYW4pOiBBbHNvIGRlbGV0ZSB0aGUgaW4tdHJlZSBjb3BpZXMgb2YgdGhlIHNjcmlwdHMuCgoyMDE0LTAxLTI5ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIG1zcDQzMC9NYWtlZmlsZS5pbiAoY3J0MC1taW5ydC5vLCBjcnRuLW1pbnJ0Lm8pOiBOZXcuICBCdWlsZAoJZnJvbSBjcnQwLlMgd2l0aCAtRE1JTlJULgoJKENSVF9PQkpTKTogRXhwYW5kLgoJKGNydF8lLm8pOiBOZXcgcnVsZSBwYXR0ZXJuLiAgQnVpbGQgbXVsdGlwbGUgb2JqZWN0cyBmcm9tIGNydDAuUy4KCSogbXNwNDMwL2NydDAuUzogRnVydGhlciBicmVhayBvdXQgZnVuY3Rpb25hbGl0eS4gIFN1cHBvcnQgLURNSU5SVAoJdGhhdCBvbWl0cyBhbGwgaW5pdC9maW5pIGxvZ2ljLgoJKiBtc3A0MzAvY3J0bi5TOiBMaWtld2lzZS4KCSogbXNwNDMwL21zcDQzMC1zaW0ubGQ6IFdpbGRjYXJkIGFsbCAuY3J0Xyogc2VjdGlvbnMsIHNvcnRlZC4KCSogbXNwNDMwL21zcDQzMC5sZDogTGlrZXdpc2UuCgkqIG1zcDQzMC9tc3A0MzB4bC1zaW0ubGQ6IExpa2V3aXNlLgoKMjAxNC0wMS0yOCAgS3lyeWxvIFRrYWNob3YgIDxreXJ5bG8udGthY2hvdkBhcm0uY29tPgoKCSogYWFyY2g2NC9jcHUtaW5pdC9yZGltb24tYWVtLWVsMy5TIChmbGF0X21hcCk6IFVzZSBiaWMtaW1tZWRpYXRlCglmb3JtIHRvIGNsZWFyIFdYTiBiaXQuCgoyMDE0LTAxLTI0ICBLeXJ5bG8gVGthY2hvdiAgPGt5cnlsby50a2FjaG92QGFybS5jb20+CgoJKiBhYXJjaDY0L2NwdS1pbml0L3JkaW1vbi1hZW0tZWwzLlMgKGZsYXRfbWFwKTogQ2xlYXIgV1hOIGJpdAoJaW4gU0NUTFJfRUwzLiBBZGQgZHNiLgoKMjAxNC0wMS0xMCAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBhcm0vY29uZmlndXJlLmluOiBSZXZlcnQgcHJldmlvdXMgZml4IGFuZCBjaGFuZ2UgaG9zdF9tYWtlZmlsZV9mcmFnCgl0byBjYWxjdWxhdGUgdGhlIGFic29sdXRlIGxvY2F0aW9uIG9mIHNyY2Rpci8uLi9jb25maWcvZGVmYXVsdC5taC4KCSogYXJtL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDE0LTAxLTA3ICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIGFybS9jb25maWd1cmUuaW46IEZpeCBob3N0X21ha2VmaWxlX2ZyYWcgdG8gdXNlIGFjX2Fic19zcmNkaXIuCgkqIGFybS9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAxMy0xMi0wNCAgU3RldmUgRWxsY2V5IDxzZWxsY2V5QG1pcHMuY29tPgoKCSogbWlwcy9jZmVfYXBpLmg6IEluY2x1ZGUgc3RkaW50LmguCgoyMDEzLTExLTIxICBEYW5pZWwgUmFtaXJleiA8amF2YW1vbm5AZ21haWwuY29tPgoKCSogZDMwdi9zeXNjYWxscy5jLCBpOTYwL21vbjk2MC5jLCBtNjhrL2lvLXN0YXQuYywgbXQvc3RhdC5jLAoJc3B1L2xzdGF0LmMsIHNwdS9zdGF0LmM6IEFkZCByZXN0cmljdCBrZXl3b3JkLgoKMjAxMy0xMS0yMSAgTWFyY3VzIFNoYXdjcm9mdCAgPG1hcmN1cy5zaGF3Y3JvZnRAYXJtLmNvbT4KCgkqIGFhcmNoNjQvZnRydW5jYXRlLmM6IEluY2x1ZGUgZXJybm8uaC4KCShmdHJ1bmNhdGUpIFNldCBlcnJuby4KCSogYWFyY2g2NC90cnVuY2F0ZS5jOiBJbmNsdWRlIGVycm5vLmguCgkodHJ1bmNhdGUpIFNldCBlcnJuby4KCjIwMTMtMTEtMjAgIE1hcmN1cyBTaGF3Y3JvZnQgIDxtYXJjdXMuc2hhd2Nyb2Z0QGFybS5jb20+CgoJKiBhcm0vZnRydW5jYXRlLmM6IEluY2x1ZGUgZXJybm8uaC4KCShmdHJ1bmNhdGUpIFNldCBlcnJuby4KCSogYXJtL3RydW5jYXRlLmM6IEluY2x1ZGUgZXJybm8uaC4KCSh0cnVuY2F0ZSkgU2V0IGVycm5vLgoKMjAxMy0xMS0xOCAgTWFyY3VzIFNoYXdjcm9mdCAgPG1hcmN1cy5zaGF3Y3JvZnRAYXJtLmNvbT4KCgkqIGFybS9mdHJ1bmNhdGUuYzogTmV3LgoJKiBhcm0vdHJ1bmNhdGUuYzogTmV3LgoJKiBhcm0vTWFrZWZpbGUuaW4gKFJEUE1PTl9PQkpTKTogQWRkIGZ0cnVuY2F0ZS5vIGFuZCB0cnVuY2F0ZS5vLgoJKHJkaW1vbi1mdHJ1bmNhdGUubywgcmRpbW9uLXRydW5jYXRlLm8pOiBOZXcgcnVsZToKCjIwMTMtMTAtMTQgIFJhbWFuYSBSYWRoYWtyaXNobmFuICA8cmFtYW5hLnJhZGhha3Jpc2huYW5AYXJtLmNvbT4KCgkqIGFybS9jcHUtaW5pdC9yZGltb24tYWVtLlM6IERpc2FibGUgZm9yIE0gY2xhc3MgY29yZXMuCgkqIGFybS9jcnQwLlM6IERvbid0IGNhbGwgX3JkaW1vbl9od19pbml0X2hvb2sgZm9yIG5vbi1BIGNsYXNzIGNvcmVzLgoJKiBhcm0vY3B1LWluaXQvTWFrZWZpbGUuaW4gKENQVV9JTklUX09CSlMpOiBVc2UgQ0ZMQUdTLgoKMjAxMy0wOS0zMCAgU3RldmUgRWxsY2V5ICA8c2VsbGNleUBtaXBzLmNvbT4KCgkqIG1pcHMvTWFrZWZpbGUuaW4gKGluc3RhbGwpOiBBZGQgbWtkaXIsIGZpeCBpbnN0YWxsIGNvbW1hbmQuCgoyMDEzLTA5LTI3ICBNYXJjdXMgU2hhd2Nyb2Z0ICA8bWFyY3VzLnNoYXdjcm9mdEBhcm0uY29tPgoKCSogYXJtL01ha2VmaWxlLmluIChSRElNT05fU0NSSVBUUyk6IEFkZCBhcHJvZmlsZS12YWxpZGF0aW9uLnNwZWNzLgoJKiBhcm0vZWxmLWFwcm9maWxlLXZhbGlkYXRpb24uc3BlY3M6IE5ldy4KCjIwMTMtMDktMjAgIE1hdHRoZXcgR3JldHRvbi1EYW5uICA8bWF0dGhldy5ncmV0dG9uLWRhbm5AYXJtLmNvbT4KCSAgICBSYW1hbmEgUmFkaGFrcmlzaG5hbiAgPHJhbWFuYS5yYWRoYWtyaXNobmFuQGFybS5jb20+CgkgICAgR3JldGEgWW9yc2ggIDxncmV0YS55b3JzaEBhcm0uY29tPgoKCSogYXJtL01ha2VmaWxlLmluOiBBZGQgc3VwcG9ydCBmb3IgY3B1LWluaXQgZGlyZWN0b3J5IGFuZCBhZGQKCWVsZi1hcHJvZmlsZS12ZS5zcGVjcy4KCSogYXJtL2NvbmZpZ3VyZS5pbjogTGlrZXdpc2UuCgkqIGFybS9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGFybS9jcHUtaW5pdDogTmV3IGRpcmVjdG9yeS4KCSogYXJtL2NwdS1pbml0L01ha2VmaWxlLmluOiBOZXcgZmlsZS4KCSogYXJtL2NwdS1pbml0L3JkaW1vbi1hZW0uUzogTGlrZXdpc2UuCgkqIGFybS9jcnQwLlM6IENhbGwgX3JkaW1vbl9pbml0X2hvb2sKCSogYXJtL2VsZi1hcHJvZmlsZS12ZS5zcGVjczogTmV3IGZpbGUuCgoyMDEzLTA5LTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbXNwNDMwL01ha2VmaWxlLmluIChTQ1JJUFRTKTogQWRkIGludHJfdmVjdG9ycy5sZC4KCShMSUJfQ1JUKTogTmV3LgoJKENSVF9PQkpTKTogTmV3LgoJKGFsbCk6IEFkZCBkZXBlbmRlbmN5IHVwb24gTElCX0NSVC4KCShpbnN0YWxsKTogTGlrZXdpc2UuCgkqIG1zcDQzMC9tc3A0MzAtc2ltLmxkOiBJbmNsdWRlIGludHJfdmVjdG9ycy5sZC4KCUtFRVAgY3J0IGNvZGUsIGxvd3RleHQgY29kZSBhbmQgdG1fY2xvbmVfdGFibGUuCglTZXBhcmF0ZSB0aGUgbm9pbml0IHNlY3Rpb24gZnJvbSB0aGUgLmJzcyBzZWN0aW9uLgoJQWxsb3cgZm9yIGV4dGVuZGVkIC5kZWJ1Z19saW5lIHNlY3Rpb25zLgoJKiBtc3A0MzAvbXNwNDMwLmxkOiBMaWtld2lzZS4KCSogbXNwNDMwL21zcDQzMEY1NDM4QS1sLmxkOiBMaWtld2lzZS4KCSogbXNwNDMwL21zcDQzMEY1NDM4QS1zLmxkOiBMaWtld2lzZS4KCSogbXNwNDMwL21zcDQzMHhsLXNpbS5sZDogTGlrZXdpc2UKLgkqIG1zcDQzMC9jcnRfbW92ZWRhdGEuUzogTmV3LgoJKiBtc3A0MzAvY3J0X2Jzcy5TOiBOZXcuCgkqIG1zcDQzMC9pbnRyX3ZlY3RvcnMubGQ6IE5ldy4KCjIwMTMtMDktMTcgIEpvZXkgWWUgIDxqb2V5LnllQGFybS5jb20+CgoJKiBsaWJub3N5cy9NYWtlZmlsZS5pbjogSW5zdGFsbCBub3N5cy5zcGVjcy4KCSogbGlibm9zeXMvbm9zeXMuc3BlY3M6IE5ldyBzcGVjcy4KCjIwMTMtMDgtMTIgIFl1ZmVuZyBaaGFuZyAgPFl1ZmVuZy5aaGFuZ0Bhcm0uY29tPgoKCSogYWFyY2g2NC9jcnQwLlM6IFJlbW92ZSAnc3RhcnQnLgoJKiBhcm0vY3J0MC5TOiBEaXR0by4KCSogYXJtL3JlZGJvb3QtY3J0MC5TOiBEaXR0by4KCjIwMTMtMDctMjQgIFN0ZXZlIEVsbGNleSAgPHNlbGxjZXlAbWlwcy5jb20+CgoJKiBtaXBzL2lkdG1vbi5TICh1bmxpbmssIGxzZWVrLCBzdGF0KTogQWRkIG5ldyBmdW5jdGlvbnMuCgoyMDEzLTA3LTIzICBOYWdhcmFqdSBNZWthbGEgIDxuYWdhcmFqdS5tZWthbGFAeGlsaW54LmNvbT4KCgkqIG1pY3JvYmxhemUvX2V4Y2VwdGlvbl9oYW5kbGVyLlM6IEFkanVzdCB0byBiZSB3ZWFrLgoKMjAxMy0wNy0yMyAgRWRnYXIgRS4gSWdsZXNpYXMgIDxlZGdhci5pZ2xlc2lhc0B4aWxpbnguY29tPgoKCSogbWljcm9ibGF6ZS9NYWtlZmlsZS5pbjogQWRkIExJTlVYX0JTUC4KCSogbWljcm9ibGF6ZS9lbGYtZ2xvc3MtbGludXgubGQ6IE5ldyBmaWxlLgoJKiBtaWNyb2JsYXplL2VsZi1nbG9zcy1saW51eC5zcGVjczogTGlrZXdpc2UuCgkqIG1pY3JvYmxhemUvbGludXgtY3J0MC5TOiBMaWtld2lzZS4KCSogbWljcm9ibGF6ZS9saW51eC1pbmJ5dGUuYzogTGlrZXdpc2UuCgkqIG1pY3JvYmxhemUvbGludXgtb3V0Ynl0ZS5jOiBMaWtld2lzZS4KCSogbWljcm9ibGF6ZS9saW51eC1zeXNjYWxscy13cmFwLmM6IExpa2V3aXNlLgoJKiBtaWNyb2JsYXplL2xpbnV4LXN5c2NhbGxzLlM6IExpa2V3aXNlLgoJKiBtaWNyb2JsYXplL2xpbnV4LXN5c2NhbGxzLmg6IExpa2V3aXNlLgoKMjAxMy0wNy0xNyAgWWFha292IFNlbGtvd2l0eiAgPHlzZWxrb3dpdHpAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG0zMi9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIG1veGllL2NvbmZpZ3VyZTogRGl0dG8uCgkqIHNwdS9jb25maWd1cmU6IERpdHRvLgoKMjAxMy0wNy0xNiAgRGF2aWQgSG9sc2dyb3ZlIDxkYXZpZC5ob2xzZ3JvdmVAeGlsaW54LmNvbT4KCgkqIG1pY3JvYmxhemUvTWFrZWZpbGUuaW46IEFkZCBHRU5PQkpTIGFuZCB0YXJnZXRfbWFrZWZpbGVfZnJhZy4KCSogbWljcm9ibGF6ZS9jb25maWd1cmUuaW46IEFkZCB0YXJnZXRfbWFrZWZpbGVfZnJhZy4KCSogbWljcm9ibGF6ZS9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIG1pY3JvYmxhemUveGlsX3ByaW50Zi5jOiBBZGQgbmV3IGZpbGUuCgoyMDEzLTA3LTE2ICBEYXZpZCBIb2xzZ3JvdmUgPGRhdmlkLmhvbHNncm92ZUB4aWxpbnguY29tPgoKCSogY29uZmlndXJlLmluOiBDaGFuZ2UgdG8gbWljcm9ibGF6ZSouCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogbWljcm9ibGF6ZS94aWxpbngubGQ6IFJlbW92ZSBPVVRQVVRfRk9STUFULgoKMjAxMy0wNy0xMiAgTWFyY3VzIFNoYXdjcm9mdCAgPG1hcmN1cy5zaGF3Y3JvZnRAYXJtLmNvbT4KCgkqIGFhcmNoNjQvY3B1LWluaXQvcmRpbW9uLWFlbS1lbDMuUyAodmVjdG9ycyk6IFBhZ2UgYWxpZ24uCgoyMDEzLTA3LTA5ICBTYWJyaW5hIE5pICA8c2FicmluYUBhbmRlc3RlY2guY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgbmRzMzIgc3ViZGlyLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBuZHMzMi9jb25maWd1cmUuaW46IE5ldy4KCSogbmRzMzIvY29uZmlndXJlOiBOZXcgKGF1dG9nZW5lcmF0ZWQpLgoJKiBuZHMzMi97Y3J0MC5TLGNydDEuU306IE5ldy4KCSogbmRzMzIvTWFrZWZpbGUuaW46IE5ldy4KCSogbmRzMzIve3N5c2NhbGxfYXJndmxlbi5TLHN5c2NhbGxfYXJndi5TLAoJc3lzY2FsbF9jaGRpclMsIHN5c2NhbGxfY2htb2QuUywKCXN5c2NhbGxfY2xvc2UuUyxzeXNjYWxsX2V4aXQuUyxzeXNjYWxsX2V4dHJhLmgsIHN5c2NhbGxfZnN0YXQuUywKCXN5c2NhbGxfZ2V0cGlkLlMsc3lzY2FsbF9nZXR0aW1lb2ZkYXkuUyxzeXNjYWxsX2lzYXR0eS5TLHN5c2NhbGxfa2lsbC5TLAoJc3lzY2FsbF9saW5rLlMsc3lzY2FsbF9sc2Vlay5TLHN5c2NhbGxfb3Blbi5TLHN5c2NhbGxfcmVhZC5TLAoJc3lzY2FsbF9yZW5hbWUuUyxzeXNjYWxsX3NicmsuUyxzeXNjYWxsX3N0YXQuUyxzeXNjYWxsX3N5c3RlbS5TLAoJc3lzY2FsbF90aW1lLlMsc3lzY2FsbF90aW1lcy5TLHN5c2NhbGxfdW5saW5rLlMsc3lzY2FsbF91dGltZS5TLAoJc3lzY2FsbF93cml0ZS5TfTogTmV3LgoKMjAxMy0wNy0wNCAgWXVmZW5nIFpoYW5nICA8WXVmZW5nLlpoYW5nQGFybS5jb20+CgoJKiBhYXJjaDY0L3N5c2NhbGxzLmMgKHN0YWNrX3B0cik6IERlZmluZWQgd2l0aCBhc20gKCJ3c3AiKSBpZiBfX0lMUDMyX18KCWlzIGRlZmluZWQuCgoyMDEzLTA3LTAyICBKb2V5IFllICA8am9leS55ZUBhcm0uY29tPgoKCSogYXJtL2NydDAuUyAoX21haW5DUlRTdGFydHVwKTogV2VhayByZWZlcmVuY2UgdG8gYXRleGl0IGFuZCBfZmluaQoJd2hlbiBsaXRlIGV4aXQgaXMgZW5hYmxlZC4KCjIwMTMtMDYtMjggIFl1ZmVuZyBaaGFuZyAgPFl1ZmVuZy5aaGFuZ0Bhcm0uY29tPgoKCSogYWFyY2g2NC9zeXNjYWxscy5jIChQT0lOVEVSX1RPX1BBUkFNX0JMT0NLX1QpOiBOZXcgbWFjcm8uCgkoaW5pdGlhbGlzZV9tb25pdG9yX2hhbmRsZXMpOiBSZXBsYWNlIGNhc3Qgd2l0aCBtYWNybwoJUE9JTlRFUl9UT19QQVJBTV9CTE9DS19ULgoJKF9zd2lyZWFkKTogTGlrZXdpc2UuCgkoX3N3aXdyaXRlKTogTGlrZXdpc2UuCgkoX3N3aW9wZW4pOiBMaWtld2lzZS4KCShfdW5saW5rKTogTGlrZXdpc2UuCgkoX3N5c3RlbSk6IExpa2V3aXNlLgoJKF9yZW5hbWUpOiBMaWtld2lzZS4KCjIwMTMtMDYtMjUgIFl1ZmVuZyBaaGFuZyAgPFl1ZmVuZy5aaGFuZ0Bhcm0uY29tPgoKCSogYWFyY2g2NC9jcnQwLlMgKEdFTl9EV09SRCk6IE5ldyBtYWNybyBkZWZpbml0aW9uLgoJKFBUUl9SRUcpOiBEaXR0by4KCShQVFJfU0laRSk6IERpdHRvLgoJKFBUUl9MT0dfU0laRSk6IERpdHRvLgoJKHN0YXJ0KTogVXNlIEdFTl9EV09SRCB0byByZXBsYWNlIHRoZSAuZHdvcmQgb2YgSGVhcEJhc2UsCglfX2Jzc19zdGFydF9fLCBfX2Jzc19lbmRfXywgRlVOQ1RJT04oX2ZpbmkpLCBlbnYgYW5kCglDb21tYW5kTGluZTsgd2hlbiBfX0lMUDMyX18gaXMgZGVmaW5lZCwgc2V0IHRoZSBzdGFjayBiYXNlIHRvCgl0aGUgdG9wIGVuZCBvZiB0aGUgMzItYml0IGFkZHJlc3Mgc3BhY2UgaWYgdGhlIHJldHVybmVkIHZhbHVlCglmcm9tIHRoZSBBbmdlbCBBUEkgY2FsbCBpcyBsYXJnZXIgdGhhbiBvciBlcXVhbCB0byA0IEdpQi4KCUFsc28gY2Fycnkgb3V0IHNhbml0eSBjaGVjayBvbiB0aGUgaGVhcCBiYXNlOyBhYm9ydCBpZiB0aGUKCWJhc2UgaXMgbGFyZ2VyIHRoYW4gb3IgZXF1YWwgdG8gNCBHaUIuICBVc2Ugb3RoZXIgbmV3CgltYWNyb3MgaW4gdGhlIGluc3RydWN0aW9ucyB0aGF0IHByb2Nlc3NlcyB0aGUgYXJndiBhcnJheXMuCgkoU3RhY2tCYXNlKTogTmV3IGxhYmxlOyByZXBsYWNlIF9fc3RhY2tfYmFzZV9fLgoJKF9fc3RhY2tfYmFzZV9fKTogU2V0IHdpdGggU3RhY2tCYXNlIG9yIFN0YWNrQmFzZSArIDQuCgoyMDEzLTA1LTMwICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIHJzNjAwMC9NYWtlZmlsZS5pbjogQWRkIHNpbS10aW1lcyBzdXBwb3J0LiAgVGhpcyBmaWxlIGhhcyBiZWVuCgltb3ZlZCBmcm9tIG5ld2xpYi9saWJjL21hY2hpbmUvcG93ZXJwYyBhbmQgcmVuYW1lZC4KCSogcnM2MDAwL3NpbS10aW1lcy5jOiBOZXcgZmlsZS4KCjIwMTMtMDUtMTQgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKG1zcDQzMCotKi1lbGYpOiBBZGQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogbXNwNDMwOiBOZXcgZGlyZWN0b3J5LgoKMjAxMy0wNC0xOSAgU3RldmUgRWxsY2V5ICA8c2VsbGNleUBpbWd0ZWMuY29tPgoKCSogbWlwcy9jZmVfYXBpLmggKGludDY0X3QpOiBSZW1vdmUgZGVmaW5lLgoJKHVpbnQ2NF90KTogUmVtb3ZlIGRlZmluZS4KCShpbnRwdHJfdCk6IFJlbW92ZSBkZWZpbmUuCgkodWludHB0cl90KTogUmVtb3ZlIGRlZmluZS4KCShzeXMvdHlwZXMuaCk6IFJlbW92ZSBpbmNsdWRlLgoJKF9hbnNpLmgpOiBSZW1vdmUgaW5jbHVkZS4KCjIwMTMtMDQtMTkgIFl1ZmVuZyBaaGFuZyAgPHl1ZmVuZy56aGFuZ0Bhcm0uY29tPgoKCSogYWFyY2g2NC9NYWtlZmlsZS5pbiAocmRpbW9uLWNydDAubywgcmRpbW9uLXRyYXAubykKCShyZGltb24tX2V4aXQubywgcmRpbW9uLV9raWxsLm8sIHJkaW1vbi1zeXNjYWxscy5vKQoJKHJkaW1vbi1saWJjZnVuYy5vKTogQWRkICQoQ0ZMQUdTKSB0byB0aGUgY29tcGlsZXIgY29tbWFuZCBsaW5lLgoJKiBhYXJjaDY0L2NwdS1pbml0L01ha2VmaWxlLmluICgke0NQVV9JTklUX09CSlN9KTogQWRkICQoQ0ZMQUdTKQoJdG8gdGhlIGNvbXBpbGVyIGNvbW1hbmQgbGluZS4KCjIwMTMtMDItMTAgIFBldGVyIE1hcmhlaW5lICA8cGV0ZXJAdGFyaWNvcnAubmV0PgoKCSogbGliZ2xvc3MvcngvTWFrZWZpbGUuaW46IFJlc3BlY3QgREVTVERJUiB3aGVuIGluc3RhbGxpbmcKCjIwMTMtMDItMDQgIEdyZXRhIFlvcnNoICA8Z3JldGEueW9yc2hAYXJtLmNvbT4KCgkqIGFybS9lbGYtcmRpbW9uLnNwZWNzICgtbHJkaW1vbik6IENoYW5nZSBsaW5rIHRvIGxpYi4KCjIwMTMtMDItMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiB2ODUwL2NydDAuUzogQWRkIHJlY29nbml0aW9uIG9mIHRoZSBlM3Y1CglhcmNoaXRlY3R1cmUgdmFyaWFudC4KCjIwMTMtMDEtMTggIE1hcmN1cyBTaGF3Y3JvZnQgIDxtYXJjdXMuc2hhd2Nyb2Z0QGFybS5jb20+CgoJKiBhYXJjaDY0L01hY2hpbmUuaW4gKFJESU1PTl9TQ1JJUFRTKToKCUFkZCBhZW0tdmUuc3BlY3MgYW5kIGFlbS12YWxpZGF0aW9uLnNwZWNzLgoJKiBhYXJjaDY0L2VsZi1hZW0tdmFsaWRhdGlvbi5zcGVjczogTmV3IGZpbGUuCgkqIGFhcmNoNjQvZWxmLWFlbS12ZS5zcGVjczogTmV3IGZpbGUuCgoyMDEzLTAxLTE1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogdjg1MC9jcnQwLlMgKF9zdGFydCk6IEVuYWJsZSBGUFUgZm9yIHRoZSBWODUwZTJ2My4KCjIwMTItMTItMTcgIFN0dWFydCBIZW5kZXJzb24gIDxzaGVuZGVyc0BnY2MuZ251Lm9yZz4KCgkqIGJmaW4vTWFrZWZpbGUuaW46IEFkZCBCRjYweCBzdXBwb3J0LgoJKiBiZmluL2Jhc2ljY3J0LlM6IEFkZCBjb3JlMSBzdXBwb3J0LgoJKiBiZmluL2JmNjA2LmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZjYwNmMwLmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZjYwNmMxLmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZjYwNm0ubGQ6IE5ldyBmaWxlLgoJKiBiZmluL2JmNjA3LmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZjYwN2MwLmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZjYwN2MxLmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZjYwN20ubGQ6IE5ldyBmaWxlLgoJKiBiZmluL2JmNjA4LmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZjYwOGMwLmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZjYwOGMxLmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZjYwOG0ubGQ6IE5ldyBmaWxlLgoJKiBiZmluL2JmNjA5LmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZjYwOWMwLmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZjYwOWMxLmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZjYwOW0ubGQ6IE5ldyBmaWxlLgoJKiBiZmluL2JmaW4tY29tbW9uLW1jMC5sZDogTmV3IGZpbGUuCgkqIGJmaW4vaW5jbHVkZS9jZGVmQkY2MDYuaCA6IE5ldyBmaWxlLgoJKiBiZmluL2luY2x1ZGUvY2RlZkJGNjA3LmggOiBOZXcgZmlsZS4KCSogYmZpbi9pbmNsdWRlL2NkZWZCRjYwOC5oIDogTmV3IGZpbGUuCgkqIGJmaW4vaW5jbHVkZS9jZGVmQkY2MDkuaCA6IE5ldyBmaWxlLgoJKiBiZmluL2luY2x1ZGUvZGVmQkY2MDYuaCA6IE5ldyBmaWxlLgoJKiBiZmluL2luY2x1ZGUvZGVmQkY2MDcuaCA6IE5ldyBmaWxlLgoJKiBiZmluL2luY2x1ZGUvZGVmQkY2MDguaCA6IE5ldyBmaWxlLgoJKiBiZmluL2luY2x1ZGUvZGVmQkY2MDkuaCA6IE5ldyBmaWxlLgoJKiBiZmluL2luY2x1ZGUvc3lzL19hZGlfcGxhdGZvcm0uaDogQWRkIEJGNjB4IHN1cHBvcnQuCgkqIGJmaW4vaW5jbHVkZS9zeXMvYW5vbWFseV9tYWNyb3NfcnRsLmggOiBDbGVhbiB1cC4KCjIwMTItMTEtMjMgIFl1ZmVuZyBaaGFuZyAgPHl1ZmVuZy56aGFuZ0Bhcm0uY29tPgoKCSogYWFyY2g2NC9jb25maWd1cmUuaW46IFJlcGxhY2UgdGhlIGRpcmVjdCBnZW5lcmF0aW9uIG9mCgljcHUtaW5pdC9NYWtlZmlsZS5pbiB3aXRoIEFDX0NPTkZJR19TVUJESVJTKGNwdS1pbml0KS4KCSogYWFyY2g2NC9jb25maWd1cmU6IFJlLWdlbmVyYXRlLgoJKiBhYXJjaDY0L2NwdS1pbml0L01ha2VmaWxlLmluIChvYmp0eXBlKTogUmVtb3ZlLgoJKE1ha2VmaWxlLCBjb25maWcuc3RhdHVzKTogVXBkYXRlIHRoZSBydWxlcy4KCSogYWFyY2g2NC9jcHUtaW5pdC9hY2xvY2FsLm00OiBOZXcgZmlsZSAoZ2VuZXJhdGVkKS4KCSogYWFyY2g2NC9jcHUtaW5pdC9jb25maWd1cmUuaW46IE5ldyBmaWxlLgoJKiBhYXJjaDY0L2NwdS1pbml0L2NvbmZpZ3VyZTogTmV3IGZpbGUgKGdlbmVyYXRlZCkuCgoyMDEyLTEwLTI3ICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CgoJKiBtb3hpZS9zaW0tdW5saW5rLlMgKHVubGluayk6IExvb3AgZm9yZXZlci4KCW1veGllL3NpbS10aW1lLlMgKF9zaW1fdGltZSk6IERpdHRvLgoKMjAxMi0xMC0yNyAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQG1veGllbG9naWMuY29tPgoKCSogbW94aWUvY3J0MC5TIChfc3RhcnQpOiBDYWxsIG1lbXNldCB3aXRoIGNvcnJlY3QKCUFCSS4KCjIwMTItMTAtMDMgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogcmw3OC9jcnQwLlMgKF9pbnRlcnJ1cHRfdmVjdG9yX3RhYmxlKTogQ29udmVydCBmcm9tIENQUCBtYWNyb3MKCXRvIEdBUyBtYWNyb3MsIHRvIGF2b2lkIGRlcGVuZGVuY2Ugb24gdGhlIGxpbmUgc2VwYXJhdGlvbgoJY2hhcmFjdGVyLgoKMjAxMi0xMC0wMSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiB2ODUwL3NicmsuYyAoX3NicmspOiBDaGFuZ2UgaGVhcF9zdGFydCB0byBiZSBhbiBhcnJheSBvZgoJdW5kZWZpbmVkIHNpemUsIHRvIGF2b2lkIHByb2JsZW1zIHdoZW4gY29tcGlsZWQgd2l0aCAtbXNkYT00LgoKMjAxMi0wOS0yNiAgSWFuIEJvbHRvbiAgPGlhbi5ib2x0b25AYXJtLmNvbT4KICAgICAgICBKaW0gTWFjQXJ0aHVyICA8amltLm1hY2FydGh1ckBhcm0uY29tPgogICAgICAgIE1hcmN1cyBTaGF3Y3JvZnQgIDxtYXJjdXMuc2hhd2Nyb2Z0QGFybS5jb20+CiAgICAgICAgTmlnZWwgU3RlcGhlbnMgIDxuaWdlbC5zdGVwaGVuc0Bhcm0uY29tPgogICAgICAgIFJhbWFuYSBSYWRoYWtyaXNobmFuICA8cmFtYW5hLnJhZGhha3Jpc2huYW5AYXJtLmNvbT4KICAgICAgICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KICAgICAgICBTb2ZpYW5lIE5hY2kgIDxzb2ZpYW5lLm5hY2lAYXJtLmNvbT4KICAgICAgICBUZWphcyBCZWxhZ29kICA8dGVqYXMuYmVsYWdvZEBhcm0uY29tPgogICAgICAgIFl1ZmVuZyBaaGFuZyAgPHl1ZmVuZy56aGFuZ0Bhcm0uY29tPgoKCSogYWFyY2g2NC9NYWtlZmlsZS5pbjogTmV3IGZpbGUuCgkqIGFhcmNoNjQvX2V4aXQuYzogTmV3IGZpbGUuCgkqIGFhcmNoNjQvX2tpbGwuYzogTmV3IGZpbGUuCgkqIGFhcmNoNjQvYWNsb2NhbC5tNDogR2VuZXJhdGVkLgoJKiBhYXJjaDY0L2NvbmZpZ3VyZTogR2VuZXJhdGVkLgoJKiBhYXJjaDY0L2NvbmZpZ3VyZS5pbjogTmV3IGZpbGUuCgkqIGFhcmNoNjQvY3B1LWluaXQvTWFrZWZpbGUuaW46IE5ldyBmaWxlLgoJKiBhYXJjaDY0L2NwdS1pbml0L3JkaW1vbi1hZW0tZWwzLlM6IE5ldyBmaWxlLgoJKiBhYXJjaDY0L2NydDAuUzogTmV3IGZpbGUuCgkqIGFhcmNoNjQvZWxmLXJkaW1vbi5zcGVjczogTmV3IGZpbGUuCgkqIGFhcmNoNjQvbGliY2Z1bmMuYzogTmV3IGZpbGUuCgkqIGFhcmNoNjQvc3ZjLmg6IE5ldyBmaWxlLgoJKiBhYXJjaDY0L3N5c2NhbGxzLmM6IE5ldyBmaWxlLgoJKiBjb25maWd1cmUuaW46IEFkZCBBQXJjaDY0LgoJKiBjb25maWd1cmU6IFJlLWdlbmVyYXRlZC4KCjIwMTItMDktMTMgIEFudGhvbnkgR3JlZW4gIDxncmVlbkBtb3hpZWxvZ2ljLmNvbT4KCgkqIG1veGllL21veGllLWVsZi1jb21tb24ubGQ6IEFkZCBiaS1lbmRpYW4gc3VwcG9ydC4KCjIwMTItMDgtMzAgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogcngvcngubGQ6IEFkZCBXXyogc2VjdGlvbnMgdG8gLnJvZGF0YS4KCSogcngvcngtc2ltLmxkOiBMaWtld2lzZS4KCjIwMTItMDgtMzAgIEthdXNoaWsgUGhhdGFrICA8a2F1c2hpay5waGF0YWtAa3BpdGN1bW1pbnMuY29tPgoKCSogY3IxNi9zeXMvc3lzY2FsbC5oOiBOZXcgZmlsZS4KCjIwMTItMDUtMDIgIEdyZXRhIFlvcnNoICA8R3JldGEuWW9yc2hAYXJtLmNvbT4KCgkqIGFybS9yZWRib290LWNydDAuUyAoX19jaGFuZ2VfbW9kZSk6IFJlcGxhY2UgbW92IHdpdGggbW92cy4KCjIwMTItMDMtMjMgIE1pa2UgRnJ5c2luZ2VyICA8dmFwaWVyQGdlbnRvby5vcmc+CgoJKiBjcmlzL01ha2VmaWxlLmluIChpbnN0YWxsLWxpbik6IEFkZCAkKERFU1RESVIpIGJlZm9yZSAke3Rvb2xkaXJ9LgoKMjAxMi0wMy0xMiAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIGxpYm5vc3lzL01ha2VmaWxlLmluIChORVdMSUJfQ0ZMQUdTLCBORVdMSUJfTERGTEFHUywKCUlOQ0xVREVTLCBDRkxBR1NfRk9SX1RBUkdFVCwgTERGTEFHU19GT1JfVEFSR0VULAoJQVJfRkxBR1MsIC5jLm8sIC5DLm8sIC5zLm8sIC5TLm8sIC5jLnMpOiBEZWxldGUgYW5kIHJlcGxhY2UKCXdpdGggQGhvc3RfbWFrZWZpbGVfZnJhZ0AuCgoyMDEyLTAzLTEyICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgoKCSogY29uZmlnL2RlZmF1bHQubWggKEFSX0ZMQUdTKTogU2V0IHRvIHJjLgoKMjAxMi0wMy0wOSAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBlcGlwaGFueS9hY2Nlc3MuYzogQWRkIG1vZGlmaWNhdGlvbiByaWdodHMgdG8gY2xhdXNlIGFzCglwZXJtaXR0ZWQgYnkgREogRGVsb3JpZS4KCSogaXEyMDAwL2FjY2Vzcy5jOiBEaXR0by4KCSogbW4xMDIwMC9hY2Nlc3MuYzogRGl0dG8uCgkqIG1uMTAzMDAvYWNjZXNzLmM6IERpdHRvLgoJKiBtdC9hY2Nlc3MuYzogRGl0dG8uCgkqIHY4NTAvYWNjZXNzLmM6IERpdHRvLgoKMjAxMi0wMy0wMiAgQmluIENoZW5nICA8YmluLmNoZW5nQGFybS5jb20+CgoJKiBjb25maWd1cmUuaW46IEFjY2VwdCAiYXJtKiIgdGFyZ2V0IHNwZWMgaW5zdGVhZCBvZiBqdXN0ICJhcm0iLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBsaWJub3N5cy9jb25maWd1cmUuaW46IExpa2V3aXNlLgoJKGxpYmNfc3ltYm9sX3ByZWZpeCk6IFJlbmFtZWQgdG8gbGliY19jdl9zeW1ib2xfcHJlZml4LgoJKiBsaWJub3N5cy9jb25maWd1cmU6IFJlZ2VuZXJhdGVkICh1c2luZyBhdXRvY29uZiB2Mi42OCkuCgoyMDEyLTAyLTIxICBKZXJlbXkgQmVubmV0dCAgPGplcmVteS5iZW5uZXR0QGVtYmVjb3NtLmNvbT4KICAgICAgICAgICAgQWxhbiBMZWhvdHNreSAgPGFwbEBhbHVtLm1pdC5lZHU+CiAgICAgICAgICAgIEpvZXJuIFJlbm5lY2tlICA8am9lcm4ucmVubmVja2VAZW1iZWNvc20uY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgRXBpcGhhbnkgc3VwcG9ydC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBlcGlwaGFueTogTmV3IGRpcmVjdG9yeS4KCSogbGliZ2xvc3MvUkVBRE1FOiBBZGQgRXBpcGhhbnkgZW50cnkuCgoyMDEyLTAxLTIzICBTdHVhcnQgSGVuZGVyc29uICA8c3R1YXJ0LmhlbmRlcnNvbkBhbmFsb2cuY29tPgoKCSogYmZpbi9fZXhpdC5jOiBOZXcgZmlsZS4KCSogYmZpbi9NYWtlZmlsZS5pbiAoQk9BUkRfT0JKUyk6IEFkZCBfZXhpdC5vLgoKMjAxMi0wMS0xNyAgQmluIENoZW5nICA8YmluLmNoZW5nQGFybS5jb20+CgoJKiBhcm0vbGludXgtY3J0MC5jOiBVc2UgbGRyIGluc3RlYWQgb2YgYWRyIHRvIGdldCBhZGRyZXNzIG9mCglfc3RhcnRfdGh1bWIuCgoyMDExLTEyLTE4ICBTdGV2ZSBLaWxiYW5lICA8c3RlcGhlbi5raWxiYW5lQGFuYWxvZy5jb20+CgoJKiBiZmluL2NsZWFyX2NhY2hlX3JhbmdlLmM6IE5ldyBmaWxlLgoJKiBiZmluL01ha2VmaWxlLmluIChTSU1fT0JKUyk6IEFkZCBjbGVhcl9jYWNoZV9yYW5nZS5vLgoJKEJPQVJEX09CSlMpOiBMaWtld2lzZS4KCShCT0FSRF9CU1ApOiBTZXQgdG8gbGliYmZpbmJzcC5hLgoJKCR7Qk9BUkRfQlNQfSk6IE5ldyBydWxlLgoKMjAxMS0xMi0xNSAgS29ucmFkIEVpc2VsZSA8a29ucmFkQGdhaXNsZXIuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgU1BBUkMgTEVPTiBzdXBwb3J0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBzcGFyY19sZW9uL2FzbS1sZW9uL2FtYmEuaCwgc3BhcmNfbGVvbi9hc20tbGVvbi9hc21tYWNyby5oLAoJc3BhcmNfbGVvbi9hc20tbGVvbi9jbG9jay5oLCBzcGFyY19sZW9uL2FzbS1sZW9uL2NvbnRleHRzd2l0Y2guaCwKCXNwYXJjX2xlb24vYXNtLWxlb24vZWxmbWFjcm8uaCwgc3BhcmNfbGVvbi9hc20tbGVvbi9oZWFkLmgsCglzcGFyY19sZW9uL2FzbS1sZW9uL2lycS5oLCBzcGFyY19sZW9uL2FzbS1sZW9uL2ppZmZpZXMuaCwKCXNwYXJjX2xlb24vYXNtLWxlb24vbGFtYmFwcC5oLCBzcGFyY19sZW9uL2FzbS1sZW9uL2xhbWJhcHBfZGV2cy5oLAoJc3BhcmNfbGVvbi9hc20tbGVvbi9sZW9uLmgsIHNwYXJjX2xlb24vYXNtLWxlb24vbGVvbjMuaCwKCXNwYXJjX2xlb24vYXNtLWxlb24vbGVvbmJhcmVfZGVidWcuaCwgc3BhcmNfbGVvbi9hc20tbGVvbi9sZW9uYmFyZV9rZXJuZWwuaCwKCXNwYXJjX2xlb24vYXNtLWxlb24vbGVvbmJhcmVfa2VybmVsX3F1ZXVlLmgsIHNwYXJjX2xlb24vYXNtLWxlb24vbGVvbmNvbXBhdC5oLAoJc3BhcmNfbGVvbi9hc20tbGVvbi9sZW9uZGJnLmgsIHNwYXJjX2xlb24vYXNtLWxlb24vbGVvbnN0YWNrLmgsCglzcGFyY19sZW9uL2FzbS1sZW9uL2xpYmxvY2tzLmgsIHNwYXJjX2xlb24vYXNtLWxlb24vbGlua2FnZS5oLAoJc3BhcmNfbGVvbi9hc20tbGVvbi9wYXJhbS5oLCBzcGFyY19sZW9uL2FzbS1sZW9uL3F1ZXVlLmgsCglzcGFyY19sZW9uL2FzbS1sZW9uL3NwaW5sb2NrLmgsIHNwYXJjX2xlb24vYXNtLWxlb24vc3RhY2suaCwKCXNwYXJjX2xlb24vYXNtLWxlb24vdGltZS5oLCBzcGFyY19sZW9uL2FzbS1sZW9uL3RpbWVyLmgsCglzcGFyY19sZW9uL2FzbS1sZW9uL3R5cGVzLmgsIHNwYXJjX2xlb24vYXNtLWxlb24vd2lubWFjcm9zLmg6CglOZXcgZmlsZS4KCSogc3BhcmNfbGVvbi9NYWtlZmlsZS5pbiwgc3BhcmNfbGVvbi9fZXhpdC5jLAoJc3BhcmNfbGVvbi9hbWJhLmMsIHNwYXJjX2xlb24vYW1iYV9kYmcuYywKCXNwYXJjX2xlb24vYW1iYV9kcml2ZXIuYywgc3BhcmNfbGVvbi9hbWJhX3NjYW4uYywKCXNwYXJjX2xlb24vYXNtLWxlb24sIHNwYXJjX2xlb24vYmRpbml0LlMsCglzcGFyY19sZW9uL2J1c3NjYW4uUywgc3BhcmNfbGVvbi9jYWNoZUEuUywKCXNwYXJjX2xlb24vY2F0Y2hfaW50ZXJydXB0LmMsIHNwYXJjX2xlb24vY2F0Y2hfaW50ZXJydXB0X212dC5jLAoJc3BhcmNfbGVvbi9jYXRjaF9pbnRlcnJ1cHRfcGVuZGluZy5jLCBzcGFyY19sZW9uL2NhdGNoX2ludGVycnVwdF9zdnQuYywKCXNwYXJjX2xlb24vY29uZmlndXJlLmluLAoJc3BhcmNfbGVvbi9jb25zb2xlLmMsIHNwYXJjX2xlb24vY29uc29sZV9kYmcuYywKCXNwYXJjX2xlb24vY29uc29sZV9pbml0LmMsIHNwYXJjX2xlb24vY29udGV4dHN3aXRjaC5jLAoJc3BhcmNfbGVvbi9jb250ZXh0c3dpdGNoX2FzbS5TLCBzcGFyY19sZW9uL2NydDAuUywKCXNwYXJjX2xlb24vY3J0aS5TLCBzcGFyY19sZW9uL2NydG4uUywKCXNwYXJjX2xlb24vZXRyYXAuUywgc3BhcmNfbGVvbi9ldHJhcF9mYXN0LlMsCglzcGFyY19sZW9uL2ZwdS5TLCBzcGFyY19sZW9uL2dldHRpbWVvZmRheS5jLAoJc3BhcmNfbGVvbi9pbml0Y2FsbHMuYywgc3BhcmNfbGVvbi9pby5jLAoJc3BhcmNfbGVvbi9pcnFpbnN0YWxsLlMsIHNwYXJjX2xlb24vaXJxdHJhcC5TLAoJc3BhcmNfbGVvbi9pcnF0cmFwX2Zhc3QuUywgc3BhcmNfbGVvbi9qaWZmaWVzLmMsCglzcGFyY19sZW9uL2tlcm5lbC5jLCBzcGFyY19sZW9uL2tlcm5lbF9jb250ZXh0LlMsCglzcGFyY19sZW9uL2tlcm5lbF9kZWJ1Zy5jLCBzcGFyY19sZW9uL2tlcm5lbF9kZWJ1Z192YXIuYywKCXNwYXJjX2xlb24va2VybmVsX21tLmMsIHNwYXJjX2xlb24va2VybmVsX211dGV4LmMsCglzcGFyY19sZW9uL2tlcm5lbF9xdWV1ZS5jLCBzcGFyY19sZW9uL2tlcm5lbF9zY2hlZC5jLAoJc3BhcmNfbGVvbi9rZXJuZWxfdGhyZWFkLmMsIHNwYXJjX2xlb24vbGNwdWluaXQuUywKCXNwYXJjX2xlb24vbG9jb3JlLlMsIHNwYXJjX2xlb24vbG9jb3JlX2F0ZXhpdC5jLAoJc3BhcmNfbGVvbi9sb2NvcmVfY2xlYW4uUywgc3BhcmNfbGVvbi9sb2NvcmVfbXZ0LlMsCglzcGFyY19sZW9uL2xvY29yZV9tdnRfcmVzZXQuUywgc3BhcmNfbGVvbi9sb2NvcmVfc3Z0LlMsCglzcGFyY19sZW9uL2xvY29yZV9zdnRfcmVzZXQuUywgc3BhcmNfbGVvbi9sb2NvcmVfc3Z0ZGlzcC5TLAoJc3BhcmNfbGVvbi9sb2NvcmVfdmFyLlMsIHNwYXJjX2xlb24vbG9jb3JlX3Zhcl9zdnQuUywKCXNwYXJjX2xlb24vbW11X2FzbS5TLCBzcGFyY19sZW9uL211dGV4LmMsCglzcGFyY19sZW9uL25vY2FjaGUuUywgc3BhcmNfbGVvbi9wbnBpbml0LmMsCglzcGFyY19sZW9uL3BucGluaXRfbWFsbG9jLmMsIHNwYXJjX2xlb24vcG5waW5pdF9zaW1wbGUuYywKCXNwYXJjX2xlb24vcmVnd2luLlMsIHNwYXJjX2xlb24vcmVnd2luX3BhdGNoLmMsCglzcGFyY19sZW9uL3JlZ3dpbl9zbG93LlMsIHNwYXJjX2xlb24vcmVnd2luZmx1c2guUywKCXNwYXJjX2xlb24vcnRjLmMsIHNwYXJjX2xlb24vcnRyYXAuUywKCXNwYXJjX2xlb24vcnRyYXBfZmFzdC5TLCBzcGFyY19sZW9uL3N0b3AuUywKCXNwYXJjX2xlb24vdGltZXIuYywgc3BhcmNfbGVvbi90aW1lcy5jOgoJTmV3IGZpbGUKCSogc3BhcmNfbGVvbi9jb25maWd1cmU6IFJlZ2VuZXJhdGUKCjIwMTEtMTItMTMgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgogICAgICAgICAgICBUaG9tYXMgS2xlaW4gIDx0aC5yLmtsZWluQHdlYi5kZT4KCgkqIGFybS9jcnQwLlM6IE1hbnVhbGx5IHNldCB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZQoJd2hlbiBjb21waWxpbmcgZm9yIFRodW1iMSBvbiBFQUJJIHRhcmdldHMuCglBdm9pZCB2Ni1vbmx5IFRodW1iLTEgTU9WIGluc3RydWN0aW9uLgoKMjAxMS0xMS0yOCAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBybDc4LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHJsNzg6IE5ldyBkaXJlY3RvcnkKCjIwMTEtMTEtMDggIE1pa2UgRnJ5c2luZ2VyICA8dmFwaWVyQGdlbnRvby5vcmc+CgoJKiBsaWJub3N5cy9NYWtlZmlsZS5pbiAoaW5zdGFsbCk6IFVzZSBJTlNUQUxMX0RBVEEuCgoyMDExLTEwLTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcngvY3J0MC5TOiBJbml0aWFsaXNlIHRoZSBQSUQgYWRkcmVzcyByZWdpc3Rlci4KCShfX3BpZF9iYXNlKTogRGVmaW5lIHdlYWtseS4KCjIwMTEtMDktMjkgIE1hdHRoZXcgR3JldHRvbi1EYW5uICA8bWF0dGhldy5ncmV0dG9uLWRhbm5AYXJtLmNvbT4KCgkqIGFybS9jcnQwLnM6IFN1cHBvcnQgMCBoZWFwIGJhc2UgcmVzcG9uc2UgZnJvbSBIZWFwSW5mbyBzeXNjYWxsLgoKMjAxMS0wOS0yOSAgQmluIENoZW5nICA8YmluLmNoZW5nQGFybS5jb20+CgoJKiBhcm0vYXJtLmggKEhBVkVfQ0FMTF9JTkRJUkVDVCk6IERlZmluZS4KICAgICAgICAqIGFybS9jcnQwLlMgKGluZGlyZWN0X2NhbGwpOiBOZXcgbWFjcm8uICBFbmNvZGVzIGluZGlyZWN0CglmdW5jdGlvbiBjYWxscy4gIERvZXMgbm90IHVzZSBibHggZm9yIHByZS1hcm12NSB0YXJnZXRzLgoKMjAxMS0wOC0xOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGlxMjAwMC9zaW0ubGQgKC5nY2NfZXhjZXB0X3RhYmxlKTogSW5jbHVkZSAuZ2NjX2V4Y2VwdF90YWJsZS5mb28KCXNlY3Rpb25zIGFzIHdlbGwuCgoyMDExLTA4LTA4ICBNaWtlIFN0dW1wIDxtaWtlc3R1bXBAY29tY2FzdC5uZXQ+CgoJKiBNYWtlZmlsZS5pbjogTWFrZSBzdG1wLWJzcCBhbmQgaW5zdGFsbCBjb25zaXN0ZW50IHdpdGgKCXN1YmRpcl9kbyB0YXJnZXQgd2l0aCByZWdhcmRzIHRvIGVycm9yIGhhbmRsaW5nLgoKMjAxMS0wNy0xMyAgQmluIENoZW5nIDxiaW4uY2hlbmdAYXJtLmNvbT4KCgkqIGFybS9jcnQwLlM6IFN1cHBvcnQgYXJtdjYtbSBwcm9jZXNzb3JzIGluIGxpYmdsb3NzLgoJKiBhcm0vc3dpLmg6IExpa2V3aXNlLgoJKiBhcm0vdHJhcC5TOiBMaWtld2lzZS4KCSogYXJtL3JlZGJvb3QtY3J0MC5TOiBMaWtld2lzZS4KCSogYXJtL2xpbnV4LWNydDAuYzogTGlrZXdpc2UuCgkqIGFybS9hcm0uaDogTmV3LgoKMjAxMS0wNy0wMSAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIGJmaW4vc3lzY2FsbHMuYyAoX2dldHBpZCk6IENhbGwgZG9fc3lzY2FsbCB3aXRoIGZ1bmMgYXJndW1lbnQgbiBhbmQKCXJldHVybiB0aGUgcmVzdWx0LgoJKF9mc3RhdCk6IERlbGV0ZSBzdHViIGJvZHkuICBBZGQgYmxvY2sgYXJyYXkgYW5kIGFzc2lnbiBmaWxlL3N0IHRvIGl0LgoJQ2FsbCBkb19zeXNjYWxsIHdpdGggcmVzdWx0LgoJKF9zdGF0KTogRGVsZXRlIHN0dWIgYm9keS4gIEFkZCBibG9jayBhcnJheSBhbmQgYXNzaWduIGZuYW1lL3N0IHRvCglpdC4gIENhbGwgZG9fc3lzY2FsbCB3aXRoIHJlc3VsdC4KCShfbGluayk6IENoYW5nZSBmdW5jIGFyZ3VtZW50cyB0byBhY2NlcHQgdHdvIHN0cmluZ3MuICBBZGQgYmxvY2sgYXJyYXkKCWFuZCBhc3NpZ24gZXhpc3RpbmcvbmV3IHRvIGl0LiAgQ2FsbCBkb19zeXNjYWxsIHdpdGggcmVzdWx0LgoJKF91bmxpbmspOiBDaGFuZ2UgZnVuYyBhcmd1bWVudHMgdG8gYWNjZXB0IGEgc3RyaW5nLiAgQ2FsbCBkb19zeXNjYWxsCgl3aXRoIG5ldyBhcmd1bWVudC4KCjIwMTEtMDctMDEgIE1pa2UgRnJ5c2luZ2VyICA8dmFwaWVyQGdlbnRvby5vcmc+CgoJKiBiZmluL3N5c2NhbGxzLmMgKF9sc2Vlayk6IENoYW5nZSAzcmQgYXJnIG5hbWUgdG8gd2hlbmNlLiAgSW5jcmVhc2UKCWJsb2NrIGFycmF5IHRvIDMgZWxlbWVudHMuICBTZXQgM3JkIGVsZW1lbnQgdG8gd2hlbmNlLgoKMjAxMS0wNi0yOSAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBhcm0vTWFrZWZpbGUuaW46IEFkZCAkQ0ZMQUdTIHRvIGNvbXBpbGUgY29tbWFuZHMgZm9yIHNwZWNpZmllZCAubyB0YXJnZXRzLgoKMjAxMS0wNi0yMiAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIGJmaW4vc3lzY2FsbHMuYyAoZG9fc3lzY2FsbCk6IERlbGV0ZSBsb2NhbCB2YXJpYWJsZSBkZWZpbml0aW9ucy4KCURlY2xhcmUgcmVzdWx0LCByZXN1bHQyLCBlcnJjb2RlIGxvY2FsIGludHMuICBEZWxldGUgYXNtIGlucHV0cwoJYW5kIG91dHB1dHMuICBTZXQgb3V0cHV0IGNvbnN0cmFpbnRzIHRvIHEwL3Jlc3VsdCwgcTEvcmVzdWx0MiwgYW5kCglxMi9lcnJjb2RlLiAgU2V0IGlucHV0IGNvbnN0cmFpbnRzIHRvIHFBL3JlYXNvbiBhbmQgcTAvYXJnLiAgU2V0CgllcnJubyB0byBlcnJjb2RlLgoKMjAxMS0wNi0yMSAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIGJmaW4vc3lzY2FsbHMuYzogVHJpbSB0cmFpbGluZyB3aGl0ZXNwYWNlLgoJKiBiZmluL2NydDAuUzogTGlrZXdpc2UuCgoyMDExLTA2LTE0ICBKb3NlcGggTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogRG9uJ3QgaGFuZGxlIHN0cm9uZ2FybSwgZXA5MzEyIGFuZCB4c2NhbGUgdGFyZ2V0CgluYW1lcy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBsaWJub3N5cy9jb25maWd1cmUuaW46IERvbid0IGhhbmRsZSBzdHJvbmdhcm0gYW5kIHRodW1iIHRhcmdldAoJbmFtZXMuCgkqIGxpYm5vc3lzL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMTEtMDUtMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiB2ODUwMC9zYnJrLmMgKF9zYnJrKTogVGlkeSBjb2RlLgoJQmFzZSBzdGFydCBvZiBoZWFwIG9uIHRoZSAiaGVhcF9zdGFydCIgc3ltYm9sLgoKMjAxMS0wMy0yNiAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIGJmaW4vaW5jbHVkZS9idWlsdGlucy5oIChfX2J1aWx0aW5fcmFpc2UpOiBDaGFuZ2UgY29uc3RyYWludCB0byBuLgoJKF9fYnVpbHRpbl9leGNwdCk6IExpa2V3aXNlLgoKMjAxMS0wMy0yNiAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIGJmaW4vTWFrZWZpbGUuaW4gKGluc3RhbGwtc2ltKTogRXhpdCB3aGVuIGluc3RhbGwgZmFpbHMuCgkoaW5zdGFsbC1ib2FyZCk6IExpa2V3aXNlLgoKMjAxMS0wMy0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHhzdG9ybXkxNi9jcnQwLnMgKF9od2ludCk6IEZpeCAuc2l6ZSBkaXJlY3RpdmUuCgoJKiBmcnYvY3J0MC5TIChfX2Zydl9maXhfdXNycHRycyk6IEZpeCAuc2l6ZSBkaXJlY3RpdmUuCgoyMDExLTAzLTIxICBLZXZpbiBCdWV0dG5lciAgPGtldmluYkByZWRoYXQuY29tPgoKCSogdjg1MC9zeXMvc3lzY2FsbC5oIChTWVNfcmVuYW1lKTogRGVmaW5lLgoKMjAxMS0wMS0xMCAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIE1ha2VmaWxlLmluIChzdG1wLWJzcCk6IEV4aXQgd2hlbiBzdWJkaXJzIGZhaWwuCgkoaW5zdGFsbCk6IExpa2V3aXNlLgoKMjAxMC0xMi0wMiAgSmF5YW50IFNvbmFyICBqYXlhbnQuc29uYXJAa3BpdGN1bW1pbnMuY29tCgkgICAgS2F1c2hpayBQaGF0YWsgIGthdXNoaWsucGhhdGFrQGtwaXRjdW1taW5zLmNvbQoKCSogY29uZmlndXJlLmluOiBBZGQgQ1IxNiBzdXBwb3J0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBjcjE2L2FjbG9jYWwubTQ6IE5ldy4KCSogY3IxNi9jbG9zZS5jOiBOZXcuCgkqIGNyMTYvY29uZmlndXJlOiBOZXcuCgkqIGNyMTYvY29uZmlndXJlLmluOiBOZXcuCgkqIGNyMTYvY3J0MS5TOiBOZXcuCgkqIGNyMTYvY3J0aS5TOiBOZXcuCgkqIGNyMTYvY3J0bi5TOiBOZXcuCgkqIGNyMTYvZHZ6X2huZGwuYzogTmV3LgoJKiBjcjE2L19leGl0LmM6IE5ldy4KCSogY3IxNi9mbGdfaG5kbC5jOiBOZXcuCgkqIGNyMTYvZnN0YXQuYzogTmV3LgoJKiBjcjE2L19nZXRlbnYuYzogTmV3LgoJKiBjcjE2L2dldHBpZC5jOiBOZXcuCgkqIGNyMTYvaWFkX2huZGwuYzogTmV3LgoJKiBjcjE2L2ludGFibGUuYzogTmV3LgoJKiBjcjE2L2lzYXR0eS5jOiBOZXcuCgkqIGNyMTYva2lsbC5jOiBOZXcuCgkqIGNyMTYvbHNlZWsuYzogTmV3LgoJKiBjcjE2L01ha2VmaWxlLmluOiBOZXcuCgkqIGNyMTYvb3Blbi5jOiBOZXcuCgkqIGNyMTYvcHV0bnVtLmM6IE5ldy4KCSogY3IxNi9yZWFkLmM6IE5ldy4KCSogY3IxNi9fcmVuYW1lLmM6IE5ldy4KCSogY3IxNi9zYnJrLmM6IE5ldy4KCSogY3IxNi9zaW0ubGQ6IE5ldy4KCSogY3IxNi9zdGF0LmM6IE5ldy4KCSogY3IxNi9zdmNfaG5kbC5jOiBOZXcuCgkqIGNyMTYvdGltZS5jOiBOZXcuCgkqIGNyMTYvdW5kX2huZGwuYzogTmV3LgoJKiBjcjE2L3VubGluay5jOiBOZXcuCgkqIGNyMTYvd3JpdGUuYzogTmV3LgoKMjAxMC0xMS0xNyAgQmVybmQgU2NobWlkdCAgPGJlcm5kc0Bjb2Rlc291cmNlcnkuY29tPgoKCSogdGljNngvc3lzY2FsbHMuYyAoY2lvX2dldGNsa190b19ob3N0LCBjaW9fZ2V0Y2xrX2Zyb21faG9zdCk6IE5ldwoJc3RydWN0cy4KCShjaW9fdG9faG9zdCwgY2lvX2Zyb21faG9zdCk6IFVzZSB0aGVtLgoJKGNsb2NrKTogTmV3IGZ1bmN0aW9uLgoKMjAxMC0xMC0xNyAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIGJmaW4vaW5jbHVkZS9ibGFja2Zpbi5oLCBiZmluL2luY2x1ZGUvYnVpbHRpbnMuaCwKCWJmaW4vaW5jbHVkZS9jY2Jsa2ZuLmgsIGJmaW4vaW5jbHVkZS9jZGVmQkY1MTIuaCwKCWJmaW4vaW5jbHVkZS9jZGVmQkY1MTQuaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjUxNi5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjUxOC5oLCBiZmluL2luY2x1ZGUvY2RlZkJGNTF4X2Jhc2UuaCwKCWJmaW4vaW5jbHVkZS9jZGVmQkY1MjIuaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjUyMy5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjUyNC5oLCBiZmluL2luY2x1ZGUvY2RlZkJGNTI1LmgsCgliZmluL2luY2x1ZGUvY2RlZkJGNTI2LmgsIGJmaW4vaW5jbHVkZS9jZGVmQkY1MjcuaCwKCWJmaW4vaW5jbHVkZS9jZGVmQkY1MnhfYmFzZS5oLCBiZmluL2luY2x1ZGUvY2RlZkJGNTMxLmgsCgliZmluL2luY2x1ZGUvY2RlZkJGNTMyLmgsIGJmaW4vaW5jbHVkZS9jZGVmQkY1MzMuaCwKCWJmaW4vaW5jbHVkZS9jZGVmQkY1MzQuaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjUzNS5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjUzNi5oLCBiZmluL2luY2x1ZGUvY2RlZkJGNTM3LmgsCgliZmluL2luY2x1ZGUvY2RlZkJGNTM4LmgsIGJmaW4vaW5jbHVkZS9jZGVmQkY1MzkuaCwKCWJmaW4vaW5jbHVkZS9jZGVmQkY1M3guaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjU0Mi5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjU0Mk0uaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjU0NC5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjU0NE0uaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjU0Ny5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjU0N00uaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjU0OC5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjU0OE0uaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjU0OS5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjU0OU0uaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjU0eF9iYXNlLmgsCgliZmluL2luY2x1ZGUvY2RlZkJGNTYxLmgsIGJmaW4vaW5jbHVkZS9jZGVmX0xQQmxhY2tmaW4uaCwKCWJmaW4vaW5jbHVkZS9jZGVmYmxhY2tmaW4uaCwgYmZpbi9pbmNsdWRlL2NwbGIuaCwKCWJmaW4vaW5jbHVkZS9jcGxidGFiLmgsIGJmaW4vaW5jbHVkZS9kZWZCRjUxMi5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTE0LmgsIGJmaW4vaW5jbHVkZS9kZWZCRjUxNi5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTE4LmgsIGJmaW4vaW5jbHVkZS9kZWZCRjUxeF9iYXNlLmgsCgliZmluL2luY2x1ZGUvZGVmQkY1MjIuaCwgYmZpbi9pbmNsdWRlL2RlZkJGNTIzLmgsCgliZmluL2luY2x1ZGUvZGVmQkY1MjQuaCwgYmZpbi9pbmNsdWRlL2RlZkJGNTI1LmgsCgliZmluL2luY2x1ZGUvZGVmQkY1MjYuaCwgYmZpbi9pbmNsdWRlL2RlZkJGNTI3LmgsCgliZmluL2luY2x1ZGUvZGVmQkY1MnhfYmFzZS5oLCBiZmluL2luY2x1ZGUvZGVmQkY1MzEuaCwKCWJmaW4vaW5jbHVkZS9kZWZCRjUzMi5oLCBiZmluL2luY2x1ZGUvZGVmQkY1MzMuaCwKCWJmaW4vaW5jbHVkZS9kZWZCRjUzNC5oLCBiZmluL2luY2x1ZGUvZGVmQkY1MzUuaCwKCWJmaW4vaW5jbHVkZS9kZWZCRjUzNi5oLCBiZmluL2luY2x1ZGUvZGVmQkY1MzcuaCwKCWJmaW4vaW5jbHVkZS9kZWZCRjUzOC5oLCBiZmluL2luY2x1ZGUvZGVmQkY1MzkuaCwKCWJmaW4vaW5jbHVkZS9kZWZCRjU0Mi5oLCBiZmluL2luY2x1ZGUvZGVmQkY1NDJNLmgsCgliZmluL2luY2x1ZGUvZGVmQkY1NDQuaCwgYmZpbi9pbmNsdWRlL2RlZkJGNTQ0TS5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTQ3LmgsIGJmaW4vaW5jbHVkZS9kZWZCRjU0N00uaCwKCWJmaW4vaW5jbHVkZS9kZWZCRjU0OC5oLCBiZmluL2luY2x1ZGUvZGVmQkY1NDhNLmgsCgliZmluL2luY2x1ZGUvZGVmQkY1NDkuaCwgYmZpbi9pbmNsdWRlL2RlZkJGNTQ5TS5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTR4X2Jhc2UuaCwgYmZpbi9pbmNsdWRlL2RlZkJGNTYxLmgsCgliZmluL2luY2x1ZGUvZGVmYmxhY2tmaW4uaCwgYmZpbi9pbmNsdWRlL3N5c3JlZy5oLAoJYmZpbi9pbmNsdWRlL3N5cy9hbm9tYWx5X21hY3Jvc19ydGwuaCwgYmZpbi9pbmNsdWRlL3N5cy9leGNhdXNlLmgsCgliZmluL2luY2x1ZGUvc3lzL2V4Y2VwdGlvbi5oLCBiZmluL2luY2x1ZGUvc3lzL21jX3R5cGVkZWYuaCwKCWJmaW4vaW5jbHVkZS9zeXMvcGxhdGZvcm0uaCwgYmZpbi9pbmNsdWRlL3N5cy9wbGwuaDoKCVVwZGF0ZSB0byBWaXN1YWwgRFNQIDUuMCBVcGRhdGUgOC4KCjIwMTAtMTAtMTYgIE1pa2UgRnJ5c2luZ2VyICA8dmFwaWVyQGdlbnRvby5vcmc+CgoJKiBiZmluL01ha2VmaWxlLmluIChCT0FSRF9TQ1JJUFRTKTogQWRkIGJmNTkyLmxkLgoJKiBiZmluL2JmNTkyOiBOZXcgbGlua2VyIHNjcmlwdHMuCgkqIGJmaW4vaW5jbHVkZS9jZGVmQkY1OTItQS5oLCBiZmluL2luY2x1ZGUvY2RlZkJGNTl4X2Jhc2UuaCwKCWJmaW4vaW5jbHVkZS9kZWZCRjU5Mi1BLmgsIGJmaW4vaW5jbHVkZS9kZWZCRjU5eF9iYXNlLmg6IE5ldyBmaWxlcy4KCSogYmZpbi9pbmNsdWRlL3N5cy9fYWRpX3BsYXRmb3JtLmg6IEluY2x1ZGUgbmV3IGJmNTkyIGhlYWRlcnMuCgoyMDEwLTEwLTE1ICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgoKCSogYmZpbi9NYWtlZmlsZS5pbiAoQk9BUkRfU0NSSVBUUyk6IEFkZCBiZjUwNC5sZCBhbmQgYmY1MDYubGQuCgkqIGJmaW4vYmY1MDQubGQsIGJmaW4vYmY1MDYubGQ6IE5ldyBsaW5rZXIgc2NyaXB0cy4KCSogYmZpbi9pbmNsdWRlL2NkZWZCRjUwNC5oLCBiZmluL2luY2x1ZGUvY2RlZkJGNTA0Ri5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjUwNkYuaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjUweF9iYXNlLmgsCgliZmluL2luY2x1ZGUvZGVmQkY1MDQuaCwgYmZpbi9pbmNsdWRlL2RlZkJGNTA0Ri5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTA2Ri5oLCBiZmluL2luY2x1ZGUvZGVmQkY1MHhfYmFzZS5oOiBOZXcgZmlsZXMuCgkqIGJmaW4vaW5jbHVkZS9kZWZfTFBCbGFja2Zpbi5oOiBBZGQgRE1DX1AgZm9yIF9fQURTUEJGNTB4X18uCgkqIGJmaW4vaW5jbHVkZS9zeXMvX2FkaV9wbGF0Zm9ybS5oOiBJbmNsdWRlIG5ldyBiZjUweCBoZWFkZXJzLgoKMjAxMC0xMC0xNSAgU3R1YXJ0IEhlbmRlcnNvbiAgPHN0dWFydC5oZW5kZXJzb25AYW5hbG9nLmNvbT4KCgkqIGJmaW4vYmZpbi1jb21tb24tbWMubGQ6IEFkZCAubDEuZGF0YSBhbmQgLmwxLnRleHQgaW5wdXQgc2VjdGlvbnMuCgkqIGJmaW4vYmZpbi1jb21tb24tc2MubGQ6IExpa2V3aXNlLgoKMjAxMC0xMC0xNSAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIGJmaW4vaW5jbHVkZS9zeXMvX2FkaV9wbGF0Zm9ybS5oOiBSZW1vdmUgX19BRFNQQkY1NDFfXy4KCSogYmZpbi9pbmNsdWRlL2NkZWZCRjU0MS5oLCBiZmluL2luY2x1ZGUvZGVmQkY1NDEuaDogUHVudC4KCjIwMTAtMTAtMDggIEJlcm5kIFNjaG1pZHQgIDxiZXJuZHNAY29kZXNvdXJjZXJ5LmNvbT4KCUpvc2VwaCBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlndXJlLmluOiBIYW5kbGUgdGljNnggdGFyZ2V0cy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiB0aWM2eC9NYWtlZmlsZS5pbiwgdGljNngvY29uZmlndXJlLmluLCB0aWM2eC9jcnQwLlMsCgl0aWM2eC9nZXRwaWQuYywgdGljNngva2lsbC5jLCB0aWM2eC9zYnJrLmMsIHRpYzZ4L3N5c2NhbGxzLmM6IE5ldy4KCSogdGljNngvY29uZmlndXJlOiBOZXcgKGdlbmVyYXRlZCkuCgoyMDEwLTEwLTAyICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CgoJKiBtb3hpZS9NYWtlZmlsZS5pbiAoUUVNVV9PQkpTKTogQWRkIG1pc3Npbmcgb2JqZWN0IGZpbGVzIHRvIHRoZQoJcWVtdSBzdXBwb3J0IGxpYnJhcnkuCgoyMDEwLTEwLTAyICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CgoJKiBtb3hpZS9jcnQwLlMgKF9zdGFydCk6IE1pbm9yIG9wdGltaXphdGlvbnMgdG8gX19zdGFydC4KCjIwMTAtMDktMjMgIE1pa2UgRnJ5c2luZ2VyICA8dmFwaWVyQGdlbnRvby5vcmc+CgkgICAgQ29yaW5uYSBWaW5zY2hlbiAgPHZpbnNjaGVuQHJlZGhhdC5jb20+CgoJKiBkb2MvcG9ydGluZy50ZXhpOiBGaXggdHlwb3MuCgoyMDEwLTA5LTIyICBNaWtlIEZyeXNpbmdlciAgPHZhcGllckBnZW50b28ub3JnPgoKCSogUkVBRE1FOiBBZGQgYmZpbiB0byB0aGUgbGlzdC4KCjIwMTAtMDgtMjcgIENocmlzdG9waGUgTHlvbiAgPGNocmlzdG9waGUubHlvbkBzdC5jb20+CgoJKiBzeXNjYWxscy5jIChfaXNhdHR5KTogRml4IHJldHVybiB2YWx1ZS4KCjIwMTAtMDctMjMgIE5hdmVlbi5ILlMgIDxuYXZlZW5oMUBrcGl0Y3VtbWlucy5jb20+CiAgICAgICAgICAgIEdpbmEgVmVybGVrYXIgPGdpbmEudmVybGVrYXJAa3BpdGN1bW1pbnMuY29tPgoKICAgICAgICBNb3ZpbmcgZmlsZXMgZnJvbSBuZXdsaWIvbGliYy9zeXMvc3lzbmVjdjg1MCB0byB2ODUwCgogICAgICAgICogbGlibm9zeXMvY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KICAgICAgICAqIGxpYm5vc3lzL2NvbmZpZ3VyZS5pbjogQ29tcGFjdCB2ODUwIHN1cHBvcnQgdG8gdjg1MCotKi0qLgogICAgICAgICogbGlibm9zeXMvY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KICAgICAgICAqIGNvbmZpZ3VyZS5pbjogQWRkIGxpYmdsb3NzIHN1cHBvcnQgZm9yIHY4NTAuCiAgICAgICAgKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgogICAgICAgICogdjg1MC9hY2Nlc3MuYzogTmV3IGZpbGUuCiAgICAgICAgKiB2ODUwL2FjbG9jYWwubTQ6IE5ldy4KICAgICAgICAqIHY4NTAvY2htb2QuYzogTmV3LgogICAgICAgICogdjg1MC9jaG93bi5jOiBOZXcuCiAgICAgICAgKiB2ODUwL2Nsb3NlLmM6IE5ldy4KICAgICAgICAqIHY4NTAvY29uZmlndXJlOiBOZXcuCiAgICAgICAgKiB2ODUwL2NvbmZpZ3VyZS5pbjogTmV3LgogICAgICAgICogdjg1MC9jcnQwLlM6IE5ldy4KICAgICAgICAqIHY4NTAvY3J0MS5jOiBOZXcuCiAgICAgICAgKiB2ODUwL2V4ZWN2LmM6IE5ldy4KICAgICAgICAqIHY4NTAvZXhlY3ZlLmM6IE5ldy4KICAgICAgICAqIHY4NTAvX2V4aXQuYzogTmV3LgogICAgICAgICogdjg1MC9mb3JrLmM6IE5ldy4KICAgICAgICAqIHY4NTAvZnN0YXQuYzogTmV3LgogICAgICAgICogdjg1MC9nZXRwaWQuYzogTmV3LgogICAgICAgICogdjg1MC9nZXR0aW1lLmM6IE5ldy4KICAgICAgICAqIHY4NTAvaXNhdHR5LmM6IE5ldy4KICAgICAgICAqIHY4NTAva2lsbC5jOiBOZXcuCiAgICAgICAgKiB2ODUwL2xpbmsuYzogTmV3LgogICAgICAgICogdjg1MC9sc2Vlay5jOiBOZXcuCiAgICAgICAgKiB2ODUwL01ha2VmaWxlLmluOiBOZXcuCiAgICAgICAgKiB2ODUwL29wZW4uYzogTmV3LgogICAgICAgICogdjg1MC9waXBlLmM6IE5ldy4KICAgICAgICAqIHY4NTAvcmVhZC5jOiBOZXcuCiAgICAgICAgKiB2ODUwL3NicmsuYzogTmV3LgogICAgICAgICogdjg1MC9zaW0ubGQ6IE5ldy4KICAgICAgICAqIHY4NTAvc3RhdC5jOiBOZXcuCiAgICAgICAgKiB2ODUwL3RpbWUuYzogTmV3LgogICAgICAgICogdjg1MC90aW1lcy5jOiBOZXcuCiAgICAgICAgKiB2ODUwL3RyYXAuUzogTmV3LgogICAgICAgICogdjg1MC91bmxpbmsuYzogTmV3LgogICAgICAgICogdjg1MC91dGltZS5jOiBOZXcuCiAgICAgICAgKiB2ODUwL3dhaXQuYzogTmV3LgogICAgICAgICogdjg1MC93cml0ZS5jOiBOZXcuCgoyMDEwLTA3LTE5ICBSYWZhZWwgQ2FtcG9zICA8bWV0aHJpbEBnbWFpbC5jb20+CgoJKiBtNjhrL2NmLWNydDEuYyAoaGFyZHdhcmVfaW5pdF9ob29rKTogQWNjb21tb2RhdGUgbmV3IGZhbWlseQoJX19tY2ZfZmFtaWx5XzUxIHNpbmNlIGdjYyA0LjUuMS4KCjIwMTAtMDYtMjkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiB4c3Rvcm15MTYvZXZhX2FwcC5sZCAoLmdjY19leGNlcHRfdGFibGUpOiBJbmNsdWRlIHNlY3Rpb25zIHdpdGgKCXRoZSAuZ2NjX2V4Y2VwdF90YWJsZS4gcHJlZml4LgoJKiB4c3Rvcm15MTYvZXZhX3N0dWIubGQ6IExpa2V3aXNlLgoJKiB4c3Rvcm15MTYvc2ltX2hpZ2gubGQ6IExpa2V3aXNlLgoJKiB4c3Rvcm15MTYvc2ltX2xvdy5sZDogTGlrZXdpc2UuCgoyMDEwLTA1LTAzICBNaWNoYWVsIEVhZ2VyIDxlYWdlckBlYWdlcmNvbi5jb20+CgoJKiByczYwMDAvTWFrZWZpbGUuaW46IFJlbW92ZSB4aWwtZXhpdC5vLgoKMjAxMC0wMi0wOCAgQ29ubnkgTWFyY28gTWVuZWJyb2NrZXIgPGMtbS1tQGdteC5kZT4KCgkqIHhjMTZ4L3hjMTZ4Lm10OiBOZXcgZmlsZS4KCSogeGMxNngvY29uZmlndXJlLmluOiBBZGQgdGFyZ2V0X21ha2VmaWxlX2ZyYWcgcmVmZXJlbmNlLgoJKiB4YzE2eC9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwOS0xMi0xNyAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBtbjEwMzAwL01ha2VmaWxlLmluOiBBZGQgbWtkaXIgY2FsbCB0byBtYWtlIGluc3RhbGxhdGlvbgoJZGlyZWN0b3J5IHdoZW4gaW5zdGFsbGluZy4KCjIwMDktMTItMTYgIENvbm55IE1hcmNvIE1lbmVicm9ja2VyIDxjLW0tbUBnbXguZGU+CgoJKiB4YzE2eC9NYWtlZmlsZS5pbjogUmVtb3ZlIGV4dHJhbmVvdXMgc3R1ZmYKCWJyb3VnaHQgaW4gYnkgY29weS4KCSogeGMxNngvY29uZmlndXJlLmluOiBEaXR0by4KCSogeGMxNngvY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDktMTItMTAgIENvbm55IE1hcmNvIE1lbmVicm9ja2VyIDxjLW0tbUBnbXguZGU+CgoJKiBjb25maWd1cmUuaW46IEFkZCB4YzE2eCBzdXBwb3J0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiB4YzE2eC9NYWtlZmlsZS5pbjogTmV3IGZpbGUgZm9yIHhjMTZ4IHBvcnQuCgkqIHhjMTZ4L2FjbG9jYWwubTQ6IERpdHRvLgoJKiB4YzE2eC9jbG9zZS5TOiBEaXR0by4KCSogeGMxNngvY29uZmlndXJlOiBEaXR0by4KCSogeGMxNngvY29uZmlndXJlLmluOiBEaXR0by4KCSogeGMxNngvY3JlYXRlLmM6IERpdHRvLgoJKiB4YzE2eC9jcnQwLlM6IERpdHRvLgoJKiB4YzE2eC9mc3RhdC5TOiBEaXR0by4KCSogeGMxNngvZ2V0Y2hhcjEuYzogRGl0dG8uCgkqIHhjMTZ4L2lzYXR0eS5jOiBEaXR0by4KCSogeGMxNngvbHNlZWsuYzogRGl0dG8uCgkqIHhjMTZ4L21lbS1sYXlvdXQuYzogRGl0dG8uCgkqIHhjMTZ4L21pc2MuYzogRGl0dG8uCgkqIHhjMTZ4L29wZW4uYzogRGl0dG8uCgkqIHhjMTZ4L3JlYWQuYzogRGl0dG8uCgkqIHhjMTZ4L3NicmsuYzogRGl0dG8uCgkqIHhjMTZ4L3N5c2NhbGxzLmM6IERpdHRvLgoJKiB4YzE2eC90cmFwX2hhbmRsZS5jOiBEaXR0by4KCSogeGMxNngvd3JpdGUuYzogRGl0dG8uCgkqIHhjMTZ4L3N5cy9zeXNjYWxsLmg6IERpdHRvLgoKMjAwOS0xMS0yNSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiByeC9yeC5sZDogUGxhY2UgLnNic3MgcHJvcGVybHkuCgkqIHJ4L3J4LXNpbS5sZDogTGlrZXdpc2UuCgoyMDA5LTEwLTI2ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIFJYIHN1Yi1kaXJlY3RvcnkuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcng6IE5ldyBkaXJlY3RvcnkuCgkqIHJ4Lyo6IE5ldyBmaWxlcyB0byBzdXBwb3J0IFJYIGFyY2hpdGVjdHVyZS4KCjIwMDktMTAtMjYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcm0vbGludXgtc3lzY2FsbHMwLlMgKFNZU0NBTEwwLCBTWVNDQUxMMywgU1lTQ0FMTDYsIFNZU0NBTEw0KToKCURlbGV0ZSBUaHVtYiBkZWZpbml0aW9ucyAtIHRoZSBBUk0gdmVyc2lvbnMgd29yayBjb3JyZWN0bHkgaW4KCVRodW1iIG1vZGUuCgoyMDA5LTEwLTA4ICBKaWUgWmhhbmcgIDxqaWUuemhhbmdAYW5hbG9nLmNvbT4KCgkqIGJmaW4vTWFrZWZpbGUuaW4gKGJhc2ljY3J0Lm8sIGJhc2ljY3J0cy5vKTogVXNlCgktbWNwdT1iZjUzMi1hbnkgZm9yIHRoZSBkZWZhdWx0IG11bHRpbGliLgoKMjAwOS0wOS0yOCAgTWljaGFlbCBFYWdlciA8ZWFnZXJAZWFnZXJjb24uY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgbWljcm9ibGF6ZS0qLSouCgkqIGNvbmZpZ3VyZTogQWRkIG1pY3JvYmxhemUtKi0qIChub3QgcmVnZW5lcmF0ZWQuKQoJKiBtaWNyb2JsYXplOiBORVcgbWljcm9ibGF6ZSB0YXJnZXQgZGlyZWN0b3J5LgoJKiBtaWNyb2JsYXplL2NvbmZpZ3VyZS5pbjogTkVXLgoJKiBtaWNyb2JsYXplL2NvbmZpZ3VyZTogR2VuZXJhdGUuCgkqIG1pY3JvYmxhemUvTWFrZWZpbGUuaW46IE5FVy4KCSogbWljcm9ibGF6ZS97Y3J0MC5TLCBjcnQxLlMsIGNydDIuUywgY3J0My5TLCBjcnQ0LlMsIGNydGluaXQuU306IE5FVy4KCSogbWljcm9ibGF6ZS97cGdjcnRpbml0LlMsIF9wcm9ncmFtX2NsZWFuLlMsIF9wcm9ncmFtX2luaXQuUywKCXNicmsuYywgc2ltLWNydGluaXQuUywgc2ltLXBnY3J0aW5pdC5TLCB0aW1lci5jLCBfZXhjZXB0aW9uX2hhbmRsZXIuUywKCV9od19leGNlcHRpb25faGFuZGxlci5TLCBfaW50ZXJydXB0X2hhbmRsZXIuUywgeGlsX21hbGxvYy5jLAoJbm54aWxfcHJpbnRmLmMsIHhpbF9zYnJrLmM6IE5FVy4KCSogbWljcm9ibGF6ZS94aWxpbngubGQ6IE5FVy4KCjIwMDktMDktMjEgIEtlbiBXZXJuZXIgIDxrZW4ud2VybmVyQGRlLmlibS5jb20+CgogICAgICAgICogc3B1L2dldHBhZ2VzaXplLmM6IEFsaWduIGdldHBhZ2VzaXplIGltcGxlbWVudGF0aW9uIHRvIFBPU0lYCgoyMDA5LTA5LTE2ICBNaWtlIEZyeXNpbmdlciAgPG1pY2hhZWwuZnJ5c2luZ2VyQGFuYWxvZy5jb20+CgoJKiBiZmluL2luY2x1ZGUvY2RlZkJGNTEyLmgsIGJmaW4vaW5jbHVkZS9jZGVmQkY1MTQuaCwKCWJmaW4vaW5jbHVkZS9jZGVmQkY1MTYuaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjUxOC5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjUxeF9iYXNlLmgsIGJmaW4vaW5jbHVkZS9jZGVmQkY1MjMuaCwKCWJmaW4vaW5jbHVkZS9jZGVmQkY1MjQuaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjUyNi5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjU0Mk0uaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjU0NE0uaCwKCWJmaW4vaW5jbHVkZS9jZGVmQkY1NDdNLmgsIGJmaW4vaW5jbHVkZS9jZGVmQkY1NDhNLmgsCgliZmluL2luY2x1ZGUvY2RlZkJGNTQ5TS5oLCBiZmluL2luY2x1ZGUvZGVmQkY1MTIuaCwKCWJmaW4vaW5jbHVkZS9kZWZCRjUxNC5oLCBiZmluL2luY2x1ZGUvZGVmQkY1MTYuaCwKCWJmaW4vaW5jbHVkZS9kZWZCRjUxOC5oLCBiZmluL2luY2x1ZGUvZGVmQkY1MXhfYmFzZS5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTIzLmgsIGJmaW4vaW5jbHVkZS9kZWZCRjUyNC5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTI2LmgsIGJmaW4vaW5jbHVkZS9kZWZCRjU0Mk0uaCwKCWJmaW4vaW5jbHVkZS9kZWZCRjU0NE0uaCwgYmZpbi9pbmNsdWRlL2RlZkJGNTQ3TS5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTQ4TS5oLCBiZmluL2luY2x1ZGUvZGVmQkY1NDlNLmg6CglOZXcgZmlsZS4KCSogYmZpbi9pbmNsdWRlL2NjYmxrZm4uaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjUyNS5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjUyNy5oLCBiZmluL2luY2x1ZGUvY2RlZkJGNTJ4X2Jhc2UuaCwKCWJmaW4vaW5jbHVkZS9jZGVmQkY1MzIuaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjUzNC5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjUzNS5oLCBiZmluL2luY2x1ZGUvY2RlZkJGNTM4LmgsCgliZmluL2luY2x1ZGUvY2RlZkJGNTM5LmgsIGJmaW4vaW5jbHVkZS9jZGVmQkY1NDIuaCwKCWJmaW4vaW5jbHVkZS9jZGVmQkY1NDQuaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjU0Ny5oLAoJYmZpbi9pbmNsdWRlL2NkZWZCRjU0OC5oLCBiZmluL2luY2x1ZGUvY2RlZkJGNTQ5LmgsCgliZmluL2luY2x1ZGUvY2RlZkJGNTR4X2Jhc2UuaCwgYmZpbi9pbmNsdWRlL2NkZWZCRjU2MS5oLAoJYmZpbi9pbmNsdWRlL2NkZWZibGFja2Zpbi5oLCBiZmluL2luY2x1ZGUvY2RlZl9MUEJsYWNrZmluLmgsCgliZmluL2luY2x1ZGUvY3BsYi5oLCBiZmluL2luY2x1ZGUvZGVmQkY1MjcuaCwKCWJmaW4vaW5jbHVkZS9kZWZCRjUyeF9iYXNlLmgsIGJmaW4vaW5jbHVkZS9kZWZCRjUzMi5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTM0LmgsIGJmaW4vaW5jbHVkZS9kZWZCRjUzNS5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTM3LmgsIGJmaW4vaW5jbHVkZS9kZWZCRjUzOC5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTM5LmgsIGJmaW4vaW5jbHVkZS9kZWZCRjU0Mi5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTQ0LmgsIGJmaW4vaW5jbHVkZS9kZWZCRjU0Ny5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTQ4LmgsIGJmaW4vaW5jbHVkZS9kZWZCRjU0OS5oLAoJYmZpbi9pbmNsdWRlL2RlZkJGNTR4X2Jhc2UuaCwgYmZpbi9pbmNsdWRlL2RlZkJGNTYxLmgsCgliZmluL2luY2x1ZGUvZGVmYmxhY2tmaW4uaCwgYmZpbi9pbmNsdWRlL2RlZl9MUEJsYWNrZmluLmgsCgliZmluL2luY2x1ZGUvc3lzL19hZGlfcGxhdGZvcm0uaCwKCWJmaW4vaW5jbHVkZS9zeXMvYW5vbWFseV9tYWNyb3NfcnRsLmgsCgliZmluL2luY2x1ZGUvc3lzL2V4Y2VwdGlvbi5oLCBiZmluL2luY2x1ZGUvc3lzcmVnLmg6CglVcGRhdGUgdG8gVmlzdWFsIERTUCA1LjAgVXBkYXRlIDYuCgoyMDA5LTA5LTE2ICBNaWtlIEZyeXNpbmdlciAgPG1pY2hhZWwuZnJ5c2luZ2VyQGFuYWxvZy5jb20+CgoJKiBiZmluL01ha2VmaWxlLmluIChCT0FSRF9TQ1JJUFRTKTogQWRkIGJmNTEyLmxkLCBiZjUxNC5sZCwKCWFuZCBiZjUxNi5sZCwgYmY1MTgubGQuCgkqIGJmaW4vYmY1MTIubGQ6IE5ldyBmaWxlLgoJKiBiZmluL2JmNTE0LmxkOiBMaWtld2lzZS4KCSogYmZpbi9iZjUxNi5sZDogTGlrZXdpc2UuCgkqIGJmaW4vYmY1MTgubGQ6IExpa2V3aXNlCgoyMDA5LTA5LTE2ICBKaWUgWmhhbmcgIDxqaWUuemhhbmdAYW5hbG9nLmNvbT4KCgkqIGJmaW4vKi5sZDogRml4IHR5cG9zIGluIGNvbW1lbnRzLgoKMjAwOS0wOS0wOCAgQmVybmQgU2NobWlkdCAgPGJlcm5kLnNjaG1pZHRAYW5hbG9nLmNvbT4KCgkqIGJmaW4vaW5jbHVkZS9jY2Jsa2ZuLmg6IE5ldyBmaWxlLgoKMjAwOS0wOS0wOCAgTWlrZSBGcnlzaW5nZXIgIDxtaWNoYWVsLmZyeXNpbmdlckBhbmFsb2cuY29tPgoKCSogYmZpbi9pbmNsdWRlL3N5cy9fYWRpX3BsYXRmb3JtLmg6IENvbnZlcnQgX19BU1NFTUJMWV9fIHRvCglfX0FTU0VNQkxFUl9fLgoJKiBiZmluL2luY2x1ZGUvc3lzL3BsbC5oOiBMaWtld2lzZQoKMjAwOS0wOS0wOCAgSmllIFpoYW5nICA8amllLnpoYW5nQGFuYWxvZy5jb20+CgoJKiBiZmluL01ha2VmaWxlLmluIChiYXNpY2NydC5vLCBiYXNpY2NydHMubyk6IERvbid0IHVzZQoJLW1jcHU9YmY1MzItYW55IGZvciB0aGUgZGVmYXVsdCBtdWx0aWxpYi4KCjIwMDktMDctMjggIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogbWVwL2dtYXBfZGVmYXVsdC5sZDogQWRkIGxpbmtvbmNlIHNlY3Rpb25zIGZvciAudnRleHQuCgkqIG1lcC9kZWZhdWx0LmxkOiBMaWtld2lzZS4KCSogbWVwL2ZtYXgubGQ6IExpa2V3aXNlLgoJKiBtZXAvc2ltcGxlLmxkOiBMaWtld2lzZS4KCjIwMDktMDctMTQgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogbWVwL3N5c2NhbGxzLlMgKHN5c3JldCk6IE1haW50YWluIDE2LWJ5dGUgc3RhY2sgYWxpZ25tZW50LgoKMjAwOS0wNy0wOCAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBtMzJjL3NicmsuYyAoc2Jyayk6IENoYW5nZSB0byB0YWtlIHB0cmRpZmZfdCwgbm90IGludC4KCjIwMDktMDctMDEgIEFudGhvbnkgR3JlZW4gIDxncmVlbkBtb3hpZWxvZ2ljLmNvbT4KCgkqIG1veGllL2NydDAuUyAoX3N0YXJ0KTogQ2xlYXIgQlNTIGF0IHN0YXJ0dXAuICBSZWdpc3RlciBfZmluaSgpCgl3aXRoIGF0ZXhpdCgpLgoJKiBtb3hpZS9zaW0tb3Blbi5TOiBGaXggY29tbWVudC4KCjIwMDktMDYtMTkgIEpvc2VwaCBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuaW4gKGh0bWwsIHBkZik6IE5ldy4KCSogZG9jL01ha2VmaWxlLmluIChodG1sLCBwZGYsIHBvcnRpbmcucGRmLCBwb3J0aW5nLmh0bWwpOiBOZXcuCgkqIGRvYy9wb3J0aW5nLnRleGk6IEZpeCBzZWN0aW9uIHN0cnVjdHVyZS4KCjIwMDktMDYtMTcgIE1pY2hhZWwgRWFnZXIgPGVhZ2VyQGVhZ2VyY29uLmNvbT4KCgkqIHJzNjAwMC9NYWtlZmlsZS5pbjogQWRkIHhpbGlueCBzdXBwb3J0LgoJKiByczYwMDAveGlsLWNydDAuczogTmV3IGNydDAgZmlsZSBmb3IgcG93ZXJwYy14aWxpbngtZWFiaS4KCSogcnM2MDAwL3hpbGlueC5sZDogTmV3IGZpbGUuCgkqIHJzNjAwMC94aWxpbng0NDAubGQ6IERpdHRvLgoKMjAwOS0wNS0xMyAgS2VuIFdlcm5lciAgPGtlbi53ZXJuZXJAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogSW50cm9kdWNlIGNvbmZpZ19saWJub3N5cyBmbGFnIHdoaWNoIGRlZmF1bHRzIHRvIHRydWUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDktMDUtMTMgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIHNwdS9jcnRuLlM6IEFkZCBkdW1teSB0byBlbnN1cmUgbm90aGluZyBnZXRzIGxpbmtlZCBhdCBhZGRyZXNzIDAuCgkqIHNwdS9jcnRpLlM6IFJlbW92ZSBub3AuCgoyMDA5LTA1LTA4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogbW4xMDMwMC9zaW0ubGQ6IEFkZCBtaXNzaW5nIHNlY3Rpb24gbmFtZXMgc3VjaCBhcyAuYnNzLioKCS50ZXh0LiosIGV0Yy4gIEdlbmVyYWwgdGlkeSB1cC4KCjIwMDktMDUtMDcgIEtlbiBXZXJuZXIgIDxrZW4ud2VybmVyQGRlLmlibS5jb20+CgoJKiBzcHUvY29uZmlndXJlLmluOiBGaXggbXVsdGlsaWIgc3VwcG9ydC4KCSogc3B1L2NvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogc3B1L01ha2VmaWxlLmluOiBBZGQgQ0ZMQUdTX0ZPUl9UQVJHRVQuCgoyMDA5LTA0LTI5ICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CgoJKiBtb3hpZS9tb3hpZS1lbGYtY29tbW9uLmxkOiBNb3ZlIGRlZmF1bHQgc3RhY2sgb3V0IHRvIGFjY29tbW9kYXRlCglsYXJnZSBHQ0MgdGVzdHMuCgoyMDA5LTA0LTIyICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBtb3hpZSBzdXBwb3J0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIG1veGllL2FjbG9jYWwubTQsIG1veGllL2NvbmZpZ3VyZSwgbW94aWUvY29uZmlndXJlLmluLAoJbW94aWUvY3J0MC5TLCBtb3hpZS9mc3RhdC5jLCBtb3hpZS9nZXRwaWQuYywgaXNhdHR5LmMsCgltb3hpZS9raWxsLmMsIG1veGllL01ha2VmaWxlLmluLCBtb3hpZS9tb3hpZS1lbGYtY29tbW9uLmxkLAoJbW94aWUvcHJpbnQuYywgbW94aWUvcHV0bnVtLmMsIG1veGllL3FlbXUubGQsIG1veGllL3FlbXUtdGltZS5jLAoJbW94aWUvcWVtdS13cml0ZS5jLCBtb3hpZS9zYnJrLmMsIG1veGllL3NpbS1jbG9zZS5TLCAKCW1veGllL3NpbS1leGl0LlMsCgltb3hpZS9zaW0taW5ieXRlLmMsIG1veGllL3NpbS5sZCwgbW94aWUvc2ltLWxzZWVrLmMsCgltb3hpZS9zaW0tbHNlZWsuUywgbW94aWUvc2ltLW9wZW4uUywgbW94aWUvc2ltLXJlYWQuUywgbW94aWUvc2ltLXRpbWUuYywKCW1veGllL3NpbS11bmxpbmsuUywgbW94aWUvc2ltLXdyaXRlLlMsIG1veGllL3N0YXQuYzogTmV3IGZpbGVzLgoKMjAwOS0wNC0yMiAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBtZXAvc2ltLWNydDAuUyAoX3N0YXJ0KTogRml4IHR5cG8uCgoyMDA5LTA0LTIxICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIG1lcC9NYWtlZmlsZS5pbiAoU0NSSVBUUyk6IFVwZGF0ZSB0byBuZXcgY29uZmlnLgoJKiBtZXAvZGVmYXVsdC5sZDogTmV3LgoJKiBtZXAvZ21hcF9kZWZhdWx0LmxkOiBDaGFuZ2UgZGVmYXVsdCBlbmRpYW4gdG8gbGl0dGxlLgoJKiBtZXAvc2ltLWNydDAuUzogTWFpbnRhaW4gOC1ieXRlIHN0YWNrIGFsaWdubWVudC4KCSogbWVwL3NpbS1jcnRuLlM6IExpa2V3aXNlLgoKMjAwOS0wNC0wMyAgS2VuIFdlcm5lciAgPGtlbi53ZXJuZXJAZGUuaWJtLmNvbT4KCgkqIHNwdS9NYWtlZmlsZS5pbjogQWRkIG5ldyBmaWxlcy4KCSogc3B1L3RpbWVzLmM6IE5ldyBGaWxlLgoJKiBzcHUvZ2V0aXRpbWVyLmM6IExpa2V3aXNlLgoJKiBzcHUvc2V0aXRpbWVyLmM6IExpa2V3aXNlLgoKMjAwOS0wNC0wMyAgS2VuIFdlcm5lciAgPGtlbi53ZXJuZXJAZGUuaWJtLmNvbT4KCgkqIHNwdS9NYWtlZmlsZS5pbjogQWRkIGxpbnV4X2dldHBpZC5vIGFuZCBsaW51eF9nZXR0aWQuby4KCSogc3B1L2xpbnV4X2dldHBpZC5jOiBOZXcgZmlsZS4KCSogc3B1L2xpbnV4X2dldHRpZC5jOiBOZXcgZmlsZS4KCjIwMDktMDQtMDMgIEtlbiBXZXJuZXIgIDxrZW4ud2VybmVyQGRlLmlibS5jb20+CgoJKiBzcHUvY3J0MC5TIChfc3RhcnQpOiBQbGFjZSBzcHVfaWQgaW4gdGhlIGZpcnN0IGFndW1lbnQgcmVnaXN0ZXIuCgoyMDA5LTAzLTE2ICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIG0zMnIvbTMyci1zdHViLmM6IFJlcGxhY2Ugd2l0aCBvbmUgZnJvbSBuZXdlciB2ZXJzaW9uIG9mIGdkYi4KCjIwMDktMDEtMDcgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogTWFrZWZpbGUuaW4gKGFsbCk6IEFkZCBgKycgdG8gdGhlIGNvbW1hbmQgbGluZSBzbyB0aGF0IHRoZQoJY29tbWFuZCBpcyBhbHdheXMgdHJlYXRlZCBhcyAkKE1BS0UpLgoJKiBkb2MvTWFrZWZpbGUuaW4gKGRhdGFyb290ZGlyKTogRGVmaW5lLgoKMjAwOC0xMi0xNyAgSm9uIEJlbmlzdG9uIDxqb25AYmVuaXN0b24uY29tPgoKCSogUkVBRE1FOiBBZGQgZGVzY3JpcHRpb24gb2YgbG0zMiBkaXJlY3RvcnkuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGxtMzIgdGFyZ2V0LiAgICAgICAgCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgkqIGxpYm5vc3lzL2NvbmZpZ3VyZS5pbjogQWRkIGxtMzIgdGFyZ2V0LgoJKiBsaWJub3N5cy9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBsbTMyOiBOZXcgZGlyZWN0b3J5LgoJKiBsbTMyL2FjbG9jYWwubTQ6IE5ldyBmaWxlLgoJKiBsbTMyL01ha2VmaWxlLmluOiBOZXcgZmlsZS4KCSogbG0zMi9jb25maWd1cmUuaW46IE5ldyBmaWxlLgoJKiBsbTMyL2NvbmZpZ3VyZTogTmV3IGZpbGUuCgkqIGxtMzIvY3J0MC5TOiBOZXcgZmlsZS4KCSogbG0zMi9pc2F0dHkuYzogTmV3IGZpbGUuCgkqIGxtMzIvc2NhbGwuUzogTmV3IGZpbGUuCgkqIGxtMzIvc2ltLmxkOiBOZXcgZmlsZS4KCjIwMDgtMTItMTEgIEtlbiBXZXJuZXIgIDxrZW4ud2VybmVyQGRlLmlibS5jb20+CgoJKiBzcHUvY3J0MC5TOiBDYWxsIF9fbW9uc3RhcnR1cCBpZiBwcm9maWxpbmcgaXMgZW5hYmxlZC4KCSogc3B1L01ha2VmaWxlLmluOiBBZGQgZ2NydDEubyBnY3J0Mi5vLgoKMjAwOC0xMi0wNiAgQWRhbSBOZW1ldCAgPGFuZW1ldEBjYXZpdW1uZXR3b3Jrcy5jb20+CgoJKiBtaXBzL2lkdDMyLmxkOiBTZXQgYXJjaCB0byBtaXBzOmlzYTMycjIgZnJvbSBtaXBzOmlzYTMyLiAgVXBkYXRlCgljb21tZW50LgoKMjAwOC0xMi0wNSAgQWRhbSBOZW1ldCAgPGFuZW1ldEBjYXZpdW1uZXR3b3Jrcy5jb20+CgoJKiBtaXBzL2lkdDY0LmxkOiBTZXQgYXJjaCB0byBtaXBzOmlzYTY0cjIgZnJvbSBtaXBzOmlzYTY0LiAgVXBkYXRlCgljb21tZW50LgoKMjAwOC0xMS0yMCAgS2VuIFdlcm5lciAgPGtlbi53ZXJuZXJAZGUuaWJtLmNvbT4KICAgICAgICAgICAgUGF0cmljayBNYW5zZmllbGQgIDxwYXRtYW5zQHVzLmlibS5jb20+CiAgICAgICAgICAgIEpvZWwgU2Nob3BwICAgPGpzY2hvcHBAYXVzdGluLmlibS5jb20+CgoJKiBzcHUvTWFrZWZpbGUuaW46IEFkZCBuZXcgZmlsZXMuCgkqIHNwdS9qc3JlLmg6IEFkZCBKU1JFX01NQVAsIEpTUkVfTVJFTUFQLCBKU1JFX01TWU5DIGFuZAoJSlNSRV9NVU5NQVAgb3Bjb2Rlcy4KCSogc3B1L21tYXBfZWFkZHIuYzogTmV3IEZpbGUuCgkqIHNwdS9tcmVtYXBfZWFkZHIuYzogTGlrZXdpc2UuCgkqIHNwdS9tc3luY19lYWRkci5jOiBMaWtld2lzZS4KCSogc3B1L211bm1hcF9lYWRkci5jOiBMaWtld2lzZS4KCjIwMDgtMTEtMTcgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgoKCSogbTMyci9NYWtlZmlsZS5pbjogQWRkIGJ1aWxkaW5nIG0zMnItc3R1Yi5vIGZyb20gbG9jYWwgY29weSBpbnN0ZWFkCglvZiB1cCBhbmQgb3ZlciBpbiBnZGIuCgkqIG0zMnIvbTMyci1zdHViLmM6IE5ldyBmaWxlIGNvcGllZCBmcm9tIGdkYi4KCjIwMDgtMTAtMDYgIEJpbGwgVG9tcGtpbnMgIDxiaWxsK25ld2xpYkBrZXktc3F1YXJlLmNvbT4KCgkqIGFybS9jcnQwLlM6IEZpeCBjYWxsaW5nIGhhcmR3YXJlX2luaXRfaG9vaygpIG9yIHNvZnR3YXJlX2luaXRfaG9vaygpCgl1bmRlciB0aHVtYiBhbmQgdGh1bWIyLgoKMjAwOC0wOS0yNCAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBtMzJjL3ZhcnZlY3RzLlM6IE5ldy4KCSogbTMyYy92YXJ2ZWN0cy5oOiBOZXcuCgkqIG0zMmMvc2FtcGxlLmM6IE5ldy4KCSogbTMyYy9NYWtlZmlsZS5pbjogQWRkIG0zMmNnbG9zcyBsaWJyYXJ5IHN1cHBvcnQuCgkqIG0zMmMvY3J0MC5TOiBUd2Vha3MgdG8gc3VwcG9ydCBpbnRlcnJ1cHRzIGJ5IGRlZmF1bHQuCgkqIG0zMmMvbTMyYy50bXBsOiBMaWtld2lzZS4KCjIwMDgtMDktMTAgIEtlbiBXZXJuZXIgIDxrZW4ud2VybmVyQGRlLmlibS5jb20+CgoJKiBzcHUvZGlyZnVuY3MuYzogQXZvaWQgd2FybmluZ3MuCgkqIHNwdS9raWxsLmM6IExpa2V3aXNlLgoKMjAwOC0wOS0wNCAgS2VuIFdlcm5lciAgPGtlbi53ZXJuZXJAZGUuaWJtLmNvbT4KCgkqIHNwdS9NYWtlZmlsZS5pbjogRml4IG1pc3NpbmcgbGludXhfc3lzY2FsbHMuby4KCSogc3B1L2xpbnV4X3N5c2NhbGxzLmM6IFJlbW92ZSBleHRyYW5lb3VzICIzRCIgc2VxdWVuY2VzLgoKMjAwOC0wOC0xNCAgSmllIFpoYW5nICA8amllLnpoYW5nQGFuYWxvZy5jb20+CgoJKiBiZmluL01ha2VmaWxlLmluOiAodG9wX3NyY2Rpcik6IERlZmluZS4KCShta2luc3RhbGxkaXJzKTogRGVmaW5lLgoJKEJPQVJEX1NDUklQVFMpOiBEZWZpbmUuCgkoQk9BUkRfTERGTEFHUyk6IERlZmluZS4KCShCT0FSRF9CU1ApOiBEZWZpbmUuCgkoQk9BUkRfQ1JUMFMpOiBEZWZpbmUuCgkoQk9BUkRfT0JKUyk6IERlZmluZS4KCShCT0FSRF9URVNUKTogRGVmaW5lLgoJKEJPQVJEX0lOU1RBTEwpOiBEZWZpbmUuCgkoSU5DTFVERVMpOiBBZGQgLUkkKHNyY2RpcikvaW5jbHVkZS4KCShhbGwpOiBBZGQgJHtCT0FSRF9DUlQwU30gYW5kICR7Qk9BUkRfQlNQfS4KCSguYy5TKTogUmVtb3ZlIHRhcmdldC4KCShjcnQwLm8pOiBOZXcgdGFyZ2V0LgoJKGJhc2ljY3J0Lm8pOiBMaWtld2lzZS4KCShiYXNpY2NydGIubyk6IExpa2V3aXNlLgoJKGJhc2ljY3J0cy5vKTogTGlrZXdpc2UuCgkoYmFzaWNjcnQ1NjEubywgYmFzaWNjcnQ1NjFzLm8sIGJhc2ljY3J0NTYxYi5vKTogTGlrZXdpc2UKCShjbGVhbiBtb3N0bHljbGVhbik6IFJlbW92ZSAke0JPQVJEX0JTUH0uCgkoaW5zdGFsbCk6IERlcGVuZCBvbiAke0JPQVJEX0lOU1RBTEx9LgoJKGluc3RhbGwtc2ltKTogUmVmb3JtYXQuCgkoaW5zdGFsbC1ib2FyZCk6IE5ldyB0YXJnZXQuCgkqIGJmaW4vYmFzaWNjcnQuUzogUmVtb3ZlIHVzZWxlc3MgX19BRFNQQkY1NjFfQ09SRUJfXyBpbgoJd29ya2Fyb3VuZCBjb2RlIGZvciAwNTAwMDIyOS4KCSogYmZpbi9zeXNjYWxscy5jIChkb19zeXNjYWxsKTogVXNlIGBFWENQVCAwJyBpbnN0ZWFkIG9mCglgUkFJU0UgMCcgZm9yIHN5c2NhbGwuCgkqIGJmaW4vYmFzaWNjcnQuUzogTmV3IGZpbGUuCgkqIGJmaW4vYmY1KmxkOiBOZXcgZmlsZS4KCSogYmZpbi9iZmluLWNvbW1vbi1tYy5sZDogTmV3IGZpbGUuCgkqIGJmaW4vYmZpbi1jb21tb24tc2MubGQ6IE5ldyBmaWxlLgoJKiBiZmluL2luY2x1ZGUvYmxhY2tmaW4uaDogTmV3IGZpbGUuCgkqIGJmaW4vaW5jbHVkZS9jZGVmQkY1Ki5oOiBOZXcgZmlsZS4KCSogYmZpbi9pbmNsdWRlL2NkZWZfTFBCbGFja2Zpbi5oOiBOZXcgZmlsZS4KCSogYmZpbi9pbmNsdWRlL2NkZWZibGFja2Zpbi5oOiBOZXcgZmlsZS4KCSogYmZpbi9pbmNsdWRlL2NwbGIuaDogTmV3IGZpbGUuCgkqIGJmaW4vaW5jbHVkZS9jcGxidGFiLmg6IE5ldyBmaWxlLgoJKiBiZmluL2luY2x1ZGUvZGVmQkY1Ki5oOiBOZXcgZmlsZXMuCgkqIGJmaW4vaW5jbHVkZS9kZWZfTFBCbGFja2Zpbi5oOiBOZXcgZmlsZXMuCgkqIGJmaW4vaW5jbHVkZS9kZWZibGFja2Zpbi5oOiBOZXcgZmlsZS4KCSogYmZpbi9pbmNsdWRlL3N5cy9fYWRpX3BsYXRmb3JtLmg6IE5ldyBmaWxlLgoJKiBiZmluL2luY2x1ZGUvc3lzL2Fub21hbHlfbWFjcm9zX3J0bC5oOiBOZXcgZmlsZS4KCSogYmZpbi9pbmNsdWRlL3N5cy9leGNhdXNlLmg6IE5ldyBmaWxlLgoJKiBiZmluL2luY2x1ZGUvc3lzL2V4Y2VwdGlvbi5oOiBOZXcgZmlsZS4KCSogYmZpbi9pbmNsdWRlL3N5cy9tY190eXBlZGVmLmg6IE5ldyBmaWxlLgoJKiBiZmluL2luY2x1ZGUvc3lzL3BsYXRmb3JtLmg6IE5ldyBmaWxlLgoJKiBiZmluL2luY2x1ZGUvc3lzL3BsbC5oOiBOZXcgZmlsZS4KCSogYmZpbi9pbmNsdWRlL3N5c3JlZy5oOiBOZXcgZmlsZS4KCSogbGlibm9zeXMvY29uZmlndXJlLmluIChNSVNTSU5HX1NZU0NBTExfTkFNRVMpOiBEb24ndCBkZWZpbmUKCWZvciBiZmluLgoJKiBsaWJub3N5cy9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA4LTA3LTE3ICBLZW4gV2VybmVyICA8a2VuLndlcm5lckBkZS5pYm0uY29tPgoKCSogc3B1L3N5c2NhbGxzLmM6IENoZWNrIGFuZCBzZXQgdGhlIGVycm5vIHZhbHVlLgoKMjAwOC0wNi0xNyAgS2VuIFdlcm5lciAgPGtlbi53ZXJuZXJAZGUuaWJtLmNvbT4KCgkqIHNwdS9NYWtlZmlsZS5pbjogQWRkIG5ldyBmaWxlLgoJKiBzcHUvbGludXhfc3lzY2FsbHMuYzogTmV3IGZpbGUgdG8gYWRkIExpbnV4IHN5c2NhbGwgc3VwcG9ydC4KCQkKMjAwOC0wNi0xNiAgQ29ycmluIE1leWVyICA8Y2ptZXllckBnbWFpbC5jb20+CgoJKiBtNjhrL2NmLWNydDEuY1tfX21jZl9mYW1pbHlfbTFxZV06IERvbid0IGFjY2VzcyBDQUNSLgoKMjAwOC0wNS0yMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGlxMjAwMC9jcnQwLlMgKF9fZHNvX2hhbmRsZSk6IERlZmluZSAod2VhaykuCgkqIGZydi9jcnQwLlMgKF9fZHNvX2hhbmRsZSk6IERlZmluZSAod2VhaykuCgkqIG1uMTAzMDAvY3J0MC5TIChfX19kc29faGFuZGxlKTogRGVmaW5lICh3ZWFrKS4KCjIwMDgtMDUtMDUgIEtlbiBXZXJuZXIgIDxrZW4ud2VybmVyQGRlLmlibS5jb20+CgoJKiBzcHUvcmVhZGxpbmsuYzogQWxpZ24gcmVhZGxpbmsgaW1wbGVtZW50YXRpb24gdG8gUE9TSVguCgkKMjAwOC0wNC0yNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFybS9jcnQwLlM6IEFsbG93IGFzc2VtYmx5IHVuZGVyIEFSTXY3IElTQS4gIFN1cHBvcnQgZm9yCglpbml0aWFsaXppbmcgc3RhY2sgcG9pbnRlcnMgZm9yIGludGVycnVwdCBtb2RlcyBpcyBzdGlsbCBwZW5kaW5nLgoKMjAwOC0wNC0xNCAgUGF0cmljayBNYW5zZmllbGQgIDxwYXRtYW5zQHVzLmlibS5jb20+CgoJKiBzcHUvc2Jyay5jOiBSZW1vdmUgImV4dGVybiBpbnQgZXJybm8iLCB1c2Ugd2hhdGV2ZXIgaXMgc3VwcGxpZWQKCWJ5IHN5cy9lcnJuby5oLgoJCSAgCjIwMDgtMDQtMDQgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogaHA3NHgvY29uZmlndXJlOiBSZWdlbmVyYXRlIHdpdGggYXV0b2NvbmYgMi42MS4KCSogZnIzMC9jb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjYxLgoJKiBtaXBzL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZSB3aXRoIGF1dG9jb25mIDIuNjEuCgkqIHhzdG9ybXkxNi9jb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjYxLgoJKiByczYwMDAvY29uZmlndXJlOiBSZWdlbmVyYXRlIHdpdGggYXV0b2NvbmYgMi42MS4KCSogZDMwdi9jb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjYxLgoJKiBpMzg2L2NvbmZpZ3VyZTogUmVnZW5lcmF0ZSB3aXRoIGF1dG9jb25mIDIuNjEuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZSB3aXRoIGF1dG9jb25mIDIuNjEuCgkqIHdpbmNlL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZSB3aXRoIGF1dG9jb25mIDIuNjEuCgkqIHBhL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZSB3aXRoIGF1dG9jb25mIDIuNjEuCgkqIG0zMnIvY29uZmlndXJlOiBSZWdlbmVyYXRlIHdpdGggYXV0b2NvbmYgMi42MS4KCSogbW4xMDIwMC9jb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjYxLgoJKiBpcTIwMDAvY29uZmlndXJlOiBSZWdlbmVyYXRlIHdpdGggYXV0b2NvbmYgMi42MS4KCSogY3Jpcy9jb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjYxLgoJKiBtNjhrL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZSB3aXRoIGF1dG9jb25mIDIuNjEuCgkqIHNwdS9jb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjYxLgoJKiBtMzJjL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZSB3aXRoIGF1dG9jb25mIDIuNjEuCgkqIG1uMTAzMDAvY29uZmlndXJlOiBSZWdlbmVyYXRlIHdpdGggYXV0b2NvbmYgMi42MS4KCSogaTk2MC9jb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjYxLgoJKiBhcm0vY29uZmlndXJlOiBSZWdlbmVyYXRlIHdpdGggYXV0b2NvbmYgMi42MS4KCSogbGlibm9zeXMvY29uZmlndXJlOiBSZWdlbmVyYXRlIHdpdGggYXV0b2NvbmYgMi42MS4KCSogbTY4aGMxMS9jb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjYxLgoJKiBiZmluL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZSB3aXRoIGF1dG9jb25mIDIuNjEuCgkqIGNyeC9jb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjYxLgoJKiBtdC9jb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjYxLgoJKiBzcGFyYy9jb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjYxLgoJKiBzcGFyYy9saWJzeXMvY29uZmlndXJlOiBSZWdlbmVyYXRlIHdpdGggYXV0b2NvbmYgMi42MS4KCSogbWNvcmUvY29uZmlndXJlOiBSZWdlbmVyYXRlIHdpdGggYXV0b2NvbmYgMi42MS4KCSogbWVwL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZSB3aXRoIGF1dG9jb25mIDIuNjEuCgkqIGZydi9jb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjYxLgoJKiBkb2MvY29uZmlndXJlOiBSZWdlbmVyYXRlIHdpdGggYXV0b2NvbmYgMi42MS4KCjIwMDgtMDEtMTAgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogbTMyYy9leGl0LlMgKF9fZXhpdCk6IHByZXNlcnZlIGJvdGggYXJndW1lbnQgcmVnaXN0ZXJzLgoKMjAwOC0wMS0wMyAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBhcm0vcmVkYm9vdC1zeXNjYWxscy5jOiBDb25zaXN0ZW50bHkgc3VwcGx5IF9pc2F0dHkgaWYgc3lzY2FsbHMKCWRpciBpcyB1c2VkIGluIG5ld2xpYi4KCSogYmZpbi9zeXNjYWxscy5jOiBEaXR0by4KCSogY3Jpcy9nZW5zeXNjYWxsczogRGl0dG8uCgkqIGZyMzAvc3lzY2FsbHMuYzogRGl0dG8uCgkqIGZydi9pc2F0dHkuYzogRGl0dG8uCgkqIGlxMjAwMC9pc2F0dHkuYzogRGl0dG8uCgkqIGxpYm5vc3lzL2lzYXR0eS5jOiBEaXR0by4KCSogbTMyci9pc2F0dHkuYzogRGl0dG8uCgkqIG1uMTAyMDAvaXNhdHR5LmM6IERpdHRvLgoJKiBtbjEwMzAwL2lzYXR0eS5jOiBEaXR0by4KCSogeHN0b3JteTE2L2lzYXR0eS5jOiBOZXcgZmlsZSB3aXRoIF9pc2F0dHkgZnVuY3Rpb24uCgoyMDA3LTEyLTAxICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGNyaXMvTWFrZWZpbGUuaW4gKGNydDAubyk6IEFkZCBDRkxBR1Mgd2hlbiBjb21waWxpbmcgY3J0MC5TLgoKMjAwNy0xMS0wNiAgRGF2ZSBCcm9sbGV5ICA8YnJvbGxleUByZWRoYXQuY29tPgogCgkqIHN5c2NhbGwuaCAoU1lTX3JlY29uZmlnKTogTmV3IG1hY3JvLgoKMjAwNy0xMC0xMSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogc3B1L2NydDAuUzogRml4IHNvIGVsZW1lbnQgb25lIG9mIHJlZ2lzdGVyIG9uZSBpcyBjb3JyZWN0bHkgc2V0Cgl3aGVuIGNvbXBpbGVkIHdpdGggLW1zdGRtYWluIGFuZCAtZnN0YWNrLWNoZWNrLgoKMjAwNy0xMC0wMiAgTWFya3VzIERldWxpbmcgIDxkZXVsaW5nQGRlLmlibS5jb20+CgoJKiBzcHUvY3J0MC5TOiBJbml0aWFsaXplIF9fZWFfbG9jYWxfc3RvcmUgKEVBIGFkZHJlc3Mgb2YgdGhlIExTKQoJICB2aWEgcmVnaXN0ZXIgNi4KCjIwMDctMTAtMDEgIE1hcmt1cyBEZXVsaW5nICA8ZGV1bGluZ0BkZS5pYm0uY29tPgoKCSogc3B1L01ha2VmaWxlLmluOiBhZGQgZGVwZW5kZW5jaWVzIGZvciBjcnQgZmlsZXMuCgoyMDA3LTEwLTAxICBQYXRyaWNrIE1hbnNmaWVsZCAgPHBhdG1hbnNAdXMuaWJtLmNvbT4KCgkqIHNwdS9zYnJrLmM6IFVzZSB0aGUgY3VycmVudCBzdGFjayBwb2ludGVyIHZhbHVlIHJhdGhlciB0aGFuIHRoZQoJbWF4aW11bSBhdmFpbGFibGUgbWVtb3J5IHRvIGRldGVybWluZSB0aGUgYW1vdW50IG9mIGhlYXAgc3BhY2UKCWxlZnQuIFdpdGhvdXQgdGhpcyBjaGFuZ2UgY2FsbGluZyBzYnJrKCkgY2FuIGFsbG9jYXRlIHNwYWNlIHRoYXQKCWlzIGN1cnJlbnRseSBpbiB1c2Ugb24gdGhlIHN0YWNrLgoKMjAwNy0wOS0yNiAgUGF0cmljayBNYW5zZmllbGQgIDxwYXRtYW5zQHVzLmlibS5jb20+CgoJKiBzcHUvc2NoZWRfeWllbGQuYzogTmV3IGZpbGUgKG1pc3NlZCBvbiAyMDA3LTA5LTIxKS4KCjIwMDctMDktMjEgIFBhdHJpY2sgTWFuc2ZpZWxkICA8cGF0bWFuc0B1cy5pYm0uY29tPgoKCSogc3B1L01ha2VmaWxlLmluOiBBZGQgbmV3IGZpbGVzLgoJKiBzcHUvanNyZS5oOiBBZGQgSlNSRV9QUkVBRCwgSlNSRV9QV1JJVEUsIEpTUkVfUkVBRFYsIGFuZAoJSlNSRV9XUklURVYgb3Bjb2Rlcy4KCSogc3B1L3ByZWFkLmM6IE5ldyBmaWxlIHRvIGFkZCBwcmVhZCB2aWEgYXNzaXN0IGNhbGwuCgkqIHNwdS9wd3JpdGUuYzogTmV3IGZpbGUgdG8gYWRkIHB3cml0ZSB2aWEgYXNzaXN0IGNhbGwuCgkqIHNwdS9yZWFkdi5jOiBOZXcgZmlsZSB0byBhZGQgcmVhZHYgdmlhIGFzc2lzdCBjYWxsLgoJKiBzcHUvd3JpdGV2LmM6IE5ldyBmaWxlIHRvIGFkZCB3cml0ZXYgdmlhIGFzc2lzdCBjYWxsLgoKMjAwNy0wOS0yMSAgUGF0cmljayBNYW5zZmllbGQgIDxwYXRtYW5zQHVzLmlibS5jb20+CgoJKiBzcHUvanNyZS5oOiBBZGQgSlNSRV9TQ0hFRF9ZSUVMRCwgSlNSRV9VTUFTSywgSlNSRV9VVElNRSwgYW5kCglKU1JFX1VUSU1FUy4KCSogc3B1L3NjaGVkX3lpZWxkLmM6IE5ldyBmaWxlIGFkZCBzY2hlZF95aWVsZCB2aWEgYXNzaXN0IGNhbGwuCgkqIHNwdS91bWFzay5jOiBOZXcgZmlsZSBhZGQgdW1hc2sgdmlhIGFzc2lzdCBjYWxsLgoJKiBzcHUvdXRpbWUuYzogTmV3IGZpbGUgYWRkIHV0aW1lIHZpYSBhc3Npc3QgY2FsbC4KCSogc3B1L3V0aW1lcy5jOiBOZXcgZmlsZSBhZGQgdXRpbWVzIHZpYSBhc3Npc3QgY2FsbC4KCSogc3B1L01ha2VmaWxlLmluOiBBZGQgbmV3IGZpbGVzLgoJCQkJCQkJCjIwMDctMDktMjEgIFBhdHJpY2sgTWFuc2ZpZWxkICA8cGF0bWFuc0B1cy5pYm0uY29tPgoKCSogc3B1L2pzcmUuaDogQWRkIEpTUkVfU0hNX09QRU4gYW5kIEpTUkVfU0hNX1VOTElOSyBvcGNvZGVzLgoJKiBzcHUvc2htX29wZW4uYzogTmV3IGZpbGUgdG8gYWRkIHNobV9vcGVuIHZpYSBhc3Npc3QgY2FsbC4KCSogc3B1L3NobV91bmxpbmsuYzogTmV3IGZpbGUgdG8gYWRkIHNobV91bmxpbmsgdmlhIGFzc2lzdCBjYWxsLgoJKiBzcHUvTWFrZWZpbGUuaW46IEFkZCBzaG1fb3Blbi5vIGFuZCBzaG1fdW5saW5rLm8KCjIwMDctMDktMjEgIFBhdHJpY2sgTWFuc2ZpZWxkICA8cGF0bWFuc0B1cy5pYm0uY29tPgoKCSogc3B1L2RpcmZ1bmNzLmM6IE5ldyBmaWxlLCBob2xkcyB0aGUgb3BlbmRpciwgY2xvc2VkaXIsIHJlYWRkaXIsCglyZXdpbmRkaXIsIHNlZWtkaXIgYW5kIHRlbGxkaXIgaW1wbGVtZW50YXRpb25zLiBUaGVzZSBhcmUKCWdyb3VwZWQgaW4gb25lIGZpbGUgc28gdGhhdCB3ZSBkbyBub3QgbmVlZCBhIHNlcGFyYXRlIGZpbGUgZm9yCgl0aGUgc3RydWN0IGRpcmVudCBhbmQgRElSIGFsbG9jYXRpb24gY29kZS4KCSogc3B1L2pzcmUuaDogQWRkIEpTUkVfT1BFTkRJUiBhbmQgb3RoZXIgZGlyIG9wY29kZXMuCgkqIHNwdS9NYWtlZmlsZS5pbjogQWRkIGRpcmZ1bmNzLm8uCgoyMDA3LTA4LTEzICBDYXJsb3MgTydEb25lbGwgIDxjYXJsb3NAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGFybS9jcnQwLlM6IFJlbW92ZSAnLnNldCcgZm9yIF9fc3RhY2ssIGhhcmR3YXJlX2luaXRfaG9vaywKCWFuZCBzb2Z0d2FyZV9pbml0X2hvb2suCgoyMDA3LTA4LTEwICBDYXJsb3MgTydEb25lbGwgIDxjYXJsb3NAY29kZXNvdXJjZXJ5LmNvbT4KCgkyMDA3LTA3LTEyICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogYXJtL3N5c2NhbGxzLmMgKF9zdGF0KTogVXNlIF9jbG9zZQoJCgkqIGFybS9zeXNjYWxscy5jIChzdHJ1Y3QgcG9zbG9nKTogUmVuYW1lIHRvLi4uCgkoc3RydWN0IGZkZW50KTogLi4uIHRoaXMuCgkoRklMRV9IQU5ETEVfT0ZGU0VUKTogUmVtb3ZlLgoJKGZpbmRzbG90KTogUmV0dXJuIGEgc3RydWN0IGZkZW50KiBpZiBmZCBpcyB2YWxpZCwgb3RoZXJ3aXNlIHJldHVybiBOVUxMLiAgCgkobmV3c2xvdCk6IE5ldyBmdW5jdGlvbi4gIAoJKHJlbWFwX2hhbmRsZSk6IFJlbW92ZS4gIAoJKGluaXRpYWxpc2VfbW9uaXRvcl9oYW5kbGVzKTogVXNlIHN0ZG91dCBhcyBmYWxsYmFjayBmb3Igc3RkZXJyLiAgCgkod3JhcCk6IFJlbmFtZSB0by4uLiAgCgkoY2hlY2tlcnJvcik6IC4uLiAgdGhpcy4gIAoJKF9zd2lyZWFkKTogVXNlIGNoZWNrZXJyb3IoKSBmb3IgdGhlIHJldHVybiBvZiBTV0kgY2FsbHMuICBDb3JyZWN0IHRoZSB1c2Ugb2YgcjAuICAKCShfcmVhZCk6IFVzZSBmaW5kc2xvdCgpLiAgUmV0dXJuIEVCQURGIG9uIGJhZCBoYW5kbGUuICAKCShfc3dpbHNlZWspOiBDYWxsIGZpbmRzbG90KCkuICBDaGVjayBmb3IgdmFsaWQgd2hlbmNlLiAgQ2hlY2sgZm9yIG5lZ2F0aXZlIG9mZnNldCB3aGVuIHVzaW5nIAoJU0VFS19DVVIsIGFuZCBjaGVjayBmb3Igb3ZlcmZsb3cuICBVc2UgY2hlY2tlcnJvcigpLiAgQ2hlY2sgKl9GbGVuIGNhbGxzIGZvciBlcnJvcnMuICAKCShfc3dpd3JpdGUpOiBDb3JyZWN0IHRoZSB1c2Ugb2YgcjAuICAKCShfd3JpdGUpOiBDYWxsIGZpbmRzbG90KCkuICAKCShfc3dpb3Blbik6IENhbGwgZmluZHNsb3QoKS4gIENoZWNrIGZvciB2YWxpZCBmbGFncy4gIFVzZSBjaGVja2Vycm9yKCkuICBDYWxsIG5ld3Nsb3QoKS4gIAoJSGFuZGxlIE9fVFJVTkMsIGFuZCBPX1dST05MWS4gIFJldHVybiBpbmRleCBpbnRvIG9wZW5maWxlc1tdIGZvciBmZC4gIAoJKF9zd2ljbG9zZSk6IENvcnJlY3QgdGhlIHVzZSBvZiByMC4gIAoJKF9jbG9zZSk6IEhhbmRsZSBzdGRlcnIgPT0gc3Rkb3V0IGNhc2UuICBPbmx5IHJlY2xhaW0gaGFuZGxlIGlmIF9zd2ljbG9zZSBzdWNjZWVkZWQuICAKCShfZ2V0cGlkKTogVXNlIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLiAgCgkoX3NicmspOiBGaXggZm9ybWF0dGluZy4gIAoJKF9zd2lzdGF0KTogTmV3IGZ1bmN0aW9uLiAgCgkoX3N0YXQpOiBDYWxsIF9zd2lzdGF0KCkuICAKCShfZnN0YXQpOiBDYWxsIF9zd2lzdGF0KCkuICAKCShfdW5saW5rKTogQ29ycmVjdCB0aGUgdXNlIG9mIHIwLiAgCgkoaXNhdHR5KTogQ2FsbCBmaW5zbG90KCkuICBDb3JyZWN0IHRoZSB1c2Ugb2YgcjAuICAKCShfc3lzdGVtKTogQ2FsbCBjaGVja2Vycm9yKCkuICBDb3JyZWN0IHRoZSB1c2Ugb2YgcjAuICAKCShfcmVuYW1lKTogQ29ycmVjdCB0aGUgdXNlIG9mIHIwLiAgCgkKMjAwNy0wNy0xMyAgS2V2aW4gQnVldHRuZXIgIDxrZXZpbmJAcmVkaGF0LmNvbT4gCgoJKiBtZXAvZm1heC5sZCwgbWVwL2dtYXBfZGVmYXVsdC5sZCwgbWVwL21pbi5sZCwgbWVwL3NpbXBsZS5sZCAoLmdjY19leGNlcHRfdGFibGUpOiBBZGQgcGF0dGVybiAKCWZvciAuZ2NjX2V4Y2VwdF90YWJsZS4qLiAgCgkJCQkJCjIwMDctMDctMDYgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgoKCSogYXJtL3N5c2NhbGxzLmMgKGdldHRpbWVvZmRheSk6IENoYW5nZSB0byBQT1NJWCBzaWduYXR1cmUKCXdoZXJlIHNlY29uZCBhcmd1bWVudCBpcyBwYXNzZWQgYXMgdm9pZCAqLgoJKiBiZmluL3N5c2NhbGxzLmMgKGdldHRpbWVvZmRheSk6IERpdHRvLgoJKiBjcmlzL2dlbnN5c2NhbGxzIChnZXR0aW1lb2ZkYXkpOiBEaXR0by4KCSogY3Jpcy9saW51bmlzdGQuaCAoZ2V0dGltZW9mZGF5KTogRGl0dG8uCgkqIGNyeC90aW1lLmMgKGdldHRpbWVvZmRheSk6IERpdHRvLgoJKiBmcnYvc2ltLXRpbWUuYyAoZ2V0dGltZW9mZGF5KTogRGl0dG8uCgkqIGkzODYvY3lnbW9uLXNhbGliLmMgKGdldHRpbWVvZmRheSk6IERpdHRvLgoJKiBsaWJub3N5cy9nZXR0b2QuYyAoZ2V0dGltZW9mZGF5KTogRGl0dG8uCgkqIG02OGsvaW8tZ2V0dGltZW9mZGF5LmMgKGdldHRpbWVvZmRheSk6IERpdHRvLgoJKiBzcGFyYy9jeWdtb24tc2FsaWIuYyAoZ2V0dGltZW9mZGF5KTogRGl0dG8uCgkqIHNwdS9nZXR0aW1lb2ZkYXkuYyAoZ2V0dGltZW9mZGF5KTogRGl0dG8uCgoyMDA3LTA2LTIwICBQYXRyaWNrIE1hbnNmaWVsZCAgPHBhdG1hbnNAdXMuaWJtLmNvbT4KCgkqIHNwdS9qc3JlLmg6IEFkZCBKU1JFX01LU1RFTVAgYW5kIEpTUkVfTUtURU1QIHZhbHVlcy4KCSogc3B1L21rc3RlbXAuYzogTmV3IGZpbGUgdG8gYWRkIG1rc3RlbXAgc3VwcG9ydCB2aWEgYXNzaXN0IGNhbGwuCgkqIHNwdS9ta3RlbXAuYzogTmV3IGZpbGUgdG8gYWRkIG1rdGVtcCBzdXBwb3J0IHZpYSBhc3Npc3QgY2FsbC4KCSogc3B1L01ha2VmaWxlLmluOiBBZGQgbWtzdGVtcC5vIGFuZCBta3RlbXAubwoKMjAwNy0wNi0yMCAgUGF0cmljayBNYW5zZmllbGQgIDxwYXRtYW5zQHVzLmlibS5jb20+CgoJKiBzcHUvanNyZS5oOiBBZGQgbmV3IEpTUkUgb3Bjb2Rlcy4KCSogc3B1L2R1cDIuYzogTmV3IGZpbGUgdG8gYWRkIGR1cDIgc3VwcG9ydCB2aWEgYXNzaXN0IGNhbGwuCgkqIHNwdS9mZGF0YXN5bmMuYzogTmV3IGZpbGUgdG8gYWRkIGZkYXRhc3luYyBzdXBwb3J0IHZpYSBhc3Npc3QgY2FsbC4KCSogc3B1L2ZzeW5jLmM6IE5ldyBmaWxlIHRvIGFkZCBmc3luYyBzdXBwb3J0IHZpYSBhc3Npc3QgY2FsbC4KCSogc3B1L2xvY2tmLmM6IE5ldyBmaWxlIHRvIGFkZCBsb2NrZiBzdXBwb3J0IHZpYSBhc3Npc3QgY2FsbC4KCSogc3B1L3N5bmMuYzogTmV3IGZpbGUgdG8gYWRkIHN5bmMgc3VwcG9ydCB2aWEgYXNzaXN0IGNhbGwuCgkqIHNwdS90cnVuY2F0ZS5jOiBOZXcgZmlsZSB0byBhZGQgdHJ1bmNhdGUgc3VwcG9ydCB2aWEgYXNzaXN0IGNhbGwuCgkqIHNwdS9NYWtlZmlsZS5pbjogQWRkIG5ldyBmaWxlcy4KCjIwMDctMDYtMjAgIFBhdHJpY2sgTWFuc2ZpZWxkICA8cGF0bWFuc0B1cy5pYm0uY29tPgoKCSogc3B1L2pzcmUuaDogSlNSRV9MSU5LLCBKU1JFX1NZTUxJTksgYW5kIEpTUkVfUkVBRExJTksuCgkqIHNwdS9saW5rLmM6IE5ldyBmaWxlIHRvIGFkZCBsaW5rIHN1cHBvcnQgdmlhIGFuIGFzc2lzdCBjYWxsLgoJKiBzcHUvcmVhZGxpbmsuYzogTmV3IGZpbGUgdG8gYWRkIHJlYWRsaW5rIHN1cHBvcnQgdmlhIGFuIGFzc2lzdCBjYWxsLgoJKiBzcHUvc3ltbGluay5jOiBOZXcgZmlsZSB0byBhZGQgc3ltbGluayBzdXBwb3J0IHZpYSBhbiBhc3Npc3QgY2FsbC4KCSogc3B1L01ha2VmaWxlLmluOiBBZGQgbmV3IGZpbGVzLgoKMjAwNy0wNi0yMCAgUGF0cmljayBNYW5zZmllbGQgIDxwYXRtYW5zQHVzLmlibS5jb20+CgoJKiBzcHUvanNyZS5oOiBBZGQgSlNSRV9MU1RBVC4KCSogc3B1L2xzdGF0LmM6IE5ldyBmaWxlIGFkZCBsc3RhdCBzdXBwb3J0IHZpYSBhbiBhc3Npc3QgY2FsbC4KCSogc3B1L2NvbnZfc3RhdC5jOiBOZXcgZmlsZSwgYWRkIGNvbW1vbiBzdGF0IGNvbnZlcnNpb24gY29kZS4KCSogc3B1L2ZzdGF0LmM6IFVzZSBfX2NvbnZfc3RhdC4KCSogc3B1L3N0YXQuYzogVXNlIF9fY29udl9zdGF0LgoJKiBzcHUvTWFrZWZpbGUuaW46IEFkZCBjb252X3N0YXQubyBhbmQgbHN0YXQuby4KCjIwMDctMDYtMjAgIFBhdHJpY2sgTWFuc2ZpZWxkICA8cGF0bWFuc0B1cy5pYm0uY29tPgoKCSogc3B1L2pzcmUuaDogQWRkIEpTUkVfR0VUQ1dELgoJKiBzcHUvZ2V0Y3dkLmM6IE5ldyBmaWxlLCBpbXBsZW1lbnQgZ2V0Y3dkIHdpdGggaGVscCBmcm9tIGFuCglhc3Npc3QgY2FsbC4KCSogc3B1L01ha2VmaWxlLmluOiBBZGQgZ2V0Y3dkLgoKMjAwNy0wNi0yMCAgUGF0cmljayBNYW5zZmllbGQgIDxwYXRtYW5zQHVzLmlibS5jb20+CgoJKiBzcHUvanNyZS5oOiBBZGQgZGVmaW5lcyBmb3IgbmV3IGFzc2lzdCBjYWxscy4KCSogc3B1L2NoZGlyLmM6IE5ldyBmaWxlLCBzdXBwb3J0IGNoZGlyIHZpYSBhc3Npc3QgY2FsbC4KCSogc3B1L2NobW9kLmM6IE5ldyBmaWxlLCBzdXBwb3J0IGNobW9kIHZpYSBhc3Npc3QgY2FsbC4KCSogc3B1L2Nob3duLmM6IE5ldyBmaWxlLCBzdXBwb3J0IGNob3duIHZpYSBhc3Npc3QgY2FsbC4KCSogc3B1L2ZjaGRpci5jOiBOZXcgZmlsZSwgc3VwcG9ydCBmY2hkaXIgdmlhIGFzc2lzdCBjYWxsLgoJKiBzcHUvZmNobW9kLmM6IE5ldyBmaWxlLCBzdXBwb3J0IGZjaG1vZCB2aWEgYXNzaXN0IGNhbGwuCgkqIHNwdS9mY2hvd24uYzogTmV3IGZpbGUsIHN1cHBvcnQgZmNob3duIHZpYSBhc3Npc3QgY2FsbC4KCSogc3B1L2xjaG93bi5jOiBOZXcgZmlsZSwgc3VwcG9ydCBsY2hvd24gdmlhIGFzc2lzdCBjYWxsLgoJKiBzcHUvbWtkaXIuYzogTmV3IGZpbGUsIHN1cHBvcnQgbWtkaXIgdmlhIGFzc2lzdCBjYWxsLgoJKiBzcHUvbWtub2QuYzogTmV3IGZpbGUsIHN1cHBvcnQgbWtub2QgdmlhIGFzc2lzdCBjYWxsLgoJKiBzcHUvcm1kaXIuYzogTmV3IGZpbGUsIHN1cHBvcnQgcm1kaXIgdmlhIGFzc2lzdCBjYWxsLgoJKiBzcHUvTWFrZWZpbGUuaW46IEFkZCBuZXcgZmlsZXMuCgoyMDA3LTA2LTIwICBQYXRyaWNrIE1hbnNmaWVsZCAgPHBhdG1hbnNAdXMuaWJtLmNvbT4KCgkqIHNwdS9nZXRwYWdlc2l6ZS5jOiBOZXcgZmlsZSBhZGQgZ2V0cGFnZXNpemUgdmlhIGFuIGFzc2lzdCBjYWxsLgoJKiBzcHUvanNyZS5oOiBBZGQgSlNSRV9HRVRQQUdFU0laRS4KCSogc3B1L01ha2VmaWxlLmluOiBBZGQgZ2V0cGFnZXNpemUuCgoyMDA3LTA2LTEzICBQYXRyaWNrIE1hbnNmaWVsZCAgPHBhdG1hbnNAdXMuaWJtLmNvbT4KCgkqIHNwdS9NYWtlZmlsZS5pbjogQWRkIG5hbm9zbGVlcC5jLgoJKiBzcHUvanNyZS5oOiBBZGQgSlNSRV9OQU5PU0xFRVAuCgkqIHNwdS9uYW5vc2xlZXAuYzogTmV3IGZpbGUsIHN1cHBseSBuYW5vc2xlZXAgdmlhIGFuIGFzc2lzdCBjYWxsLgoKMjAwNy0wNi0wNSAgUGF0cmljayBNYW5zZmllbGQgIDxwYXRtYW5AdXMuaWJtLmNvbT4KCgkqIHNwdS9qc3JlLmg6IFJlbW92ZSB0aGUgYXNzaXN0IGNhbGwgc3RydWN0cyBhbmQgZGVmaW5lcyB0aGF0IGFyZQoJc3BlY2lmaWMgdG8gb25lIGFzc2lzdCBjYWxsIGZyb20gaGVyZS4KCSogc3B1L2FjY2Vzcy5jOiBNb3ZlIHN0cnVjdCBzeXNjYWxsX2FjY2Vzc190IHRvIGhlcmUuCgkqIHNwdS9mc3RhdC5jOiBNb3ZlIHN0cnVjdCBzeXNjYWxsX2ZzdGF0X3QgdG8gaGVyZS4KCSogc3B1L2Z0cnVuY2F0ZS5jOiBNb3ZlIHN0cnVjdCBzeXNjYWxsX2Z0cnVuY2F0ZV90IHRvIGhlcmUuCgkqIHNwdS9nZXR0aW1lb2ZkYXkuYzogTW92ZSBzdHJ1Y3Qgc3lzY2FsbF9nZXR0aW1lb2ZkYXlfdCB0byBoZXJlLgoJKiBzcHUvbHNlZWsuYzogTW92ZSBzdHJ1Y3Qgc3lzY2FsbF9sc2Vla190IGFuZCBKU1JFX1NFRUsgZGVmaW5lcyB0byAKCWhlcmUuCgkqIHNwdS9vcGVuLmM6IE1vdmUgc3RydWN0IHN5c2NhbGxfb3Blbl90IGFuZCBKU1JFX09fIGRlZmluZXMgdG8gaGVyZS4KCSogc3B1L3JlYWQuYzogTW92ZSBzdHJ1Y3Qgc3lzY2FsbF9yZWFkX3QgdG8gaGVyZSwgYW5kIGFjdHVhbGx5IHVzZQoJaXQgKGl0IGlzIHRoZSBzYW1lIGFzIHN5c2NhbGxfd3JpdGVfdCkuCgkqIHNwdS9zdGF0LmM6IE1vdmUgc3RydWN0IHN5c2NhbGxfc3RhdF90IHRvIGhlcmUuCgkqIHNwdS93cml0ZS5jOiBNb3ZlIHN0cnVjdCBzeXNjYWxsX3dyaXRlX3QgdG8gaGVyZS4KCSogc3B1L2Nsb3NlLmM6IFBhc3MgdGhlIGFkZHJlc3Mgb2YgdGhlIGZpcnN0IGFuZCBvbmx5IGFyZ3VtZW50IHRvCglfX3NlbmRfdG9fcHBlIHJhdGhlciB0aGFuIHVzaW5nIGFuIGF1dG9tYXRpYyB2YXJpYWJsZSBhbmQgYQoJc3BlY2lhbCBzdHJ1Y3QuCgkqIHNwdS9kdXAuYzogRGl0dG8uCgkqIHNwdS91bmxpbmsuYzogRGl0dG8uCgoyMDA3LTA1LTMwICBLYXp1IEhpcmF0YSAgPGthenVAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG02OGsvY2YtY3J0MS5DLCBtNjhrL2NmLnNjLCBtNjhrL2ZpZG8uc2MsIG02OGsvZmlkby1jcnQwLlM6CglSZXBsYWNlIF9fSU5JVF9TRUNUSU9OX18gYW5kIF9fRklOSV9TRUNUSU9OX18gd2l0aCBfaW5pdCBhbmQKCV9maW5pLCByZXNwZWN0aXZlbHkuCgoyMDA3LTA1LTIzIFBhdHJpY2sgTWFuc2ZpZWxkIDxwYXRtYW5zQHVzLmlibS5jb20+CgoJKiBzcHUvc3lzY2FsbHMuYzogQ2hhbmdlIF9fc2VuZF90b19wcGUgdG8gcmV0dXJuIHRoZSByZXN1bHQgc3RvcmVkCglpbiBzdG9yZWQgaW4gc2xvdCAwIG9mIHRoZSBkYXRhLCByYXRoZXIgdGhhbiBoYXZlIGVhY2ggYXNzaXN0ZWQKCWNhbGwgcmV0cmlldmUgdGhlIHZhbHVlLgoJKiBzcHUvanNyZS5oOiBSZW1vdmUgdGhlIG5vdyB1bnVzZWQgc3lzY2FsbF9vdXRfdC4KCSogc3B1L2FjY2Vzcy5jOiBVc2UgdGhlIF9fc2VuZF90b19wcGUgcmVzdWx0IGluc3RlYWQgb2YgdGhlIHNsb3QgMAoJdmFsdWUsIHJlbW92ZSB1bnVzZWQgc3lzY2FsbF9vdXRfdCB2YXJpYWJsZS4KCSogc3B1L2Nsb3NlLmM6IERpdHRvLgoJKiBzcHUvZHVwLmM6IERpdHRvLgoJKiBzcHUvZnN0YXQuYzogRGl0dG8uCgkqIHNwdS9mdHJ1bmNhdGUuYzogRGl0dG8uCgkqIHNwdS9nZXR0aW1lb2ZkYXkuYzogRGl0dG8uCgkqIHNwdS9sc2Vlay5jOiBEaXR0by4KCSogc3B1L29wZW4uYzogRGl0dG8uCgkqIHNwdS9yZWFkLmM6IERpdHRvLgoJKiBzcHUvc3RhdC5jOiBEaXR0by4KCSogc3B1L3VubGluay5jOiBEaXR0by4KCSogc3B1L3dyaXRlLmM6IERpdHRvLgoKMjAwNy0wNS0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL2ZpZG8uc2MgKC5kYXRhKTogTW92ZSAuamNyIHRvIC50ZXh0LiAgQ2F0Y2ggLmdvdC5wbHQKCWFuZCAuZ290LgoKMjAwNy0wNS0wNyAgUGF0cmljayBNYW5zZmllbGQgIDxwYXRtYW5zQHVzLmlibS5jb20+CgoJKiBzcHUvb3Blbi5jOiBVbmNvbmRpdGlvbmFsbHkgc2V0IHRoZSAibW9kZSIgdG8gZml4IGEgYnVnIHdoZXJlCgltb2RlIHdhcyBub3QgcHJvcGVybHkgc2V0LgoKMjAwNy0wNS0wMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL2ZpZG8tX2V4aXQuYyAoX2V4aXQpOiBVc2Ugc3RvcCAjMHg3MDAuCgoyMDA3LTA0LTI3ICBLYXp1IEhpcmF0YSAgPGthenVAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG02OGsvZmlkby5zYzogQ2F0Y2ggLnRleHQuKiwgLnJvZGF0YS4qLCAuZGF0YS4qLCAuYnNzLiosCgkuY3Rvci4qLCBhbmQgLmR0b3IuKi4gIFdyYXAgY3Rvci9kdG9yLXJlbGF0ZWQgc2VjdGlvbnMgd2l0aCBLRUVQLgoKMjAwNy0wNC0wNCAgUGF0cmljayBNYW5zZmllbGQgIDxwYXRtYW5zQHVzLmlibS5jb20+CiAKCSogc3B1L3N5c2NhbGxzLmM6IFJlbmFtZSBfc2VuZF90b19wcGUgX19zZW5kX3RvX3BwZSwgYW5kIHNldCBlcnJubwoJb24gcmV0dXJuIGZyb20gdGhlIG9mZmxvYWQgY2FsbC4KCSogc3B1L2pzcmUuaDogSW5jbHVkZSBzeXMvc3lzY2FsbC5oIGZvciB0aGUgc2VuZF90b19wcGUgcHJvdG90eXBlLgoJKiBzcHUvYWNjZXNzLmM6IENhbGwgX19zZW5kX3RvX3BwZSBpbnN0ZWFkIG9mIF9zZW5kX3RvX3BwZSwgYW5kCglyZW1vdmUgdGhlIHNldHRpbmcgb2YgZXJybm8uCgkqIHNwdS9jbG9zZS5jOiBEaXR0by4KCSogc3B1L2R1cC5jOiBEaXR0by4KCSogc3B1L2ZzdGF0LmM6IERpdHRvLgoJKiBzcHUvZnRydW5jYXRlLmM6IERpdHRvLgoJKiBzcHUvZ2V0dGltZW9mZGF5LmM6IERpdHRvLgoJKiBzcHUvbHNlZWsuYzogRGl0dG8uCgkqIHNwdS9vcGVuLmM6IERpdHRvLgoJKiBzcHUvcmVhZC5jOiBEaXR0by4KCSogc3B1L3N0YXQuYzogRGl0dG8uCgkqIHNwdS91bmxpbmsuYzogRGl0dG8uCgkqIHNwdS93cml0ZS5jOiBEaXR0by4KCjIwMDctMDMtMDEgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogc3B1L3NicmsuYyAoc2Jyayk6IEFkanVzdCB0aGUgc3RhY2sgcG9pbnRlciB2ZWN0b3IgY29ycmVjdGx5IHNvCgl0aGF0IEdDQyBydW50aW1lIHN0YWNrIGNoZWNraW5nIHdvcmtzLiAgSGFuZGxlIHRoZSBiYWNrY2hhaW4sIHRvby4KCjIwMDctMDItMjEgIFBhdHJpY2sgTWFuc2ZpZWxkICA8cGF0bWFuc0B1cy5pYm0uY29tPgoKCSogc3B1L2dldHRpbWVvZmRheS5jOiBOZXcgZmlsZSB3aGljaCBhZGRzIFNQVSBnZXR0aW1lb2ZkYXkuCgkqIHNwdS9qc3JlLmg6IFJlbW92ZSB0aW1lLCBhZGQgZ2V0dGltZW9mZGF5LgoJKiBzcHUvTWFrZWZpbGUuaW46IERpdHRvLgoKMjAwNy0wMi0yMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBjcmlzL2NydDAuUzogVXNlIGp1bXAsIG5vdCBiYSwgdG8gc2tpcCB0aGUgaW50ZXJydXB0IHRhYmxlLiAgVXNlCgkic2V0ZiIsIG5vdCAibm9wIiwgZm9yIGNvbW1vbl92MTBfdjMyIGNvbXBhdGliaWxpdHkuCglNb3ZlIG91dCBpbnRlcnJ1cHQgdGFibGUgdG8gaXJxdGFibGUuUy4gIEluY2x1ZGUgaGVyZSBmb3Igbm9uLUVMRi4KCSogY3Jpcy9pcnF0YWJsZS5TOiBFeHRyYWN0ZWQgZnJvbSBjcmlzL2NydDAuUy4gIFByb3ZpZGUgcGVyLWVudHJ5Cgl3ZWFrIGRlZmF1bHQgc3R1YiBkZWZpbml0aW9ucy4KCSogY3Jpcy9jcnRuLmM6IFVzZSAic2V0ZiIsIG5vdCAibm9wIiwgZm9yIGNvbW1vbl92MTBfdjMyCgljb21wYXRpYmlsaXR5LgoJKiBjcmlzL3NldHVwLlMgW19fYXJjaF9jb21tb25fdjEwX3YzMl06IFJldHVybi4KCSogY3Jpcy9NYWtlZmlsZS5pbiAoQlNQX09CSlMpOiBBZGQgaXJxdGFibGUuby4KCjIwMDctMDItMTUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBzcGFyYy9jeWdtb24ubGQuc3JjOiBMaW5rIC5yb2RhdGEuKiBpbnB1dCBzZWN0aW9ucyBpbnRvIC50ZXh0CglvdXRwdXQgc2VjdGlvbi4KCSogc3BhcmMvY3lnbW9uLXNwYXJjNjQtbGQuc3JjOiBMaWtld2lzZS4gCgoyMDA3LTAyLTA4ICBEYXZlIEJyb2xsZXkgIDxicm9sbGV5QHJlZGhhdC5jb20+CgoJKiBtZXA6IE5ldyB0YXJnZXQgZGlyZWN0b3J5LgoJKiBSRUFETUU6IEFkZCBNZVAuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIE1lUC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCSogbWVwL2NvbmZpZ3VyZS5pbjogTmV3IGZpbGUuCgkqIG1lcC9jb25maWd1cmU6IERpdHRvLgoJKiBtZXAvTWFrZWZpbGUuaW46IERpdHRvLgoJKiBtZXAvYWNsb2NhbC5tNDogRGl0dG8uCgkqIG1lcC9jcnQwLlM6IERpdHRvLgoJKiBtZXAvY3J0bi5TOiBEaXR0by4KCSogbWVwL3NpbS1jcnQwLlM6IERpdHRvLgoJKiBtZXAvc2ltLWNydG4uUzogRGl0dG8uCgkqIG1lcC9mbWF4LmxkOiBEaXR0by4KCSogbWVwL2djb3YtaW8uaDogRGl0dG8uCgkqIG1lcC9nbWFwX2RlZmF1bHQubGQ6IERpdHRvLgoJKiBtZXAvaGFuZGxlcnMuYzogRGl0dG8uCgkqIG1lcC9oX3Jlc2V0LmM6IERpdHRvLgoJKiBtZXAvaXNhdHR5LmM6IERpdHRvLgoJKiBtZXAvbWVwLWJiLmM6IERpdHRvLgoJKiBtZXAvbWVwLWdtb24uYzogRGl0dG8uCgkqIG1lcC9taW4ubGQ6IERpdHRvLgoJKiBtZXAvcmVhZC5jOiBEaXR0by4KCSogbWVwL3NicmsuYzogRGl0dG8uCgkqIG1lcC9zZHJhbS1jcnQwLlM6IERpdHRvLgoJKiBtZXAvc2RyYW0tY3J0bi5TOiBEaXR0by4KCSogbWVwL3NpbW5vdmVjLWNydDAuUzogRGl0dG8uCgkqIG1lcC9zaW1wbGUubGQ6IERpdHRvLgoJKiBtZXAvc2ltc2RyYW4tY3J0MC5TOiBEaXR0by4KCSogbWVwL3N5c2NhbGxzLlM6IERpdHRvLgoJKiBtZXAvd3JpdGUuYzogRGl0dG8uCgoyMDA3LTAxLTE5ICBLYXp1bm9yaSBBc2F5YW1hIDxhc2F5YW1hQHNtLnNvbnkuY28uanA+CgoJKiBzcHUvc3lzY2FsbHMuYzogUmVwbGFjZSB2ZWN0b3Igd2l0aCBfX3ZlY3Rvci4KCjIwMDctMDEtMDkgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogc3B1L2V4aXQuYyAoX2V4aXQpOiBGaW5pc2ggd2l0aCBhbiBpbmZpbml0ZSBsb29wIHRvIGVsaW1pbmF0ZSBhCgl3YXJuaW5nIGFib3V0IHRoaXMgbm9yZXR1cm4gZnVuY3Rpb24gcmV0dXJuaW5nLgoKMjAwNy0wMS0wNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNvZGVzb3VyY2VyeS5jb20+CgoJTWVyZ2UgZnJvbSBuZXdsaWItY3NsLTIwMDYwMzIwLWJyYW5jaDoKCTIwMDYtMTItMjIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJbGliZ2xvc3MvCgkqIG02OGsvTWFrZWZpbGUuaW4gKENGX0lTUlMpOiBSZW1vdmUgbm93IHNoYXJlZCByb3V0aW5lcy4KCSogbTY4ay9jZi1jcnQwLlMgKF9fcmVzZXQpOiBEZWZpbmUgaGVyZS4KCSogbTY4ay9jZi1pc3JzLmM6IFNoYXJlIHNvbWUgSVNSUy4gIEFkZCBhbGlhc2VzIGZvciBlYWNoIElSUSBzbG90LgoJKiBtNjhrL2NmLWlzdi5TOiBNb3ZlIHRvIC5pbnRlcnJ1cHRfdmVjdG9yIHNlY3Rpb24uICBNYWtlIGVhY2gKCXNsb3QgYSB1bmlxdWUgcm91dGluZS4KCSogbTY4ay9jZi5zYzogQWRqdXN0IGZvciAuaW50ZXJydXB0X3ZlY3RvciBzZWN0aW9uLgoKCWxpYmdsb3NzLwoJKiBtNjhrL01ha2VmaWxlLmluIChtNTI3M2MzKTogUmVuYW1lIHRvIC4uLgoJKG01MjcyYzMpOiAuLi4gaGVyZSB0byBmaXggdHlwby4KCShtNTI0OWMzKTogTmV3LgoJKENGX0JPQVJEUyk6IEFkZCBpdC4KCjIwMDYtMDEtMDMgIEthenUgSGlyYXRhICA8a2F6dUBjb2Rlc291cmNlcnkuY29tPgoKCSogYXJtL01ha2VmaWxlIChSRFBNT05fT0JKUyk6IEFkZCBfZXhpdC5vIGFuZCBfa2lsbC5vLgoJKFJESU1PTl9PQkpTKTogRGVmaW5lIGluIHRlcm1zIG9mIFJEUE1PTl9PQkpTLgoJKHJkaW1vbi1fZXhpdC5vLCByZGltb24tX2tpbGwubyk6IE5ldy4KCSogYXJtL19leGl0LmMsIGFybS9fa2lsbC5jOiBOZXcuCgkqIGFybS9zeXNjYWxscy5jIChfZXhpdCwgX2tpbGwpOiBSZW1vdmUuCgoyMDA3LTAxLTAzICBLYXp1IEhpcmF0YSAgPGthenVAY29kZXNvdXJjZXJ5LmNvbT4KCglNZXJnZSBmcm9tIG5ld2xpYi1jc2wtMjAwNjAzMjAtYnJhbmNoOgoJMjAwNi0xMi0yMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG02OGsvY2YtY3J0MC5TIChfX3N0YXJ0KTogQWRqdXN0IHNlbWlob3N0aW5nLgoKMjAwNy0wMS0wMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNvZGVzb3VyY2VyeS5jb20+CgoJTWVyZ2UgZnJvbSBuZXdsaWItY3NsLTIwMDYwMzIwLWJyYW5jaDoKCTIwMDYtMTItMjIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL2NmLWhvc3RlZC5TIChfX2hvc3RlZCk6IEFkanVzdCBzZW1paG9zdGluZy4KCjIwMDctMDEtMDIgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKICAgICAgICAqIHNwdS90aW1lLmMgKHRpbWUpOiBDYXN0IG5ldyBzeXMudGltZSB2YWx1ZSB0byB1bnNpZ25lZCBpbnQuCgoyMDA2LTEyLTI1ICBLYXp1IEhpcmF0YSAgPGthenVAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGFybS9zeXNjYWxscy5jIChfdW5saW5rLCBfc3lzdGVtLCBfcmVuYW1lKTogQ2FzdCBhcmd1bWVudHMKCXRvIGRvX0FuZ2VsU1dJIHRvIGludC4KCgkqIGFybS9saWNmdW5jLmMgKGRvX0FuZ2VsU1dJKTogUmVtb3ZlLgoJKiBhcm0vc3lzY2FsbHMuYyAoZG9fQW5nZWxTV0kpOiBSZW1vdmUuCgkqIGFybS9zd2kuaCAoZG9fQW5nZWxTV0kpOiBOZXcuCgoyMDA2LTEyLTE4ICBLYXp1IEhpcmF0YSAgPGthenVAY29kZXNvdXJjZXJ5LmNvbT4KCglNZXJnZSBmcm9tIG5ld2xpYi1jc2wtMjAwNjAzMjAtYnJhbmNoOgoJMjAwNi0xMi0xNSAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG02OGsvZmlkby1jcnQwLlMgKF92ZWN0b3JfdGFibGUpOiBSZWZlcmVuY2UKCV9Qcml2aWxlZ2VWaW9sYXRpb25IYW5kbGVyLgoKCTIwMDYtMTItMTUgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL2ZpZG8tY3J0MC5TIChfc3RhcnQpOiBTZXQgJXZiciBmb3IgY29udGV4dCAwIGluCglSQU0gY29uZmlncy4KCSogbTY4ay9maWRvLnNjOiBDbGVhbiB1cCBmb3JtYXR0aW5nLiAgQWRkIGNvbW1lbnRzLiAgTW92ZQoJc3RhY2sgYW5kIGhlYXAgZW5kIHRvIFNEUkFNIGZvciBTUkFNIGFuZCBTRFJBTSBjb25maWd1cmF0aW9ucy4KCVB1dCBSZWRCb290IGFwcGxpY2F0aW9uIHRleHQgaW4gU1JBTS4KCgkyMDA2LTEyLTEzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbTY4ay9NYWtlZmlsZSAoaW5zdGFsbF9jZik6IERvbid0IGxvb3Agb3ZlciBmaWxlcyBoZXJlLiAgT25seQoJaW5zdGFsbCBzb3VyY2VzIGZvciB0aGUgZGVmYXVsdCBtdWx0aWxpYi4KCShpbnN0YWxsX2ZpZG8pOiBMaWtld2lzZS4KCShpbnN0YWxsX2lvKTogSW5zdGFsbCBic3BzIGluIG9uZSBnby4KCgkyMDA2LTEyLTAxICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoJCSAgICBLYXp1IEhpcmF0YSAgPGthenVAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogUmVjb2duaXplIGZpZG8tKi0qLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIG02OGsvTWFrZWZpbGUuaW4gKENGX0lTUlMpOiBVc2UgYWRkcHJlZml4LgoJKEZJRE9fQ1JUMCwgRklET19CU1AsIEZJRE9fT0JKUywgRklET19IQU5ETEVSUywKCUZJRE9fVU5IT1NURURfU0NSSVBUUywgRklET19IT1NURURfU0NSSVBUUywgRklET19TQ1JJUFRTLAoJRklET19TT1VSQ0VTLCBhbGxfZmlkbywgZmlkby0lLWNydDAubywgZmlkby1yb20ubGQsCglmaWRvLXJvbS1ob3N0ZWQubGQsIGZpZG8tc3JhbS5sZCwgZmlkby1zcmFtLWhvc3RlZC5sZCwKCWZpZG8tc2RyYW0ubGQsIGZpZG8tc2RyYW0taG9zdGVkLmxkLCBmaWRvLXJlZGJvb3QubGQsCglpbnN0YWxsX2ZpZG8pOiBOZXcuCgkqIG02OGsvYXNtLmggKG1iYik6IE5ldy4KCSogbTY4ay9jb25maWd1cmUuaW4gKERPKTogQ2hlY2sgZm9yIF9fbWZpZG9fXy4KCSogbTY4ay9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIG02OGsvZmlkby1fZXhpdC5jLCBtNjhrL2ZpZG8tY3J0MC5TLCBtNjhrL2ZpZG8taGFuZGxlci5jLAoJbTY4ay9maWRvLWhvc3RlZC5TLCBtNjhrL2ZpZG8tc2Jyay5jLCBtNjhrL2ZpZG8uaCwKCW02OGsvZmlkby5zYywgbTY4ay9maWRvX3Byb2ZpbGluZy5oOiBOZXcuCgoyMDA2LTEyLTE4ICBCZW4gRWxsaXN0b24gIDxiamVAYXUuaWJtLmNvbT4KCiAgICAgICAqIHNwdS9zdGF0LmMgKHN0YXQpOiBDYXN0IG5ldyBzeXMucGF0aG5hbWUgdmFsdWUgdG8gdW5zaWduZWQgaW50LgoKMjAwNi0xMi0xMyAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgogICAgICAgICogbGlibm9zeXMvX2V4aXQuYyAoX2V4aXQpOiBGaW5pc2ggd2l0aCBhbiBpbmZpbml0ZSBsb29wIHRvCiAgICAgICAgZWxpbWluYXRlIGEgd2FybmluZyBhYm91dCB0aGlzIG5vcmV0dXJuIGZ1bmN0aW9uIHJldHVybmluZy4KCjIwMDYtMTItMTMgIFNhIExpdSAgPHNhbGl1QGRlLmlibS5jb20+CgogICAgICAgICogc3B1L2FjY2Vzcy5jOiBOZXcgZmlsZQogICAgICAgICogc3B1L2R1cC5jOiBOZXcgZmlsZQogICAgICAgICogc3B1L2Z0cnVuY2F0ZS5jOiBOZXcgZmlsZQogICAgICAgICogc3B1L2pzcmUuaDogYWRkIHN0cnVjdHVyZXMgZm9yIG5ldyBmdW5jdGlvbnMKICAgICAgICAqIHNwdS90aW1lLmM6IE5ldyBmaWxlCiAgICAgICAgKiBzcHUvTWFrZWZpbGUuaW4gKGFjY2Vzcy5vLCBkdXAubywgZnRydW5jYXRlLm8sIHRpbWUubyk6IE5ldyB0YXJnZXRzLgoKMjAwNi0xMi0xMiAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBjb25maWd1cmUuaW46IFJlbW92ZSBzdXBlcmZsdW91cyBzZW1pY29sb25zLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA2LTEyLTExIEthenUgSGlyYXRhIDxrYXp1QGNvZGVzb3VyY2VyeS5jb20+CgoJTWVyZ2UgZnJvbSBuZXdsaWItY3NsLTIwMDYwMzIwLWJyYW5jaDoKCTIwMDYtMTItMDEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgkJICAgIEthenUgSGlyYXRhICA8a2F6dUBjb2Rlc291cmNlcnkuY29tPgoKCSogbTY4ay9NYWtlZmlsZS5pbiAoQ0ZfSVNSUyk6IFVzZSBhZGRwcmVmaXguCgoJMjAwNi0xMS0wMSBOYXRoYW4gU2lkd2VsbCA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL01ha2VmaWxlLmluIChDRkxBR1MpOiBEbyBub3QgY2xlYXIuICBBZGQgdG8gYWxsIGNvbXBpbGF0aW9ucy4KCShBUkZMQUdTKTogUmVtb3ZlIGNvbW1lbnRlZCBvdXQgZGVmaW5pdGlvbi4KCgoJKiBtNjhrL2NvbmZpZ3VyZS5pbiAoRE8pIFNldCB0byBsaXN0IG9mIHRhcmdldCBjcHUgZmFtaWxpZXMuCgkqIG02OGsvY29uZmlndXJlOiBSZWJ1aWx0LgoJKiBtNjhrL01ha2VmaWxlLmluIChETyk6IE5ldy4KCShVTkhPU1RFRF9CU1AsIFVOSE9TVEVEX09CSlMsIEhPU1RFRF9CU1AsIEhPU1RFRF9PQkpTKTogTW92ZQoJbGF0ZXIuCgkobTUyMDhldmIsIG01MjEzZXZiLCBtNTIyMzVldmIsIG01MjM1ZXZiLCBtNTI3M2MzLCBtNTI3NWV2YiwKCW01MjgyZXZiLCBtNTMyOWV2YiwgbTU0ODVldmIpOiBNb3ZlIGVhcmxpZXIuCgkoYWxsKTogQWRkIGFsbF8kRE8gZGVwZW5kZW5jaWVzLgoJKGFsbF9jZiwgYWxsX202OGspOiBOZXcgdGFyZ2V0cywgZGVwZW5kIG9uIGNmICYgbTY4ayBic3BzIGFzCglhcHByb3ByaWF0ZS4KCShtJS1yYW0ubGQsIG0lLXJvbS5sZCwgbSUtcmFtLWhvc3RlZC5sZCwgbSUtcm9tLWhvc3RlZC5sZCk6IEFkZAoJJ20nIHByZWZpeC4KCShpbnN0YWxsKTogQWRkIGluc3RhbGxfJERPIGRlcGVuZGVuY2llcy4KCShpbnN0YWxsX2NmLCBpbnN0YWxsX202OGspOiBOZXcgdGFyZ2V0cy4gIFBlcmZvcm0gY2YgYW5kIG02OGsKCWluc3RhbGxzIGFzIGFwcHJvcHJpYXRlLgoJKGluc3RhbGxfaW8pOiBOZXcsIGluc3RhbGwgdGhlIGlvIGxpYnJhcmllcy4KCgoJMjAwNi0xMC0yMyBOYXRoYW4gU2lkd2VsbCA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL01ha2VmaWxlLmluIChDRl9DUlQwKTogUmVuYW1lIHRvIENGX0NSVDBTLCBzZXBhcmF0ZSBob3N0ZWQKCSYgdW5ob3N0ZWQgdmVyc2lvbnMuCgkoQ0ZfT0JKUyk6IEFkZCBjZi1pc3Yuby4KCShDRl9TT1VSQ0VTKTogQWRkIGNmLWlzdi5TLgoJKGNmLWhvc3RlZC1jcnQwLm8sIGNmLXVuaG9zdGVkLWNydDAubyk6IE5ldyB0YXJnZXRzLgoJKiBtNjhrL2NmLWlzdi5TOiBOZXcsIGJyb2tlbiBvdXQgb2YgLi4uCgkqIG02OGsvY2YtY3J0MC5TOiAuLi4gaGVyZS4gIEFkZCBIT1NURUQgJiBVTkhPU1RFRCBkaWZmZXJlbmNlcy4KCSogbTY4ay9jZi1jcnQxLmMgKF9fc3RhcnQxKTogQWRkIGhlYXBfbGltaXQgYXJndW1lbnQuCgkoX19oZWFwX2xpbWl0KTogRGVmaW5lLgoJKiBtNjhrL2NmLXNicmsuYyAoX19oZWFwX2xpbWl0KTogRGVjbGFyZS4KCShzYnJrKTogQWRqdXN0IGZvciBfX2hlYXBfbGltaXQuCgkqIG02OGsvY2Yuc2M6IFVzZSBkaWZmZXJlbnQgY3J0MCdzIGZvciBob3N0ZWQgJiB1bmhvc3RlZC4KCUluc3RhbGwgYSBzZXBhcmF0ZSBpc3YubyBmaWxlLgoJKiBtNjhrL2lvLmggKEhPU1RFRF9QVVRDSEFSKTogUmVwbGFjZSB3aXRoIC4uLgoJKEhPU1RFRF9JTklUX1NJTSk6IC4uLiB0aGlzLgoKCgkyMDA2LTEwLTIwIE5hdGhhbiBTaWR3ZWxsIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG02OGsvTWFrZWZpbGUuaW4gKENGX0JPQVJEUyk6IEFkZCBtNTI3NWV2Yi4KCShtNTI3NWV2Yik6IE5ldyBib2FyZC4KCgoJMjAwNi0xMC0yMCBWbGFkaW1pciBQcnVzIDx2bGFkaW1pckBjb2Rlc291cmNlcnkuY29tPgoKCSogbTY4ay9jZi5zYzogQWRkIGxpbmtvbmNlIHNlY3Rpb25zIGFuZAoJRFdBUkYgc2VjdGlvbnMuCgoKCTIwMDYtMTAtMDcgTmF0aGFuIFNpZHdlbGwgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbTY4ay9NYWtlZmlsZS5pbjogQWRqdXN0IENvbGRmaXJlIHJ1bGVzLgoJKEJETV9DUlQwLCBCRE1fQlNQLCBCRE1fT0JKUywgQkRNX0lTUlMpOiBSZW5hbWUJdG8gLi4uCgkoQ0ZfQ1JUMCwgQ0ZfQlNQLCBDRl9PQkpTLCBDRl9JU1JTKTogLi4uIGhlcmUuICBBZGp1c3QuCgkoQkRNX09USEVSX09CSlMpOiBSZW1vdmUuCgkoQkRNX1NZU09CSlMpOiBSZW5hbWUgdG8gLi4uCgkoVU5IT1NURURfT0JKUyk6IC4uLiBoZXJlLiAgQWRqdXN0LgoJKFVOSE9TVEVEX0JTUCwgSE9TVEVEX09CSlMsIEhPU1RFRF9CU1ApOiBOZXcuCgkoQ0ZfSE9TVEVEX1NDUklQVFMpOiBOZXcuCgkoQ0ZfU0NSSVBUUywgQ0ZfU09VUkNFUyk6IEFkanVzdC4KCSogbTY4ay9jZi5zYzogQWRkIElPIGxpYnJhcnkgdmFyaWFibGUuCgkqIG02OGsvYmRtLWNydDAuUywgbTY4ay9iZG0tY3J0MS5jLCBtNjhrL2JkbS1pc3JzLmMsCgltNjhrL2JkbS1zYnJrLmMsIG02OGsvYmRtLXNlbWlob3N0LlM6IFJlbmFtZSB0byAuLi4KCSogbTY4ay9jZi1jcnQwLlMsIG02OGsvY2YtY3J0MS5jLCBtNjhrL2NmLWlzcnMuYywgbTY4ay9jZi1zYnJrLmMsCgltNjhrL2NmLWhvc3RlZC5TOiAuLi4gaGVyZS4KCSogbTY4ay9jZi1leGl0LmM6IE5ldy4KCSogbTY4ay9iZG0tZ2RiLmgsIG02OGsvYmRtLXNlbWlob3N0Lmg6IE1lcmdlIGludG8gLi4uCgkqIG02OGsvaW8uaDogLi4uIGhlcmUuICBBZGQgdW5ob3N0ZWQgc3VwcG9ydC4gIEFkanVzdCBjb252ZXJzaW9uCglmdW5jdGlvbiBuYW1lcy4KCSogbTY4ay9iZG0tZ2RiLmM6IFJlbmFtZSB0byAuLi4KCSogbTY4ay9pby1nZGIuYzogLi4uIGhlcmUuICBBZGp1c3QgbmFtZXMgb2YgY29udmVyc2lvbiBmdW5jdGlvbnMuCgkqIG02OGsvYmRtLWNsb3NlLmMsIG02OGsvYmRtLWV4aXQuYywgbTY4ay9iZG0tZnN0YXQuYywKCW02OGsvYmRtLWdldHRpbWVvZmRheS5jLCBtNjhrL2JkbS1pc2F0dHkuYywgbTY4ay9iZG0tbHNlZWsuYywKCW02OGsvYmRtLW9wZW4uYywgbTY4ay9iZG0tcmVhZC5jLCBtNjhrL2JkbS1yZW5hbWUuYywKCW02OGsvYmRtLXN0YXQuYywgbTY4ay9iZG0tc3lzdGVtLmMsIG02OGsvYmRtLXRpbWUuYywKCW02OGsvYmRtLXVubGluay5jLCBtNjhrL2JkbS13cml0ZS5jOiBSZW5hbWUgdG8gLi4uCgkqIG02OGsvaW8tY2xvc2UuYywgbTY4ay9pby1leGl0LmMsIG02OGsvaW8tZnN0YXQuYywKCW02OGsvaW8tZ2V0dGltZW9mZGF5LmMsIG02OGsvaW8taXNhdHR5LmMsIG02OGsvaW8tbHNlZWsuYywKCW02OGsvaW8tb3Blbi5jLCBtNjhrL2lvLXJlYWQuYywgbTY4ay9pby1yZW5hbWUuYywgbTY4ay9pby1zdGF0LmMsCgltNjhrL2lvLXN5c3RlbS5jLCBtNjhrL2lvLXRpbWUuYywgbTY4ay9pby11bmxpbmsuYywKCW02OGsvaW8td3JpdGUuYzogLi4uIGhlcmUuICBJbmNsdWRlIGlvLmguIEFkanVzdCBmb3IgaG9zdGVkICYKCXVuaG9zdGVkIGxpYnJhcmllcy4gIEFkanVzdCBuYW1lcyBvZiBnZGIgY29udmVyc2lvbiBmdW5jdGlvbnMuCgoKCTIwMDYtMDktMjkgTmF0aGFuIFNpZHdlbGwgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbTY4ay9iZG0tc2VtaWhvc3QuUzogQWRkIG1vcmUgY29tbWVudHMuIE1ha2UgaW5zdHJ1Y3Rpb24gd2VpcmRlci4KCgkyMDA2LTA5LTIyIE5hdGhhbiBTaWR3ZWxsIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG02OGsvYmRtLWNydDEuYyAoaGFyZHdhcmVfaW5pdF9ob29rKTogVXNlICNkZWZpbmVzIGZvciBDQUNSIGJpdHMuCgoJMjAwNi0wOS0xOCBOYXRoYW4gU2lkd2VsbCA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL01ha2VmaWxlLmluOiBEb24ndCBmb3JjZSBhIGZyYW1lIHBvaW50ZXIgb24gdGhlIElTUnMuCgkqIG02OGsvYmRtLWNydDEuYyAoX19zdGFydDEpOiBEb24ndCBzZXQgdGhlIFZCUiBoZXJlLgoJKGhhcmRlYXJlX2luaXRfaG9vayk6IERlZmluZSB3ZWFrbHkuICBTZXQgVkJSIGhlcmUsIGVuYWJsZSBjYWNoaW5nCglpZiBzdXBwb3J0ZWQuCgoKCSogbTY4ay9NYWtlZmlsZS5pbiAoYmRtLXNlbWlob3N0Lm8pOiBCdWlsZCBmcm9tIGJkbS1zZW1paG9zdC5TLgoJKiBtNjhrL2JkbS1zZW1paG9zdC5jOiBSZW1vdmUuCgkqIG02OGsvYmRtLXNlbWlob3N0LlM6IE5ldy4KCSogbTY4ay9iZG0tY3J0MC5TOiBEb24ndCBpbnN0YWxsIHNlbWlob3N0aW5nIHRyYXAgaGFuZGxlci4KCSogbTY4ay9iZG0tY2xvc2UuYywgYmRtLWV4aXQuYywgYmRtLWZzdGF0LmMsIGJkbS1nZXR0aW1lb2ZkYXkuYywKCWJkbS1pc2F0dHkuYywgYmRtLWxzZWVrLmMsIGJkbS1vcGVuLmMsIGJkbS1yZWFkLmMsIGJkbS1yZW5hbWUuYywKCWJkbS1zdGF0LmMsIGJkbS1zeXN0ZW0uYywgYmRtLXVubGluay5jLCBiZG0td3JpdGUuYyk6IFVwZGF0ZS4KCSogbTY4ay9iZG0taXNycy5jOiBVcGRhdGUgY29tbWVudC4KCSogbTY4ay9iZG0tc2VtaWhvc3QuaCAoQkRNX1RSQVBOVU0sIEJETV9GVU5DX1JFRywgQkRNX0FSR19SRUcsCglCRE1fVFJBUCk6IFJlbW92ZS4KCShfX2JkbV9zZW1paG9zdCk6IERlY2xhcmUuCgoKCTIwMDYtMDktMTUgTmF0aGFuIFNpZHdlbGwgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbTY4ay9NYWtlZmlsZS5pbiAoQkRNX09USEVSX09CSlMpOiBSZW1vdmUgc2Jyay5vLgoJKEJETV9TWVNPQkpTKTogQWRkIGJkbS1zYnJrLm8uCgkqIG02OGsvYmRtLXNicmsuYzogTmV3LgoKCgkyMDA2LTA5LTA2IE5hdGhhbiBTaWR3ZWxsIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG02OGsvTWFrZWZpbGUuaW4gKENGX1NPVVJDRVMpOiBOZXcuCgkoaW5zdGFsbCk6IEluc3RhbGwgdGhlbS4KCgoJMjAwNi0wOS0wMSBOYXRoYW4gU2lkd2VsbCA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL2NmLnNjOiBBZGQgLmpjciBzZWN0aW9uIHRvIC50ZXh0LgoKMjAwNi0xMi0xMSAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgogICAgICAgICogY29uZmlndXJlLmluOiBSZW1vdmUgZXh0cmEgd2hpdGVzcGFjZSBmcm9tIGNvbmZpZ190ZXN0c3VpdGUgPQogICAgICAgIFZBTFVFIHN0YXRlbWVudHMgdG8gZWxpbWluYXRlIHNoZWxsIGVycm9ycy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNi0xMi0wOCAgU2EgTGl1ICA8c2FsaXVAZGUuaWJtLmNvbT4KCiAgICAgICAgKiBzcHUvZXhpdC5jIChsaWJnbG9zc19leGl0KTogUmVuYW1lIGZyb20gdGhpcyAuLgogICAgICAgIChfZXhpdCk6IC4uIHRvIHRoaXMuIE92ZXJoYXVsLgogICAgICAgIChleGl0KTogUmVtb3ZlLgogICAgICAgICogc3B1L2NydDAuUywgc3B1L2NydGkuUywgc3B1L2NydG4uUzogTmV3IGZpbGVzLgogICAgICAgICogc3B1L2NydDAuQywgc3B1L2luaXQuYzogUmVtb3ZlLgogICAgICAgICogc3B1L2NvbmZpZ3VyZS5pbiAoQUNfSU5JVCk6IENoZWNrIGZvciBjcnQwLlMsIG5vdCBjcnQwLkMuCiAgICAgICAgKiBzcHUvY29uZmlndXJlOiBSZWdlbmVyYXRlLgogICAgICAgICogc3B1L01ha2VmaWxlLmluIChjcnRpLm8sIGNydG4ubywgY3J0MS5vLCBjcnQyLm8pOiBOZXcgdGFyZ2V0cy4KICAgICAgICAoT0JKUyk6IFJlbW92ZSBpbml0Lm8uCiAgICAgICAgKENSVE9CSlMpOiBOZXcuCiAgICAgICAgKE9VVFBVVFMpOiBBZGQgJChDUlRPQkpTKS4KCjIwMDYtMTEtMjcgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgoKCSogbWlwcy9jcnQwLlM6IEZpeCBwcmVwcm9jZXNzb3Igc3RhdGVtZW50cyBmcm9tIHByZXZpb3VzIHBhdGNoCgl0byBiZSBBTlNJLgoKMjAwNi0xMS0yNCAgVGhpZW1vIFNldWZlciAgPHRoc0BtaXBzLmNvbT4KICAgICAgICAgICAgTmlnZWwgU3RlcGhlbnMgIDxuaWdlbEBtaXBzLmNvbT4KCgkqIG1pcHMvY3J0MC5TIChfc3RhcnQpOiBVc2UgYWxsIGF2YWlsYWJsZSBmbG9hdCByZWdpc3RlcnMuIERvbid0IHRvdWNoCglTUl9QRSBvbiBwb3N0LW1pcHMyIENQVXMsIGl0IG1lYW5zIHNvZnQgcmVzZXQgdGhlcmUuCgoyMDA2LTExLTIyICBMdWNhIEJhcmJhdG8gIDxsdV96ZXJvQGdlbnRvby5vcmc+CgoJKiBzcHUvc3lzY2FsbHMuYzogSW5jbHVkZSBzcHVfaW50cmluc2ljcy5oIHRvIHByb3ZpZGUgdmVjdG9yIGtleXdvcmQuCgoyMDA2LTExLTE3ICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIG1uMTAzMDAvTWFrZWZpbGUuaW46IEFkZCBzcGFjZXMgYWZ0ZXIgZG8gaW4gImZvciIgbG9vcC4KCjIwMDYtMTEtMDggIEppZSBaaGFuZyAgPGppZS56aGFuZ0BhbmFsb2cuY29tPgoKCSogYmZpbi9jb25maWd1cmUuaW46IE5ldy4KCSogYmZpbi9jcnQwLlM6IE5ldy4KCSogYmZpbi9NYWtlZmlsZS5pbjogTmV3LgoJKiBiZmluL3N5c2NhbGxzLmM6IE5ldy4KCSogYmZpbi9hY2xvY2FsLm00OiBHZW5lcmF0ZS4KCSogYmZpbi9jb25maWd1cmU6IERpdHRvLgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBiZmluLSotKi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBzeXNjYWxsLmggKFNZU19hcmdjKTogRGVmaW5lLgoJKFNZU19hcmdubGVuKTogRGVmaW5lLgoJKFNZU19hcmduKTogRGVmaW5lLgoKMjAwNi0xMC0xMCAgVGhpZW1vIFNldWZlciAgPHRoc0BtaXBzLmNvbT4KCgkqIG1pcHMvTWFrZWZpbGUuaW46IEFkZCBJTkNMVURFUyB0byBsb2NhbCBjb21waWxlIHJ1bGVzLgoKMjAwNi0xMC0wNiAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5pbjogQWRkIENGTEFHU19GT1JfVEFSR0VUIGFuZCBDQ0FTRkxBR1MgdG8KCUZMQUdTX1RPX1BBU1MuCgoyMDA2LTEwLTAzICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIGFybS9saW51eC1zeXNjYWxsczAuYzogUmV3cml0ZSBieCBpbnNuIGFyY2hpdGVjdHVyZSBmbGFnIGNoZWNrIAoJdG8gYXZvaWQgdXNlIG9mIF9fQVJNX0FSQ0hfXy4KCjIwMDYtMTAtMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcm0vbGludXgtc3lzY2FsbHMwLmM6IEFkZCBhcm0gYXJjaGl0ZWN0dXJlIGZsYWcKCWNoZWNrcyBhcm91bmQgYnggaW5zbi4KCjIwMDYtMDktMDcgIE1hc2FraSBNdXJhbmFrYSAgPG1vbmFrYUBtb25hbWktc29mdHdhcmUuY29tPgoKCSogeHN0b3JteTE2L01ha2VmaWxlLmluIChjbGVhbik6IEZpeCBhIG1pc21hdGNoZWQgcGFyZW50aGVzaXMuCgoyMDA2LTA5LTAxICBLYXp1IEhpcmF0YSAgPGthenVAY29kZXNvdXJjZXJ5LmNvbT4KCglNZXJnZSBmcm9tIG5ld2xpYi1jc2wtMjAwNjAzMjAtYnJhbmNoOgoJMjAwNi0wOC0zMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG02OGsvYmRtLWNydDEuYzogQ2FsbCBoYXJkd2FyZV9pbml0X2hvb2sgYmVmb3JlIGNvcHlpbmcKCWluaXRpYWxpemVkIGRhdGEuCgoJKiBtNjhrL01ha2VmaWxlLmluIChDRl9CRE1fU0NSSVBUUyk6IFJlbmFtZSB0byBDRl9SQU1fU0NSSVBUUy4KCShDRl9TQ1JJUFRTKTogVXBkYXRlLgoJKCUtYmRtLmxkKTogUmVuYW1lIHRvICUtcmFtLmxkLgoKCTIwMDYtMDgtMjUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL01ha2VmaWxlLmluIChEQlVHX0JTUCwgREJVR19PQkpTKTogUmVtb3ZlLgoJKEJETV9DUlQwKTogTmV3LgoJKEJETV9PQkpTKTogQWRkIGJkbS1jcnQxLm8uCgkoQkRNX09USEVSX09CSlMpOiBSZW1vdmUgcHJpbnQubyBwdXRudW0ubwoJKENGX0JPQVJEUyk6IE5ldy4KCShDRl9CRE1fU0NSSVBUUyk6IEdlbmVyYXRlZCBuYW1lIG9mIHJhbSBzY3JpcHRzLgoJKENGX1JPTV9TQ1JJUFRTKTogR2VuZXJhdGVkIG5hbWUgb2Ygcm9tIHNjcmlwdHMuCgkoQ0ZfU0NSSVBUUyk6IEFkanVzdC4KCShhbGwpOiBBZGQgQkRNX0NSVDAuCgkoYmRtLWNydDAubywgYmRtLWNydDEubyk6IE5ldyB0YXJnZXRzLgoJKGJkbS1pc3Yubyk6IFJlbW92ZS4KCShtNTIwOGV2YiwgbTUyMTNldmIsIG01MjIzNWV2YiwgbTUyMzVldmIsIG01MjczYzMsIG01MjgyZXZiLAoJbTUzMjlldmIsIG01NDg1ZXZiKTogTmV3LgoJKCUtYmRtLmxkLCAlLXJvbS5sZCk6IE5ldy4gUmVwbGFjZSBpbmRpdmlkdWFsIGxpbmtlciBzY3JpcHQgcnVsZXMuCgkoaW5zdGFsbCk6IFJlbW92ZSBEQlVHIGluc3RhbGxzLgoJKiBtNjhrL2JkbS1jcnQwLlM6IE5ldy4KCSogbTY4ay9iZG0tY3J0MS5jOiBOZXcuCgkqIG02OGsvYmRtLWV4aXQuYzogQ2FsbCBfX3Jlc2V0LgoJKiBtNjhrL2JkbS1pc3YuYzogUmVtb3ZlLgoJKiBtNjhrL2NmLnNjOiBBZGp1c3QgdG8gcHJvZHVjZSBlaXRoZXIgcm9tIG9yIHJhbSBpbWFnZXMuCgkqIG02OGsvZGJ1Zy1leGl0LlMsIG02OGsvZGJ1Zy1pbmJ5dGUuUywgbTY4ay9kYnVnLW91dGJ5dGUuUzogUmVtb3ZlLgoKCTIwMDYtMDctMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJQnVnIDg0NAoJKiBtNjhrL2NmLnNjOiBTZXQgZW50cnkgcG9pbnQgdG8gX3N0YXJ0LgoJKiBtNjhrL2NydDAuWCAoX3N0YXJ0KTogTmV3IG5hbWUgZm9yIGVudHJ5cG9pbnQKCShzdGFydCk6IFdlYWsgYWxpYXMgZm9yIHN0YXJ0LgoKCTIwMDYtMDYtMDkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL2JkbS1zeXN0ZW0uYyAoX3N5c3RlbSk6IFN1cHBvcnQgc3lzdGVtKE5VTEwpLgoKCTIwMDYtMDYtMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL2JkbS1zeXN0ZW0uYyAoX3N5c3RlbSk6IFByb3Blcmx5IGVuY29kZSBub24gZmFpbHVyZSBleGl0Cgljb2RlLgoKCTIwMDYtMDYtMDUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL01ha2VmaWxlLmluIChCRE1fU1lTT0JKUyk6IFJlbW92ZSBiZG0taW5ieXRlLm8uCglBZGQgYmRtLXRpbWUuby4KCSogbTY4ay9iZG0tY2xvc2UuYzogQWRkIGNvcHlyaWdodCBub3RpY2UuCgkqIG02OGsvYmRtLWZzdGF0LmM6IEFkZCBjb3B5cmlnaHQgbm90aWNlLgoJKiBtNjhrL2JkbS1nZXR0aW1lb2ZkYXkuYzogQWRkIGNvcHlyaWdodCBub3RpY2UuCgkqIG02OGsvYmRtLWluYnl0ZS5jOiBSZW1vdmUuCgkqIG02OGsvYmRtLWlzYXR0eS5jOiBBZGQgY29weXJpZ2h0IG5vdGljZS4KCSogbTY4ay9iZG0tbHNlZWsuYzogQWRkIGNvcHlyaWdodCBub3RpY2UuIEZpeCAmL3wgdGhpbmtvLgoJKiBtNjhrL2JkbS1vcGVuLmM6IEFkZCBjb3B5cmlnaHQgbm90aWNlLgoJKiBtNjhrL2JkbS1yZWFkLmM6IEFkZCBjb3B5cmlnaHQgbm90aWNlLgoJKiBtNjhrL2JkbS1yZW5hbWUuYzogQWRkIGNvcHlyaWdodCBub3RpY2UuCgkqIG02OGsvYmRtLXN0YXQuYzogQWRkIGNvcHlyaWdodCBub3RpY2UuCgkqIG02OGsvYmRtLXN5c3RlbS5jOiBBZGQgY29weXJpZ2h0IG5vdGljZS4KCSogbTY4ay9iZG0tdGltZS5jOiBOZXcuCgkqIG02OGsvYmRtLXVubGluay5jOiBBZGQgY29weXJpZ2h0IG5vdGljZS4KCSogbTY4ay9iZG0td3JpdGUuYzogQWRkIGNvcHlyaWdodCBub3RpY2UuCgoJMjAwNi0wNS0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG02OGsvTWFrZWZpbGUuaW4gKG01MjIzNS1kYnVnLmxkLCBtNTIyMzUtYmRtLmxkKTogTmV3CglzY3JpcHRzLgoKCTIwMDYtMDUtMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL01ha2VmaWxlLmluIChCRE1fU1lTT0JKUyk6IFJlbW92ZSBiZG0tb3V0Ynl0ZS5vLgoJKiBtNjhrL2JkbS1vdXRieXRlLmM6IERlbGV0ZS4KCSogbTY4ay9iZG0tc2VtaWhvc3QuaCAoQkRNX09VVEJZVEUpOiBNYXJrIGFzIG9ic29sZXRlLgoKCTIwMDYtMDUtMjIgIFNhbmRyYSBMb29zZW1vcmUgPHNhbmRyYUBjb2Rlc291cmNlcnkuY29tPgoKCSogbTY4ay9iZG0tc2VtaWhvc3QuaDogQWRkIG5ldyBjb25zdGFudHMgZm9yIGFkZGl0aW9uYWwKCXNlbWlob3N0aW5nIGZ1bmN0aW9ucy4gIEFkZCBuZXcgQkRNX1RSQVAgbWFjcm8gdG8gZW5jYXBzdWxhdGUKCWlubGluZSBhc20uCgkqIG02OGsvYmRtLWV4aXQuYyAoX2V4aXQpOiBVc2UgbmV3IEJETV9UUkFQIG1hY3JvLgoJKiBtNjhrL2JkbS1vdXRieXRlLmMgKG91dGJ5dGUpOiBEaXR0by4KCSogbTY4ay9iZG0taXNycy5jLCBtNjhrL2JkbS1pc3YuYzogRm9ybWVyIEJETV9UUkFQCglub3cgY2FsbGVkIEJETV9UUkFQTlVNLgoJKiBtNjhrL2JkbS1nZGIuaCwgbTY4ay9iZG0tZ2RiLmM6IE5ldyBmaWxlcwoJY29udGFpbmluZyBkZWNsYXJhdGlvbnMgYW5kIGNvbnZlcnNpb24gZnVuY3Rpb25zIGZvciBHREIncyBmaWxlaW8KCXByb3RvY29sLgoJKiBtNjhrL2JkbS1jbG9zZS5jOiBOZXcgZmlsZSB0byBkZWZpbmUgY29ycmVzcG9uZGluZyBmdW5jdGlvbi4KCSogbTY4ay9iZG0tZnN0YXQuYzogRGl0dG8uCgkqIG02OGsvYmRtLWdldHRpbWVvZmRheS5jOiBEaXR0by4KCSogbTY4ay9iZG0taXNhdHR5LmM6IERpdHRvLgoJKiBtNjhrL2JkbS1sc2Vlay5jOiBEaXR0by4KCSogbTY4ay9iZG0tb3Blbi5jOiBEaXR0by4KCSogbTY4ay9iZG0tcmVhZC5jOiBEaXR0by4KCSogbTY4ay9iZG0tcmVuYW1lLmM6IERpdHRvLgoJKiBtNjhrL2JkbS1zdGF0LmM6IERpdHRvLgoJKiBtNjhrL2JkbS1zeXN0ZW0uYzogRGl0dG8uCgkqIG02OGsvYmRtLXVubGluay5jOiBEaXR0by4KCSogbTY4ay9iZG0td3JpdGUuYyBEaXR0by4KCSogbTY4ay9NYWtlZmlsZS5pbjogQWRkIGRlcGVuZGVuY2llcyBmb3IgbmV3IGZpbGVzLgoKCTIwMDYtMDMtMjkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL2JkbS1pc3YuYyAoc29mdHdhcmVfaW5pdF9ob29rKTogRml4IHRyYXAgbnVtYmVyaW5nLgoKCSogbTY4ay9NYWtlZmlsZS5pbiAoQ0ZfU0NSSVBUUyk6IEFkZCBtNTMyOSBib2FyZC4KCVJlb3JkZXIuCgkoKi1kYnVnLmxkLCAqLWJkbS5sZCk6IEFkZCBhcHByb3ByaWF0ZSBJTyBkZWZpbml0aW9uLgoJKG01MzI5ZXZiLWRidWcubGQsIG01MzI5ZXZiLWJkbS5sZCk6IE5ldy4KCSogY2Yuc2MgKEdST1VQKTogUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZS4gIEFkZCBJTyBsaWJyYXJ5LgoKCSogbTY4ay9NYWtlZmlsZS5pbiAoQkRNX0JTUCwgQkRNX09CSlMsIEJETV9JU1JTKTogTmV3LgoJKENGX1NDUklQVFMpOiBSZW5hbWUgZGJ1ZyBzY3JpcHRzLiAgQWRkIGJkbSBzY3JpcHRzLiBBZGQgbTU0ODUKCXNjcmlwdHMuCgkoYWxsKTogQWRkIG5ldyB0YXJnZXRzLgoJKEJETV9CU1ApOiBOZXcgdGFyZ2V0LgoJKGJkbS1pc3YubywgYmRtLWV4aXQubywgYmRtLW91dGJ5dGUubywgYmRtLXNlbWlob3N0Lm8pOiBOZXcKCXRhcmdldHMuCgkoQkRNX0lTUlMpOiBOZXcgdGFyZ2V0cy4KCShtNTIwOGV2Yi5sZCwgbTUyMTNldmIubGQsIG01MjM1ZXZiLmxkLCBtNTI3MmMzLmxkLCBtNTI4MmV2Yi5sZCk6CglSZW5hbWUgYW5kIGFkanVzdC4KCShtNTQ4NWV2Yi1kYnVnKTogTmV3LgoJKG01MjA4ZXZiLWJkbS5sZCwgbTUyMTNldmItYmRtLmxkLCBtNTIzNWV2Yi1iZG0ubGQsCgltNTI3MmMzLWJkbS5sZCwgbTUyODJldmItYmRtLmxkLCBtNTQ4NWV2Yi1iZG0ubGQpOiBOZXcuCgkoaW5zdGFsbCk6IEFkZCBCRE1fQlNQLgoJKiBtNjhrL2JkbS1leGl0LmM6IE5ldwoJKiBtNjhrL2JkbS1pbmJ5dGUuYzogTmV3CgkqIG02OGsvYmRtLW91dGJ5dGUuYzogTmV3CgkqIG02OGsvYmRtLXNlbWlob3N0LmM6IE5ldwoJKiBtNjhrL2JkbS1zZW1paG9zdC5oOiBOZXcKCSogbTY4ay9iZG0taXNycy5jOiBOZXcuCgkqIG02OGsvYmRtLWlzdi5jOiBOZXcuCgkqIGRidWctY2Yuc2M6IFJlbmFtZWQgdG8gLi4uCgkqIGNmLnNjOiAuLi4gaGVyZS4gIEFkZCBiZG0gZmxleGliaWxpdHkuIFJlbW92ZSBHUk9VUAoKCTIwMDYtMDUtMjIgIFNhbmRyYSBMb29zZW1vcmUgPHNhbmRyYUBjb2Rlc291cmNlcnkuY29tPgoKCSogbTY4ay9iZG0tc2VtaWhvc3QuaDogQWRkIG5ldyBjb25zdGFudHMgZm9yIGFkZGl0aW9uYWwKCXNlbWlob3N0aW5nIGZ1bmN0aW9ucy4gIEFkZCBuZXcgQkRNX1RSQVAgbWFjcm8gdG8gZW5jYXBzdWxhdGUKCWlubGluZSBhc20uCgkqIG02OGsvYmRtLWV4aXQuYyAoX2V4aXQpOiBVc2UgbmV3IEJETV9UUkFQIG1hY3JvLgoJKiBtNjhrL2JkbS1vdXRieXRlLmMgKG91dGJ5dGUpOiBEaXR0by4KCSogbTY4ay9iZG0taXNycy5jLCBtNjhrL2JkbS1pc3YuYzogRm9ybWVyIEJETV9UUkFQCglub3cgY2FsbGVkIEJETV9UUkFQTlVNLgoJKiBtNjhrL2JkbS1nZGIuaCwgbTY4ay9iZG0tZ2RiLmM6IE5ldyBmaWxlcwoJY29udGFpbmluZyBkZWNsYXJhdGlvbnMgYW5kIGNvbnZlcnNpb24gZnVuY3Rpb25zIGZvciBHREIncyBmaWxlaW8KCXByb3RvY29sLgoJKiBtNjhrL2JkbS1jbG9zZS5jOiBOZXcgZmlsZSB0byBkZWZpbmUgY29ycmVzcG9uZGluZyBmdW5jdGlvbi4KCSogbTY4ay9iZG0tZnN0YXQuYzogRGl0dG8uCgkqIG02OGsvYmRtLWdldHRpbWVvZmRheS5jOiBEaXR0by4KCSogbTY4ay9iZG0taXNhdHR5LmM6IERpdHRvLgoJKiBtNjhrL2JkbS1sc2Vlay5jOiBEaXR0by4KCSogbTY4ay9iZG0tb3Blbi5jOiBEaXR0by4KCSogbTY4ay9iZG0tcmVhZC5jOiBEaXR0by4KCSogbTY4ay9iZG0tcmVuYW1lLmM6IERpdHRvLgoJKiBtNjhrL2JkbS1zdGF0LmM6IERpdHRvLgoJKiBtNjhrL2JkbS1zeXN0ZW0uYzogRGl0dG8uCgkqIG02OGsvYmRtLXVubGluay5jOiBEaXR0by4KCSogbTY4ay9iZG0td3JpdGUuYyBEaXR0by4KCSogbTY4ay9NYWtlZmlsZS5pbjogQWRkIGRlcGVuZGVuY2llcyBmb3IgbmV3IGZpbGVzLgoKMjAwNi0wOC0zMCAgS2F6dW5vcmkgQXNheWFtYSAgPGFzYXlhbWFAc20uc29ueS5jby5qcD4KCgkqIHNwdS9zeXNjYWxscy5jOiBBZGQgYSBuZXcgYXJndW1lbnQgdG8gX3NlbmRfdG9fcHBlKCkgdG8gCglzcGVjaWZ5IHNpZ25hbCBjb2RlLgoJKiBzcHUvanNyZS5oOiBVcGRhdGUgZGVjbGFyYXRpb24gb2YgX3NlbmRfdG9fcHBlKCkuCgkqIHNwdS9jbG9zZS5jOiBSZXBsYWNlIF9zZW5kX3RvX3BwZV8weDIxMDEoKSBieSBfc2VuZF90b19wcGUoKS4KCSogc3B1L2ZzdGF0LmM6IERpdHRvLgoJKiBzcHUvbHNlZWsuYzogRGl0dG8uCgkqIHNwdS9vcGVuLmM6IERpdHRvLgoJKiBzcHUvcmVhZC5jOiBEaXR0by4KCSogc3B1L3N0YXQuYzogRGl0dG8uCgkqIHNwdS91bmxpbmsuYzogRGl0dG8uCgkqIHNwdS93cml0ZS5jOiBEaXR0by4KCjIwMDYtMDgtMzAgIEthenVub3JpIEFzYXlhbWEgIDxhc2F5YW1hQHNtLnNvbnkuY28uanA+CgoJKiBzcHUvTWFrZWZpbGUuaW46IEFkZCBkZXBlbmRlbmN5LgoKMjAwNi0wOC0yNCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGFybS9saW51eC1jcnQwLmM6IERpc2FibGUgQXJtIHN0dWIgZm9yIFRodW1iLTIuCgoyMDA2LTA4LTIzICBLYXp1bm9yaSBBc2F5YW1hICA8YXNheWFtYUBzbS5zb255LmNvLmpwPgoKCSogc3B1L01ha2VmaWxlLmluOiBBZGQgbmV3IG9iamVjdCBmaWxlcy4KCSogc3B1L3N5c2NhbGxzLmM6IE1vdmUgZWFjaCBzeXN0ZW0gY2FsbCB0byBpbmRpdmlkdWFsIGZpbGUuCgkqIHNwdS9qc3JlLmg6IEFkZCBkZWNsYXJhdGlvbiBvZiBfc2VuZF90b19wcGVfMHgyMTAxKCkuCgkqIHNwdS9jbG9zZS5jOiBOZXcgZmlsZS4gTW92ZWQgZnJvbSBzcHUvc3lzY2FsbHMuYy4KCSogc3B1L2ZzdGF0LmM6IExpa2V3aXNlLgoJKiBzcHUvZ2V0cGlkLmM6IExpa2V3aXNlLgoJKiBzcHUvaXNhdHR5LmM6IExpa2V3aXNlLgoJKiBzcHUva2lsbC5jOiBMaWtld2lzZS4KCSogc3B1L2xzZWVrLmM6IExpa2V3aXNlLgoJKiBzcHUvb3Blbi5jOiBMaWtld2lzZS4KCSogc3B1L3JlYWQuYzogTGlrZXdpc2UuCgkqIHNwdS9zdGF0LmM6IExpa2V3aXNlLgoJKiBzcHUvdW5saW5rLmM6IExpa2V3aXNlLgoJKiBzcHUvd3JpdGUuYzogTGlrZXdpc2UuCgoyMDA2LTA4LTIxICBEYXZpZCBVbmcgIDxkYXZpZHVAbWlwcy5jb20+CgoJKiBtaXBzL01ha2VmaWxlLmluOiBBZGQgcnVsZSBmb3IgY3lnbW9uLm8gYW5kIHBhc3MgdGhlIC1tbm8tbWlwczE2CglvcHRpb24gc2luY2UgaXQgdXNlcyB0aGUgc3lzY2FsbCBpbnN0cnVjdGlvbi4KCjIwMDYtMDgtMTYgIEpvZWwgU2Nob3BwICA8anNjaG9wcEBhdXN0aW4uaWJtLmNvbT4KCgkqIHNwdS9NYWtlZmlsZS5pbjogQWRkIHNwZWNpYWwgY29tcGlsZXIKCW9wdGlvbnMgdG8gcmVkdWNlIHNpemUuCgoyMDA2LTA4LTE2ICBKb2VsIFNjaG9wcCAgPGpzY2hvcHBAYXVzdGluLmlibS5jb20+CgoJKiBzcHUvanNyZS5oKEpTUkVfU1RBVCk6IE5ldyBkZWZpbmUuCgkoc3lzY2FsbF9zdGF0X3QpOiBOZXcgdHlwZS4KCSogc3B1L3N5c2NhbGxzLmMoc3RhdCk6IE5ldyBzeXNjYWxsLgoKMjAwNi0wOC0xNiAgSm9lbCBTY2hvcHAgIDxqc2Nob3BwQGF1c3Rpbi5pYm0uY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgc3B1IHN1cHBvcnQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgkqIHNwdS9NYWtlZmlsZS5pbjogTmV3IGZpbGUuCgkqIHNwdS9hY2xvY2FsLm00OiBEaXR0by4KCSogc3B1L2NvbmZpZ3VyZTogRGl0dG8uCgkqIHNwdS9jb25maWd1cmUuaW46IERpdHRvLgoJKiBzcHUvY3J0MC5jOiBEaXR0by4KCSogc3B1L2V4aXQuYzogRGl0dG8uCgkqIHNwdS9pbml0LmM6IERpdHRvLgoJKiBzcHUvanNyZS5oOiBEaXR0by4KCSogc3B1L3NicmsuYzogRGl0dG8uCgkqIHNwdS9zeXNjYWxscy5jOiBEaXR0by4KCjIwMDYtMDctMDUgIFNoYXVuIEphY2ttYW4gIDxzamFja21hbkBnbWFpbC5jb20+CgoJKiBhcm0vbGludXgtY3J0MC5TOiBSZW1vdmUgZmlsZS4KCSogYXJtL2xpbnV4LWNydDAuYzogTmV3IGZpbGUuIFN1cHBvcnRzIFBJQyBjb2RlLgoKMjAwNi0wNy0wNCAgU2hhdW4gSmFja21hbiAgPHNqYWNrbWFuQGdtYWlsLmNvbT4KCgkqIGFybS9saW51eC1zeXNjYWxsczAuUyAoZnRydW5jYXRlLCBnZXRlZ2lkLCBnZXRldWlkLCBnZXRnaWQsCglnZXRncm91cHMsIGdldHBnaWQsIGdldHBncnAsIGdldHVpZCwgbGNob3duLCBwYXVzZSwgcGlwZSwKCXNldHBnaWQsIHNldGdpZCwgc2V0c2lkLCBzZXR1aWQsIHNpZ3Byb2NtYXNrLCBzeW5jLCB1bmFtZSk6IE5ldwoJc3lzdGVtIGNhbGwuCgoyMDA2LTA2LTMwICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIG0zMmMvY3J0MC5TIChkb25lX2luaWxpc3QpOiBGaXggZHdhcmYyIGFkZHJlc3Mgc2l6ZXMuCgoyMDA2LTA2LTIzICBTaGF1biBKYWNrbWFuICA8c2phY2ttYW5AZ21haWwuY29tPgoKCSogYXJtL2VsZi1saW51eC5zcGVjczogTmV3IGZpbGUuCgoyMDA2LTA2LTEzICBTYW5kcmEgTG9vc2Vtb3JlIDxzYW5kcmFAY29kZXNvdXJjZXJ5LmNvbT4KCiAgICAgICAgKiBhcm0vc3lzY2FsbHMuYyAoX3VubGluaywgaXNhdHR5LCBfc3lzdGVtLCBfcmVuYW1lKToKICAgICAgICBNYWtlIHRoZW0gZG8gc29tZXRoaW5nIHVzZWZ1bCBpbiB0aGUgQVJNX1JESV9NT05JVE9SIGNhc2UuCgoyMDA2LTA2LTA4ICBGcmVkIEZpc2ggIDxmbmZAc3BlY2lmaXguY29tPgoKCSogbWlwcy9pZHQubGQsIG1pcHMvaWR0MzIubGQsIG1pcHMvaWR0NjQubGQsIG1pcHMvbnVsbG1vbi5sZCwKCW1pcHMvcG1vbi5sZDogIEtlZXAgc3BlY2lhbCBzZWN0aW9ucyBnZW5lcmF0ZWQgYnkgbWlwcyBnY2MuCgoyMDA2LTA2LTA1ICBTaGF1biBKYWNrbWFuICA8c2phY2ttYW5AZ21haWwuY29tPgoKCSogYXJtL2xpbnV4LXN5c2NhbGxzMC5TIChyZWJvb3QpOiBSZW1vdmUuCgkqIGFybS9saW51eC1zeXNjYWxsczEuYyAocmVib290KTogTmV3IGZ1bmN0aW9uLgoKMjAwNi0wNi0wNSAgU2hhdW4gSmFja21hbiAgPHNqYWNrbWFuQGdtYWlsLmNvbT4KCgkqIGFybS9zeXNjYWxscy5jIChraWxsKSBbQVJNX1JESV9NT05JVE9SXTogVXNlIHRoZSBzaWduYWwKCWFyZ3VtZW50IHRvIGNob29zZSBhbiBBRFAgZXhjZXB0aW9uIHJlYXNvbi4KCSogYXJtL2xpYmNmdW5jLmMgKGFib3J0KTogUmVtb3ZlIHRoaXMgZnVuY3Rpb24uCgoyMDA2LTA1LTMwICBTaGF1biBKYWNrbWFuICA8c2phY2ttYW5AZ21haWwuY29tPgoKCSogYXJtL01ha2VmaWxlLmluOiBBZGQgTGludXggc3lzY2FsbCBpbnRlcmZhY2UuCgkqIGFybS9saW51eC1jcnQwLlM6IE5ldyBmaWxlLgoJKiBhcm0vbGludXgtc3lzY2FsbC5oOiBOZXcgZmlsZS4KCSogYXJtL2xpbnV4LXN5c2NhbGxzMC5TOiBOZXcgZmlsZS4KCSogYXJtL2xpbnV4LXN5c2NhbGxzMS5jOiBOZXcgZmlsZS4KCjIwMDYtMDUtMjMgIEZyZWQgRmlzaCAgPGZuZkBzcGVjaWZpeC5jb20+CgoJKiBtaXBzL2NvbmZpZ3VyZS5pbjogQ2hhbmdlIG1pcHNpc2E2NC0qLSogdG8KCW1pcHNpc2E2NCotKi0qIHRvIGNhdGNoIG1pbm9yIHZhcmlhdGlvbnMgbGlrZQoJbWlwc2lzYTY0c2IxLgoJKiBtaXBzL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDA2LTA1LTEwICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmluOiBQYXNzIHNvbWUgYWRkaXRpb25hbCBmbGFncyBpbiBGTEFHU19UT19QQVNTLgoJKiBjb25maWd1cmUuaW46IEFkZCBhZGRpdGlvbmFsIGZsYWdzIHdoZW4gY3JlYXRpbmcgTWFrZWZpbGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgkqIGFybS9jb25maWd1cmUKCSogYXJtL2NvbmZpZ3VyZS5pbjogU2V0IHdpdGhfbXVsdGlzdWJkaXIgd2hlbiBjcmVhdGluZyBNYWtlZmlsZS4KCSogY3Jpcy9jb25maWd1cmUuaW46IERpdHRvLgoJKiBkMzB2L2NvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIGZydi9jb25maWd1cmUuaW46IERpdHRvLgoJKiBpMzg2L2NvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIGlxMjAwMC9jb25maWd1cmUuaW46IERpdHRvLgoJKiBsaWJub3N5cy9jb25maWd1cmUuaW46IERpdHRvLgoJKiBtMzJjL2NvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIG0zMnIvY29uZmlndXJlLmluOiBEaXR0by4KCSogbTY4aGMxMS9jb25maWd1cmUuaW46IERpdHRvLgoJKiBtNjhrL2NvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIG1jb3JlL2NvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIG1pcHMvY29uZmlndXJlLmluOiBEaXR0by4KCSogbW4xMDIwMC9jb25maWd1cmUuaW46IERpdHRvLgoJKiBtbjEwMzAwL2NvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIG10L2NvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIHBhL2NvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIHJzNjAwMC9jb25maWd1cmUuaW46IERpdHRvLgoJKiBzcGFyYy9jb25maWd1cmUuaW46IERpdHRvLgoJKiBjcmlzL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgkqIGQzMHYvY29uZmlndXJlOiBEaXR0by4KCSogZnJ2L2NvbmZpZ3VyZTogRGl0dG8uCgkqIGkzODYvY29uZmlndXJlOiBEaXR0by4KCSogaXEyMDAwL2NvbmZpZ3VyZTogRGl0dG8uCgkqIGxpYm5vc3lzL2NvbmZpZ3VyZTogRGl0dG8uCgkqIG0zMmMvY29uZmlndXJlOiBEaXR0by4KCSogbTMyci9jb25maWd1cmU6IERpdHRvLgoJKiBtNjhoYzExL2NvbmZpZ3VyZTogRGl0dG8uCgkqIG02OGsvY29uZmlndXJlOiBEaXR0by4KCSogbWNvcmUvY29uZmlndXJlOiBEaXR0by4KCSogbWlwcy9jb25maWd1cmU6IERpdHRvLgoJKiBtbjEwMjAwL2NvbmZpZ3VyZTogRGl0dG8uCgkqIG1uMTAzMDAvY29uZmlndXJlOiBEaXR0by4KCSogbXQvY29uZmlndXJlOiBEaXR0by4KCSogcGEvY29uZmlndXJlOiBEaXR0by4KCSogcnM2MDAwL2NvbmZpZ3VyZTogRGl0dG8uCgkqIHNwYXJjL2NvbmZpZ3VyZTogRGl0dG8uCgoyMDA2LTA0LTE5ICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogTW9kaWZpZWQgdG8gc3VwcG9ydCBhdXRvY29uZiAyLjU5LgoJKiAqL2NvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgkqICovY29uZmlndXJlOiBEaXR0by4KCSogd2luY2UvYWNsb2NhbC5tNDogRGl0dG8uCgkqIGFjaW5jbHVkZS5tNDogTmV3IGZpbGUuCgkqIGFjbG9jYWwubTQ6IERpdHRvLgoJKiBhcm0vYWNsb2NhbC5tNDogRGl0dG8uCgkqIGNyaXMvYWNsb2NhbC5tNDogRGl0dG8uCgkqIGNyeC9hY2xvY2FsLm00OiBEaXR0by4KCSogZDMwdi9hY2xvY2FsLm00OiBEaXR0by4KCSogZnIzMC9hY2xvY2FsLm00OiBEaXR0by4KCSogZnJ2L2FjbG9jYWwubTQ6IERpdHRvLgoJKiBocDc0eC9hY2xvY2FsLm00OiBEaXR0by4KCSogaTM4Ni9hY2xvY2FsLm00OiBEaXR0by4KCSogaTk2MC9hY2xvY2FsLm00OiBEaXR0by4KCSogaXEyMDAwL2FjbG9jYWwubTQ6IERpdHRvLgoJKiBsaWJub3N5cy9hY2xvY2FsLm00OiBEaXR0by4KCSogbTMyYy9hY2xvY2FsLm00OiBEaXR0by4KCSogbTMyci9hY2xvY2FsLm00OiBEaXR0by4KCSogbTY4aGMxMS9hY2xvY2FsLm00OiBEaXR0by4KCSogbTY4ay9hY2xvY2FsLm00OiBEaXR0by4KCSogbWNvcmUvYWNsb2NhbC5tNDogRGl0dG8uCgkqIG1pcHMvYWNsb2NhbC5tNDogRGl0dG8uCgkqIG1uMTAyMDAvYWNsb2NhbC5tNDogRGl0dG8uCgkqIG1uMTAzMDAvYWNsb2NhbC5tNDogRGl0dG8uCgkqIG10L2FjbG9jYWwubTQ6IERpdHRvLgoJKiBwYS9hY2xvY2FsLm00OiBEaXR0by4KCSogcnM2MDAwL2FjbG9jYWwubTQ6IERpdHRvLgoJKiBzcGFyYy9hY2xvY2FsLm00OiBEaXR0by4KCSogc3BhcmMvbGlic3lzL2FjbG9jYWwubTQ6IERpdHRvLgoJKiB4c3Rvcm15MTYvYWNsb2NhbC5tNDogRGl0dG8uCgoyMDA2LTA0LTE4ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZG9jL3BvcnRpbmcudGV4aTogRG9jdW1lbnQgbGliZ2xvc3MgYnVpbGQgY29udmVudGlvbnMuCgoyMDA2LTAzLTIyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbXQvc3RhcnR1cC0xNi0wMDIuUyAoLmludGVybmFsX2lvKTogTWFrZSBAbm9iaXRzLgoJKiBtdC9zdGFydHVwLTE2LTAwMy5TICguaW50ZXJuYWxfaW8pOiBNYWtlIEBub2JpdHMuCgkqIG10L3N0YXJ0dXAtbXMyLlMgKC5pbnRlcm5hbF9pbyk6IE1ha2UgQG5vYml0cy4KCjIwMDYtMDMtMDIgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogbTMyYy9leGl0LlM6IFByZXNlcnZlIHIxLgoKMjAwNi0wMi0yNCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGFybS9yZWRib290LWNydDAuUzogVXNlIGNwcyBpbiBUaHVtYi0yIG1vZGUuCgoyMDA2LTAyLTIyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbTY4ay9NYWtlZmlsZS5pbiAoQ0ZfU0NSSVBUUyk6IE5ldy4KCShhbGwpOiBBZGQgQ0ZfU0NSSVBUUy4KCShtNTIwOGV2Yi5sZCwgbTUyMTNldmIubGQsIG01MjM1ZXZiLmxkLCBtNTI3MmMzLmxkLAoJbTUyODJldmIubGQpOiBOZXcgdGFyZ2V0cwoJKGluc3RhbGwpOiBJdGVyYXRlIG92ZXIgQ0ZfU0NSSVBUUy4KCSogbTY4ay9jcnQwLlM6IERvbid0IHVzZSBkYnJhIG9uIGFueSBjZiBjaGlwcy4KCSogbTY4ay9kYnVnLWNmLnNjOiBOZXcuCgoyMDA2LTAyLTA3ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogYXJtL2NydDAuUzogQWRkIFRodW1iLTIgc3RhcnR1cCBjb2RlLgoJKiBhcm0vcmVkYm9vdC1jcnQwLlM6IERpdHRvLgoJKiBhcm0vbGliY2Z1bmMuYyAoZG9fQW5nZWxTV0kpOiBVc2UgQW5nZWxTV0lJbnNuLgoJKiBhcm0vc3dpLmggKEFuZ2VsU1dJSW5zbiwgQW5nZWxTV0lBc20pOiBEZWZpbmUuCgkqIGFybS90cmFwLlM6IERpc2FibGUgZm9yIFRodW1iLTIuCgoyMDA2LTAxLTE4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbXQvbXMyLmxkICguc3JhbSk6IENvcnJlY3QgdHlwbyBpbiBzZWN0aW9uIG5hbWVzLgoKMjAwNi0wMS0xNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG10L01ha2VmaWxlLmluIChTQ1JJUFRTLCBDUlQwKTogQWRkIG1zMiBmaWxlcy4KCShjcnQwLW1zMi5vKTogTmV3IHRhcmdldC4KCSogbXQvY3J0MC1tczIuUywgbXQvZXhpdC1tczIuYywgbXQvbXMyLmxkLCBtdC9zdGFydHVwLW1zMi5TOiBOZXcuCgoyMDA2LTAxLTA0ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogbTY4ay9iY2MubGQ6IEFkZCAuZ290LnBsdCBhbmQgLmdvdAoJKiBtNjhrL2lkcC5sZDogRGl0dG8uCgkqIG02OGsvaWRwZ2RiOiBEaXR0by4KCSogbTY4ay9tdm1lMTM1LmxkOiBEaXR0by4KCSogbTY4ay9zYmM1MjA0LmxkOiBEaXR0by4KCSogbTY4ay9zYmM1MjA2LmxkOiBEaXR0by4KCSogbTY4ay9zaW0ubGQ6IERpdHRvLgoKMjAwNS0xMi0xMyAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBtMzJjL2NydDAuUzogQWRkIHN1cHBvcnQgZm9yIHByZWluaXQsIGluaXQsIGFuZCBmaW5pIGFycmF5cywgYW5kCgkuaW5pdCBhbmQgLmZpbmkgcHJvY2Vzc2luZy4KCSogbTMyYy9jcnRuLlM6IExpa2V3aXNlLgoJKiBtMzJjL2V4aXQuUzogTGlrZXdpc2UuCgoyMDA1LTEyLTEzICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbXQvMTYtMDAyLmxkOiBDaGFuZ2UgYXJjaGl0ZWN0dXJlIHRvICdtdCcuICBSZW1vdmUKCVNFQVJDSF9ESVIuCgkqIG10LzE2LTAwMy5sZDogTGlrZXdpc2UuCgkqIG10LzY0LTAwMS5sZDogTGlrZXdpc2UuCgkqIG10L01ha2VmaWxlLmluOiBDaGFuZ2UgY29tbWVudCB0byByZWZlcmVuY2UgJ210JyByYXRoZXIgdGhhbiAnbXMxJy4KCSogbXQvY3J0MC5TOiBMaWtld2lzZS4KCjIwMDUtMTItMTIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWd1cmUuaW46IFJlcGxhY2UgbXMxIGFyY2ggd2l0aCBtdCBhcmNoLgoJKiBjb25maWd1cmU6IFJlYnVpbHQuCgkqIG10OiBSZW5hbWVkIGZyb20gbXMxIGRpci4KCjIwMDUtMTItMDYgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBtNjhrL2JjYy5sZDogQWRkIC50ZXh0LiosIC5yb2RhdGEuKiwgLmRhdGEuKiBhbmQgLmJzcy4qLgoJKiBtNjhrL2lkcC5sZDogRGl0dG8uCgkqIG02OGsvaWRwZ2RiOiBEaXR0by4KCSogbTY4ay9tdm1lMTM1LmxkOiBEaXR0by4KCSogbTY4ay9zYmM1MjA0LmxkOiBEaXR0by4KCSogbTY4ay9zYmM1MjA2LmxkOiBEaXR0by4KCSogbTY4ay9zaW0ubGQ6IERpdHRvLgoKMjAwNS0xMS0zMCAgU2hhdW4gSmFja21hbiAgPHNqYWNrbWFuQGdtYWlsLmNvbT4KCgkqIGxpYm5vc3lzL01ha2VmaWxlLmluIChPQkpTKTogQWRkIGNob3duLCByZWFkbGluaywgYW5kIHN5bWxpbmsuCgkqIGxpYm5vc3lzL2Nob3duLmM6IE5ldyBmaWxlLgoJKiBsaWJub3N5cy9yZWFkbGluay5jOiBOZXcgZmlsZS4KCSogbGlibm9zeXMvc3ltbGluay5jOiBOZXcgZmlsZS4KCjIwMDUtMTEtMzAgIFNoYXVuIEphY2ttYW4gIDxzamFja21hbkBnbWFpbC5jb20+CgoJKiBhcm0vbGliY2Z1bmMuYyAoY2xvY2ssIHNsZWVwLCB1c2xlZXApOiBOZXcgZnVuY3Rpb25zLgoJKiBhcm0vc3lzY2FsbHMuYyAoX2Nsb2NrKTogTmV3IGZ1bmN0aW9uLgoJKF90aW1lcyk6IENhbGwgX2Nsb2NrLgoKMjAwNS0xMS0xNyAgU2hhdW4gSmFja21hbiAgPHNqYWNrbWFuQGdtYWlsLmNvbT4KCgkqIGxpYmdsb3NzL2FybS9saWJjZnVuYy5jIChpc2F0dHkpOiBDYWxsIF9pc2F0dHkuIEdEQiBub3cgc3VwcG9ydHMKCXRoZSBJc1RUWSBTV0kgdGhhdCBfaXNhdHR5IGNhbGxzLgoKMjAwNS0xMS0xNyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBjcmlzL2xpbnVuaXN0ZC5oOiBEb24ndCByZWRlZmluZSBlcnJubyBhcyBleHRlcm4gaW50LgoKMjAwNS0xMC0yMCAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBhcm0vY29uZmlndXJlLmluOiBBZGQgQUNfU1VCU1QgZm9yIEJVSUxEX0NSVDBfVFJVRSBhbmQKCUJVSUxEX0NSVDBfRkFMU0UuCgkqIGFybS9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA1LTEwLTE3ICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIGFybS9jb25maWd1cmUuaW46IFN1cHBvcnQgYnVpbGRpbmcgY3J0MC5vIHdoZW4gc3lzY2FsbHMKCWFyZSBkaXNhYmxlZCBpbiBuZXdsaWIuCgkqIGFybS9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwNS0xMC0wMyAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXguY29tPgoKCSogbWlwcy9hcnJheS5sZCwgbWlwcy9jZmUubGQsIG1pcHMvZGRiLWtzZWcwLmxkLCBtaXBzL2RkYi5sZCwKCW1pcHMvZHZlLmxkLCBtaXBzL2lkdC5sZCwgbWlwcy9pZHQzMi5sZCwgbWlwcy9pZHQ2NC5sZCwKCW1pcHMvaWR0ZWNvZmYubGQsIG1pcHMvam1yMzkwNGFwcC1qYXZhLmxkLCBtaXBzL2ptcjM5MDRhcHAubGQsCglqbXIzOTA0ZHJhbS1qYXZhLmxkLCBtaXBzL2ptcjM5MDRkcmFtLmxkLCBtaXBzL2xzaS5sZCwgbWlwcy9udWxsbW9uLmxkLAoJbWlwcy9wbW9uLmxkOiBBZGQgc3VwcG9ydCBmb3IgLmJzcy4qIHNlY3Rpb25zLgoKMjAwNS0wOS0yMyAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXguY29tPgoKCSogbWlwcy9hcnJheS5sZCwgbWlwcy9jZmUubGQsIG1pcHMvZGRiLWtzZWcwLmxkLCBtaXBzL2RkYi5sZCwKCW1pcHMvZHZlLmxkLCBtaXBzL2lkdC5sZCwgbWlwcy9pZHQzMi5sZCwgbWlwcy9pZHQ2NC5sZCwKCW1pcHMvaWR0ZWNvZmYubGQsIG1pcHMvam1yMzkwNGFwcC1qYXZhLmxkLCBtaXBzL2ptcjM5MDRhcHAubGQsCglqbXIzOTA0ZHJhbS1qYXZhLmxkLCBtaXBzL2ptcjM5MDRkcmFtLmxkLCBtaXBzL2xzaS5sZCwgbWlwcy9udWxsbW9uLmxkLAoJbWlwcy9wbW9uLmxkOiBDaGFuZ2UgeCogdG8geC4qIGluIGV4aXN0aW5nIGxpbmtvbmNlIGxpbmVzLiAgQWRkCglzdXBwb3J0IGZvciAuZ251LmxpbmtvbmNlLmIuKi4KCjIwMDUtMDgtMzAgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgoKCSogcnM2MDAwL01ha2VmaWxlLmluIChWUEFUSCk6IFVzZSBjb2xvbiBhcyBzZXBhcmF0b3IuCgoyMDA1LTA4LTI0ICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgogICAgICAgICogbXMxL2FjY2Vzcy5jOiBDaGFuZ2UgY29weXJpZ2h0IG5vdGljZS4KCjIwMDUtMDgtMTkgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogbTMyYy9NYWtlZmlsZS5pbiAobTE2Y21vbi5sZCwgbTMyY21vbi5sZCk6IEZpeCBvdXRwdXQgbmFtZXMuCgkoKi5vKTogQWRkIGRlcGVuZGVuY2llcy4KCSogbTMyYy9tMzJjc3lzLmg6IE1vdmUgc3lzY2FsbCBsb2NhdGlvbiB0byAweDQwMCBhcyBwZXIgUmVuZXNhcwoJcmVjb21tZW5kYXRpb25zLgoKMjAwNS0wOC0xOCAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBtMzJjL01ha2VmaWxlLmluOiBCbG9jayBvdXQgbWVtb3J5IHJlZ2lvbnMgcmVzZXJ2ZWQgZm9yIG1vbml0b3JzCglhbmQgc2ltdWxhdG9ycy4gIEFkZCBtb25pdG9yIGxpbmsgc2NyaXB0cy4KCjIwMDUtMDgtMTYgIFNoYXVuIEphY2ttYW4gIDxzamFja21hbkBnbWFpbC5jb20+CgoJKiBhcm0vc3lzY2FsbHMuYyAoaW5pdGlhbGlzZV9tb25pdG9yX2hhbmRsZXMpOiBTZXQKCW1vbml0b3Jfc3RkZXJyIHRvIHRoZSByZXN1bHQgb2YgU1dJX29wZW4oIjp0dCIsICJhIikKCWluc3RlYWQgb2Ygc2ltcGx5IGR1cGxpY2F0aW5nIHN0ZG91dC4KCjIwMDUtMDgtMTAgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgbTMyYyBzdXBwb3J0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkCgkqIG0zMmM6IE5ldyBkaXJlY3RvcnksIFJlbmVzYXMgUjhDL00xNkMvTTMyQyBzdXBwb3J0LgoJKiBtMzJjL2Fib3J0LlMgbTMyYy9hcmd2bGVuLlMgbTMyYy9hcmd2LlMgbTMyYy9jaGRpci5TLCAKCW0zMmMvY2htb2QuUyBtMzJjL2Nsb3NlLlMgbTMyYy9jb25maWd1cmUgbTMyYy9jb25maWd1cmUuaW4sCgltMzJjL2NydDAuUywgbTMyYy9jcnRuLlMsIG0zMmMvZXhpdC5TLCBtMzJjL2ZzdGF0LlMsCgltMzJjL2dlbnNjcmlwdCwgbTMyYy9nZXRwaWQuUywgbTMyYy9nZXR0aW1lb2ZkYXkuUywKCW0zMmMvaGVhcHRvcC5TLCBtMzJjL2lzYXR0eS5TLCBtMzJjL2tpbGwuUywgbTMyYy9saW5rLlMsCgltMzJjL2xzZWVrLlMsIG0zMmMvbTMyY3N5cy5oLCBtMzJjL20zMmMudG1wbCwgbTMyYy9NYWtlZmlsZS5pbiwKCW0zMmMvb3Blbi5TLCBtMzJjL3JlYWQuUywgbTMyYy9zYnJrLmMsIG0zMmMvc3RhdC5TLCBtMzJjL3RpbWUuUywKCW0zMmMvdGltZXMuUywgbTMyYy91bmxpbmsuUywgbTMyYy91dGltZS5TLCBtMzJjL3dyaXRlLlM6IE5ldyBmaWxlcwoKMjAwNS0wOC0wMiAgU2hhdW4gSmFja21hbiAgPHNqYWNrbWFuQGdtYWlsLmNvbT4KCiAgICAgICAgKiBsaWJnbG9zcy9hcm0vbGliY2Z1bmMuYyAoaXNhdHR5KTogTmV3IGZ1bmN0aW9uLgoKMjAwNS0wOC0wMiAgU2hhdW4gSmFja21hbiAgPHNqYWNrbWFuQGdtYWlsLmNvbT4KCiAgICAgICAgKiBsaWJnbG9zcy9hcm0vc3lzY2FsbHMuYyAoX2V4aXQpOiBDYWxsIF9raWxsIHdpdGggdGhlIHNlY29uZAogICAgICAgIGFyZ3VtZW50IHNldCB0byAtMSwgd2hpY2ggaXMgYW4gaW52YWxpZCBzaWduYWwgbnVtYmVyLgogICAgICAgIChfa2lsbCk6IENvbW1lbnQgYW5kIGNvZGluZyBzdHlsZSBjaGFuZ2VzIG9ubHkuCiAgICAgICAgKF9yYWlzZSk6IFJlbW92ZSBmdW5jdGlvbi4KCjIwMDUtMDctMTkgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBhcm0vY3J0MC5TOiBFbnN1cmUgZG91Ymxld29yZCBzdGFjayBhbGlnbm1lbnQuCgoyMDA1LTA3LTE4ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJpY2hhcmRAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG1pcHMvYXJyYXkubGQgKC5zZGF0YSk6IEluY2x1ZGUgLmdudS5saW5rb25jZS5zLiosIG5vdAoJLmdudS5saW5rb25jZS5zKi4KCSguc2Jzcyk6IEluY2x1ZGUgLnNic3MuKiBhbmQgLmdudS5saW5rb25jZS5zYi4qLgoJKiBtaXBzL2NmZS5sZCwgbWlwcy9kZGIta3NlZzAubGQsIG1pcHMvZGRiLmxkLCBtaXBzL2R2ZS5sZCwKCSogbWlwcy9pZHQzMi5sZCwgbWlwcy9pZHQ2NC5sZCwgbWlwcy9pZHRlY29mZi5sZCwgbWlwcy9pZHQubGQsCgkqIG1pcHMvam1yMzkwNGFwcC1qYXZhLmxkLCBtaXBzL2ptcjM5MDRhcHAubGQsCgkqIG1pcHMvam1yMzkwNGRyYW0tamF2YS5sZCwgbWlwcy9qbXIzOTA0ZHJhbS5sZCwKCSogbWlwcy9sc2kubGQsIG1pcHMvbnVsbG1vbi5sZCwgbWlwcy9wbW9uLmxkOiBBcyBmb3IgbWlwcy9hcnJheS5sZC4KCjIwMDUtMDctMTggIFNoYXVuIEphY2ttYW4gIDxzamFja21hbkBnbWFpbC5jb20+CgoJKiBsaWJnbG9zcy9hcm0vbGliY2Z1bmMuYyAoYWJvcnQpOiBDYWxsIF9leGl0IGluc3RlYWQgb2YgdGhlIFJESSBzd2kuCgkoYWxhcm0pOiBBZGQgdGhlIHdlYWsgYXR0cmlidXRlLgoJKHBhdXNlKTogTmV3IGZ1bmN0aW9uLiBSZXR1cm4gRU5PU1lTLgoJKiBsaWJnbG9zcy9hcm0vc3lzY2FsbHMuYyAoX2dldHBpZCk6IEFkZCB0aGUgd2VhayBhdHRyaWJ1dGUuCgkoX2ZzdGF0KTogRGl0dG8uCgkoX3N0YXQpOiBEaXR0by4KCShfbGluayk6IERpdHRvLiBSZXR1cm4gRU5PU1lTLgoJKF91bmxpbmspOiBDYWxsIHRoZSBzd2kgaW5zdGVhZCBvZiByZXR1cm5pbmcgLTEuCgkoX3JhaXNlKTogQWRkIHRoZSB3ZWFrIGF0dHJpYnV0ZS4gUmV0dXJuIEVOT1NZUy4KCShpc2F0dHkpOiBSZW5hbWUgdG8gX2lzYXR0eS4gQ2FsbCB0aGUgc3dpIGluc3RlYWQgb2YgcmV0dXJuaW5nIDEuCgkoX3N5c3RlbSk6IENhbGwgdGhlIHN3aSBpbnN0ZWFkIG9mIHJldHVybmluZyBFTk9TWVMuCgkoX3JlbmFtZSk6IERpdHRvLgoKMjAwNS0wNy0wNiAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgbXMxIGNhc2UuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogbXMxLzE2LTAwMi5sZDogTmV3LgoJKiBtczEvMTYtMDAzLmxkOiBOZXcuCgkqIG1zMS82NC0wMDEubGQ6IE5ldy4KCSogbXMxL2FjY2Vzcy5jOiBOZXcuCgkqIG1zMS9jaG1vZC5jOiBOZXcuCgkqIG1zMS9jbG9zZS5jOiBOZXcuCgkqIG1zMS9jb25maWd1cmU6IE5ldy4KCSogbXMxL2NvbmZpZ3VyZS5pbjogTmV3LgoJKiBtczEvY3J0MC0xNi0wMDIuUzogTmV3LgoJKiBtczEvY3J0MC0xNi0wMDMuUzogTmV3LgoJKiBtczEvY3J0MC02NC0wMDEuUzogTmV3LgoJKiBtczEvY3J0MC5TOiBOZXcuCgkqIG1zMS9leGl0LTE2LTAwMi5jOiBOZXcuCgkqIG1zMS9leGl0LTE2LTAwMy5jOiBOZXcuCgkqIG1zMS9leGl0LTY0LTAwMS5jOiBOZXcuCgkqIG1zMS9leGl0LmM6IE5ldy4KCSogbXMxL2ZzdGF0LmM6IE5ldy4KCSogbXMxL2dldHBpZC5jOiBOZXcuCgkqIG1zMS9nZXR0aW1lLmM6IE5ldy4KCSogbXMxL2lzYXR0eS5jOiBOZXcuCgkqIG1zMS9raWxsLmM6IE5ldy4KCSogbXMxL2xzZWVrLmM6IE5ldy4KCSogbXMxL01ha2VmaWxlLmluOiBOZXcuCgkqIG1zMS9vcGVuLmM6IE5ldy4KCSogbXMxL3JlYWQuYzogTmV3LgoJKiBtczEvc2Jyay5jOiBOZXcuCgkqIG1zMS9zdGFydHVwLTE2LTAwMi5TOiBOZXcuCgkqIG1zMS9zdGFydHVwLTE2LTAwMy5TOiBOZXcuCgkqIG1zMS9zdGFydHVwLTY0LTAwMS5TOiBOZXcuCgkqIG1zMS9zdGF0LmM6IE5ldy4KCSogbXMxL3RpbWUuYzogTmV3LgoJKiBtczEvdGltZXMuYzogTmV3LgoJKiBtczEvdHJhcC5oOiBOZXcuCgkqIG1zMS90cmFwLlM6IE5ldy4KCSogbXMxL3VubGluay5jOiBOZXcuCgkqIG1zMS91dGltZS5jOiBOZXcuCgkqIG1zMS93cml0ZS5jOiBOZXcuCgoyMDA1LTA1LTE5ICBDb3Jpbm5hIFZpbnNjaGVuICA8dmluc2NoZW5AcmVkaGF0LmNvbT4KCgkqIGFybS9lbGYtcmVkYm9vdC5sZCwgaXEyMDAwL3NpbS5sZCwgbTY4aGMxMS9zaW0tdmFsaWQtbTY4aGMxMS5sZCwKCSogbTY4aGMxMS9zaW0tdmFsaWQtbTY4aGMxMi5sZCwgbWNvcmUvZWxmLWNtYi5sZCwgbWlwcy9jZmUubGQsCgkqIG1pcHMvZGRiLWtzZWcwLmxkLCBtaXBzL2RkYi5sZCwgbWlwcy9kdmUubGQsIG1pcHMvaWR0LmxkLAoJKiBtaXBzL2lkdDMyLmxkLCBtaXBzL2lkdDY0LmxkLCBtaXBzL2ptcjM5MDRhcHAtamF2YS5sZCwKCSogbWlwcy9qbXIzOTA0YXBwLmxkLCBtaXBzL2ptcjM5MDRkcmFtLWphdmEubGQsIG1pcHMvam1yMzkwNGRyYW0ubGQsCgkqIG1pcHMvbnVsbG1vbi5sZCwgbWlwcy9wbW9uLmxkLCBtbjEwMjAwL2V2YWwubGQsIG1uMTAyMDAvc2ltLmxkLAoJKiBtbjEwMzAwL2FzYjIzMDMubGQsIG1uMTAzMDAvYXNiMjMwNS5sZCwgbW4xMDMwMC9ldmFsLmxkLAoJKiBtbjEwMzAwL3NpbS5sZCwgcnM2MDAwL2Fkcy5sZCwgcnM2MDAwL21ieC5sZCwgcnM2MDAwL3llbGxvd2tuaWZlLmxkLAoJKiBzaC9zaDFsY2V2Yi5sZCwgc2gvc2gybGNldmIubGQsIHNoL3NoM2JiLmxkLCBzaC9zaDNsY2V2Yi5sZCwKCSogc3BhcmMvZWxmc2ltLmxkLCBzcGFyYy9leDkzMC5sZCwgc3BhcmMvZXg5MzEubGQsIHNwYXJjL2V4OTM0LmxkLAoJKiBzcGFyYy9zcGFyYzg2eC5sZCwgeHN0b3JteTE2L2V2YV9hcHAubGQsIHhzdG9ybXkxNi9ldmFfc3R1Yi5sZCwKCSogeHN0b3JteTE2L3NpbV9oaWdoLmxkLCB4c3Rvcm15MTYvc2ltX3JvbS5sZDogQWRkIC5kZWJ1Z19yYW5nZXMKCXNlY3Rpb24uCgoyMDA1LTA1LTA1ICBUb2JpYXMgQW5kZXJiZXJnICA8dG9iaWFzLmFuZGVyYmVyZ0BheGlzLmNvbT4KCiAgICAgICAgKiBhcm0vc3lzY2FsbHMuYyAoZ2V0X2Vycm5vKTogRml4IG91dHB1dCByZWdpc3RlciBjb25zdHJhaW50LgoKMjAwNS0wNS0wNSAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN0LmNvbT4KCiAgICAgICAgKiByczYwMDAvc2ltLWdldHJ1c2FnZS5TOiBOZXcgZmlsZSwgYnJva2VuIG91dCBvZjoKICAgICAgICAoc2ltdWxhdG9yLlMpLgogICAgICAgICogcnM2MDAwL01ha2VmaWxlLmluIChTSU1fT0JKUyk6IEFkZCBzaW0tZ2V0cnVzYWdlLm8uCiAgICAgICAgKHNpbS1nZXRydXNhZ2Uubyk6IE5ldyBydWxlLgoKMjAwNS0wNC0yOCAgU2hhdW4gSmFja21hbiAgPHNqYWNrbWFuQGdtYWlsLmNvbT4KCgkqIGxpYmdsb3NzL3N5c2NhbGxzLmMgKGdldF9lcnJubyk6IEFkZCBhbiBvdXRwdXQgcmVnaXN0ZXIgY29uc3RyYWludC4KCjIwMDUtMDQtMTkgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogbWlwcy9yZWdzLlM6IFNpZ24gZXh0ZW5kIGNvbnN0YW50cyBmb3IgbWlwczY0IGFuZCB1bmlmeQogICAgICAgIGFkZHJlc3MgaGFuZGxpbmcuCgoyMDA1LTA0LTEyICBTaGF1biBKYWNrbWFuICA8c2phY2ttYW5AZ21haWwuY29tPgoKCSogbGliZ2xvc3MvYXJtL01ha2VmaWxlLmluIChSRFBNT05fQlNQKTogbGlicmRwbW9uLmEgd2FzIGVtcHR5IGR1ZSAKCXRvIGEgdHlwby4gRml4ZWQuCgkoUkRJTU9OX0JTUCk6IERpdHRvLgoKMjAwNS0wNC0xMiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogbWlwcy9hcnJheS5sZCwgbWlwcy9jZmUubGQsIG1pcHMvZHZlLmxkLCBtaXBzL2lkdDMyLmxkLAoJKiBtaXBzL2lkdDY0LmxkLCBtaXBzL2lkdGVjb2ZmLmxkLCBtaXBzL2lkdC5sZCwKCSogbWlwcy9qbXIzOTA0YXBwLWphdmEubGQsIG1pcHMvam1yMzkwNGFwcC5sZCwKCSogbWlwcy9qbXIzOTA0ZHJhbS1qYXZhLmxkLCBtaXBzL2ptcjM5MDRkcmFtLmxkLCBtaXBzL2xzaS5sZCwKCSogbWlwcy9udWxsbW9uLmxkLCBtaXBzL3Btb24ubGQ6IEtlZXAgLmluaXQgYW5kIC5maW5pLgoKMjAwNS0wMi0wOCAgQW50b255IEtpbmcgIDxhbnRvbnkua2luZ0BzdC5jb20+CgoJKiBhcm0vc3lzY2FsbHMuYzogQ2hhbmdlIENIRUNLX0lOSVQgdG8gcGFzcyByZWVudHJhbnQgc3RydWN0CglpbnN0ZWFkIG9mIGZpbGUgcG9pbnRlci4KCjIwMDUtMDItMDEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogY3Jpcy9NYWtlZmlsZS5pbiAoQUxMX0lOU1RBTExfRklMRVMpOiBOZXcgbWFjcm8uCgkoQUxMX0lOU1RBTExfRklMRVNfTkVXTElCX0NPUFkpOiBOZXcgbWFjcm8uCgkoYWxsKTogVXNlIEFMTF9JTlNUQUxMX0ZJTEVTIGluc3RlYWQgb2YgaXRzIGNvbnRlbnRzLiAgQWRkCglBTExfSU5TVEFMTF9GSUxFU19ORVdMSUJfQ09QWS4KCSgkKG9ianJvb3QpL25ld2xpYi8lLCAkKG9ianJvb3QpL25ld2xpYi9saWJub3N5cy5hKTogTmV3IHJ1bGVzCgoyMDA1LTAxLTI3ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCiAgICAgICAgKiBjb25maWd1cmUuaW46IFN1cHBvcnQgY3Jpcy0qLSogYW5kIGNyaXN2MzItKi0qLgogICAgICAgICogbGlibm9zeXMvY29uZmlndXJlLmluOiBEaXR0by4KCSogY29uZmlndXJlLCBsaWJub3N5cy9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNyaXM6IE5ldyBkaXJlY3RvcnkuCgkqIGNyaXMvY3J0MC5TLCBjcmlzL2NydG4uYywgY3Jpcy9nZW5zeXNjYWxscywgY3Jpcy9saW51bmlzdGQuaCwKCWNyaXMvb3V0Ynl0ZS5jLCBjcmlzL2NvbmZpZ3VyZS5pbiwgY3Jpcy9jcnRpLmMsIGNyaXMvbGNydDAuYywKCWNyaXMvTWFrZWZpbGUuaW4sIGNyaXMvc2V0dXAuUywgY3Jpcy9jb25maWd1cmU6IE5ldyBmaWxlcy4KCjIwMDUtMDEtMjEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogbGlibm9zeXMvd2FybmluZy5oIChzdHViX3dhcm5pbmcpOiBSZW1vdmUgIndhcm5pbmc6ICIgcHJlZml4LgoKMjAwNS0wMS0xOCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBsaWJub3N5cy93YXJuaW5nLmggKGxpbmtfd2FybmluZykgW0hBVkVfR05VX0xEIGFuZCBIQVZFX0VMRl06CglQcmVmaXggc3ltYm9sIGluIHNlY3Rpb24gbmFtZSB3aXRoIF9fU1lNQk9MX1BSRUZJWC4gIERvIG5vdCB1c2UKCV9fbWFrZV9zZWN0aW9uX3VuYWxsb2NhdGVkLiAgTWFyayBtYWdpYyB2YXJpYWJsZSBhcyB1c2VkLgoKMjAwNS0wMS0xOCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBsaWJub3N5cy9jb25maWd1cmUuaW4gKGxpYmNfY3ZfYXNtX3ByZXZpb3VzX2RpcmVjdGl2ZSk6IFNldAoJY2FjaGUtaWQgdmFyaWFibGUuCgkobGliY19jdl9hc21fcG9wc2VjdGlvbl9kaXJlY3RpdmUpOiBEaXR0by4KCShsaWJjX2N2X3NlY3Rpb25fYXR0cmlidXRlcyk6IERpdHRvLgoJKGxpYmNfc3ltYm9sX3ByZWZpeCk6IFJlbmFtZSBmcm9tIGxpYmNfZG9sbGFyX3ByZWZpeC4gIENoZWNrIGZvcgoJIl8iIGFzIHdlbGwsIGFuZCBzZXQgX19TWU1CT0xfUFJFRklYIGFjY29yZGluZ2x5LgoJKiBsaWJub3N5cy9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA1LTAxLTE4ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGxpYm5vc3lzL01ha2VmaWxlLmluIChMRCwgQVMpOiBDb3JyZWN0IG9ic29sZXRlZCBzdWZmaXg6IFNheQoJYXMtbmV3IGFuZCBsZC1uZXcsIG5vdCBhcy5uZXcgYW5kIGxkLm5ldy4KCjIwMDUtMDEtMTQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICogbGlibm9zeXMvd2FybmluZy5oIChfX21ha2Vfc2VjdGlvbl91bmFsbG9jYXRlZCkKICAgICAgICBbSEFWRV9BU01fUFJFVklPVVNfRElSRUNUSVZFLCBIQVZFX0FTTV9QT1BTRUNUSU9OX0RJUkVDVElWRV06IFVzZSAiXG4iCiAgICAgICAgaW5zdGVhZCBvZiAiOyIgdG8gZGVsaW1pdCBhc3NlbWJseSBsaW5lcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKMjAwNS0wMS0wNyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCSogYXJtL2NydDAuUzogQ2FsbCBfX2xpYmNfe2luaXQsZmluaX1fYXJyYXkgaW5zdGVhZCBvZgoJX2luaXQvX2ZpbmkgaWYgdGhleSBleGlzdC4KCjIwMDQtMTEtMjYgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgKiBhcm0vY3J0MC5TIChfc3RhcnQpOiBBZGQgLmNhbnR1bndpbmQgYW5ub3RhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKMjAwNC0xMC0yOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIGlxMjAwMCB0YXJnZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDQtMTAtMDUgIFRvbWVyIExldmkgIDxUb21lci5MZXZpQG5zYy5jb20+CgogICAgICAgICogY29uZmlndXJlLmluOiBTdXBwb3J0IGNyeC0qLSouCiAgICAgICAgKiBjb25maWd1cmU6IHJlZ2VuZXJhdGUuCiAgICAgICAgKiBjcngvX2V4aXQuYzogTmV3IGZpbGUuCiAgICAgICAgKiBjcngvX2dldGVudi5jOiBEaXR0by4KICAgICAgICAqIGNyeC9fcmVuYW1lOiBEaXR0by4KICAgICAgICAqIGNyeC9jbG9zZS5jOiBEaXR0by4KICAgICAgICAqIGNyeC9jb25maWd1cmUuaW46IERpdHRvLgogICAgICAgICogY3J4L2NydGkuUzogRGl0dG8uCiAgICAgICAgKiBjcngvY3J0bi5TOiBEaXR0by4KICAgICAgICAqIGNyeC9jcnQwLlM6IERpdHRvLgogICAgICAgICogY3J4L2R2el9obmRsLmM6IERpdHRvLgogICAgICAgICogY3J4L2ZsZ19obmRsLmM6IERpdHRvLgogICAgICAgICogY3J4L2ZzdGF0LmM6IERpdHRvLgogICAgICAgICogY3J4L2dldHBpZC5jOiBEaXR0by4KICAgICAgICAqIGNyeC9pYWRfaG5kbC5jOiBEaXR0by4KICAgICAgICAqIGNyeC9pbnRhYmxlLmM6IERpdHRvLgogICAgICAgICogY3J4L2lzYXR0eS5jOiBEaXR0by4KICAgICAgICAqIGNyeC9raWxsLmM6IERpdHRvLgogICAgICAgICogY3J4L2xzZWVrLmM6IERpdHRvLgogICAgICAgICogY3J4L01ha2VmaWxlLmluOiBEaXR0by4KICAgICAgICAqIGNyeC9vcGVuLmM6IERpdHRvLgogICAgICAgICogY3J4L3B1dG51bS5jOiBEaXR0by4KICAgICAgICAqIGNyeC9yZWFkLmM6IERpdHRvLgogICAgICAgICogY3J4L3NicmsuYzogRGl0dG8uCiAgICAgICAgKiBjcngvc2ltLmxkOiBEaXR0by4KICAgICAgICAqIGNyeC9zdGF0LmM6IERpdHRvLgogICAgICAgICogY3J4L3N2Y19obmRsLmM6IERpdHRvLgogICAgICAgICogY3J4L3RpbWUuYzogRGl0dG8uCiAgICAgICAgKiBjcngvdW5kX2huZGwuYzogRGl0dG8uCiAgICAgICAgKiBjcngvdW5saW5rLmM6IERpdHRvLgogICAgICAgICogY3J4L3dyaXRlLmM6IERpdHRvLgoKMjAwNC0xMC0wMSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGFybS9jb25maWd1cmUuaW46IEFkZCAqLSotYWViaSB0YXJnZXQuCgkqIGFybS9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA0LTA4LTI1ICBDb3Jpbm5hIFZpbnNjaGVuICA8dmluc2NoZW5AcmVkaGF0LmNvbT4KCgkqIGkzODYvY3lnbW9uLmxkICgudGV4dCk6IEZpeCBhbGlnbm1lbnQuCgkoLnJvZGF0YSk6IEhhbmRsZSAucm9kYXRhLiogc2VjdGlvbnMuCgoyMDA0LTA2LTI3ICBIaWRla2kgSXdhbW90byA8aC1pd2Ftb3RvQGtpdC5oaS1oby5uZS5qcD4KCgkqIE1ha2VmaWxlLmluOiBTdXBwb3J0ICQoREVTVERJUikuCgkqIGFybS9NYWtlZmlsZS5pbjogRGl0dG8uCgkqIGQzMHYvTWFrZWZpbGUuaW46IERpdHRvLgoJKiBkb2MvTWFrZWZpbGUuaW46IERpdHRvLgoJKiBmcjMwL01ha2VmaWxlLmluOiBEaXR0by4KCSogZnJ2L01ha2VmaWxlLmluOiBEaXR0by4KCSogaHA3NHgvTWFrZWZpbGUuaW46IERpdHRvLgoJKiBpMzg2L01ha2VmaWxlLmluOiBEaXR0by4KCSogaTk2MC9NYWtlZmlsZS5pbjogRGl0dG8uCgkqIGlxMjAwMC9NYWtlZmlsZS5pbjogRGl0dG8uCgkqIGxpYm5vc3lzL01ha2VmaWxlLmluOiBEaXR0by4KCSogbTMyci9NYWtlZmlsZS5pbjogRGl0dG8uCgkqIG02OGhjMTEvTWFrZWZpbGUuaW46IERpdHRvLgoJKiBtNjhrL01ha2VmaWxlLmluOiBEaXR0by4KCSogbWNvcmUvTWFrZWZpbGUuaW46IERpdHRvLgoJKiBtaXBzL01ha2VmaWxlLmluOiBEaXR0by4KCSogbW4xMDIwMC9NYWtlZmlsZS5pbjogRGl0dG8uCgkqIG1uMTAzMDAvTWFrZWZpbGUuaW46IERpdHRvLgoJKiBwYS9NYWtlZmlsZS5pbjogRGl0dG8uCgkqIHJzNjAwMC9NYWtlZmlsZS5pbjogRGl0dG8uCgkqIHNwYXJjL01ha2VmaWxlLmluOiBEaXR0by4KCSogc3BhcmMvbGlic3lzL01ha2VmaWxlLmluOiBEaXR0by4KCSogeHN0b3JteTE2L01ha2VmaWxlLmluOiBEaXR0by4KCjIwMDQtMDYtMjUgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgoKCSogbGlibm9zeXMvX2V4aXQuYzogTmV3IGZpbGUuCgkqIGxpYm5vc3lzL01ha2VmaWxlLmluOiBBZGQgX2V4aXQuby4KCjIwMDQtMDYtMTcgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgoKCSogYXJtL2NvbmZpZ3VyZS5pbjogQ2hlY2sgdGhlIHZhbHVlIG9mIG5ld2xpYi1tYXktc3VwcGx5LXN5c2NhbGxzCgllbmFibGVtZW50IHZhcmlhYmxlIHRvIGRldGVybWluZSBpZiBjcnQwIHNob3VsZCBvciBzaG91bGQgbm90IGJlCglidWlsdC4KCSogYXJtL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgkqIGFybS9NYWtlZmlsZS5pbjogQ2hhbmdlZCB0byBsb29rIGF0IEBCVUlMRF9DUlQwX1RSVUVAIGFuZAoJQEJVSUxEX0NSVDBfRkFMU0VAIHZhcmlhYmxlcyBzZXQgaW4gY29uZmlndXJlIHRvIGRldGVybWluZQoJaWYgY3J0MC5vIHNob3VsZCBiZSBidWlsdCBhbmQgaW5zdGFsbGVkLgoKMjAwNC0wNi0wOSAgVG9yYWxmIEx1bmQgIDx0b3JhbGZAcHJvY2FwdHVyYS5jb20+CgoJKiBhcm0vY3J0MC5TOiBDb3BpZWQgZnJvbSBuZXdsaWIgYW5kIGl0IG5vdyBhbHNvIHNldHMgdXAgc3RhY2tzIGZvciAKCUZJUSBhbmQgSVJRIG1vZGUsIHBsdXMgY2FsbHMgaGFyZHdhcmVfaW5pdF9ob29rKCkgYW5kIAoJc29mdHdhcmVfaW5pdF9ob29rKCkgaWYgcHJlc2VudC4KCSogYXJtL2xpYmNmdW5jLmMsIGFybS9zd2kuaCwgYXJtL3N5c2NhbGxzLmM6IENvcGllZAoJZnJvbSBuZXdsaWIuCgkqIGFybS9NYWtlZmlsZS5pbjogQnVpbGQgY3J0MC5vLCByZHBtb24tY3J0MC5vLCByZGltb24tY3J0MC5vLAoJbGlicmRwbW9uLmEsIGxpYnJkaW1vbi5hIC0gc3VwcG9ydCBmaWxlIGZvciAiYmFyZSIgc2V0dXAsIGFzIHdlbGwKCWFzICJSRFAiIGFuZCAiUkRJIiBtb25pdG9ycy4KCSogYXJtL2NvZmYtcmRwbW9uLnNwZWNzLCBhcm0vZWxmLXJkcG1vbi5zcGVjcywKCWFybS9jb2ZmLXJkaW1vbi5zcGVjcywgYXJtL2VsZi1yZGltb24uc3BlY3M6IGdjYyBzcGVjcyBmaWxlcyB0byBnbwoJd2l0aCBhYm92ZSBtZW50aW9uZWQgc3VwcG9ydCBsaWJzIGFuZCBzdGFydGZpbGVzLgoKMjAwNC0wNi0wMyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgogICAgICAgICogbW4xMDMwMC9zaW0ubGQ6IFN0YXJ0IGF0IGFkZHJlc3MgNCwgdG8gYXZvaWQgYW1iaWd1aXR5IHdpdGggTlVMTAogICAgICAgIHBvaW50ZXJzLgoKMjAwNC0wNS0yNiAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBsaWJub3N5cy9zYnJrLmM6IEFkZCBpbmNsdWRlIG9mIDxfc3lzbGlzdC5oPiBhbmQgImNvbmZpZy5oIi4KCjIwMDQtMDUtMDUgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIG1pcHMvYXJyYXkubGQsIG1pcHMvY2ZlLmxkLCBtaXBzL2RkYi1rc2VnMC5sZCwgbWlwcy9kZGIubGQsCgkqIG1pcHMvZHZlLmxkLCBtaXBzL2lkdDMyLmxkLCBtaXBzL2lkdDY0LmxkLCBtaXBzL2lkdC5sZAoJKiBtaXBzL2ptcjM5MDRhcHAubGQsIG1pcHMvbHNpLmxkLCBtaXBzL251bGxtb24ubGQsIG1pcHMvcG1vbi5sZAoJKC5laF9mcmFtZV9oZHIsIC5laF9mcmFtZSwgLmdjY19leGNlcHRfdGFibGUsIC5qY3IpOiBOZXcgc2VjdGlvbnMuCgoyMDA0LTA0LTAyICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogbWlwcy9yZWdzLlMgKEMwX0NPVU5UKTogRml4IGNvbW1lbnQgdGhhdCBrZXB0IHRoaXMgZnJvbSBiZWluZwoJZGVmaW5lZC4KCSogbWlwcy92cjQzMDAuUzogVXNlIEMwX0NPVU5UIGFzIGFwcHJvcHJpYXRlIGluc3RlYWQgb2YgaGFyZGNvZGluZyAkOS4KCSogbWlwcy92cjV4eHguUzogTGlrZXdpc2UuCgoyMDA0LTAzLTIzICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGZydi9jcnQwLlM6IEZpeCBjb21tZW50LgoJKiBtaXBzL2NvbmZpZ3VyZS5pbjogQWRkIG1pcHNpc2E2NC0qLSogdG8gdGFyZ2V0IHN1cHBvcnQuCgkqIG1pcHMvY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNC0wMy0wMyAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAbmVyaW0uZnI+CgoJKiBtNjhoYzExL3NjaS1pbm91dC5TOiBTdXBwb3J0cyAtbWxvbmctY2FsbHMuCgkqIG02OGhjMTEvc2ltLXZhbGlkLW02OGhjMTEubGQgKC50cmFtcCk6IE5ldyBzZWN0aW9uIGZvciB0cmFtcG9saW5lcy4KCSgudGV4dCk6IE1hcmsgdGhlIC5pbnN0YWxsTiBhbmQgLmZpbmlOIHNlY3Rpb24gd2l0aCBLRUVQLgoJKC52ZWN0b3JzKTogTGlrZXdpc2UgZm9yIC52ZWN0b3JzLgoJKC5nY2NfZXhjZXB0X3RhYmxlKTogTmV3IHNlY3Rpb24uCgkqIG02OGhjMTEvc2ltLXZhbGlkLW02OGhjMTIubGQgKC50cmFtcCk6IE5ldyBzZWN0aW9uIGZvciB0cmFtcG9saW5lcy4KCSgudGV4dCk6IE1hcmsgdGhlIC5pbnN0YWxsTiBhbmQgLmZpbmlOIHNlY3Rpb24gd2l0aCBLRUVQLgoJKC52ZWN0b3JzKTogTGlrZXdpc2UgZm9yIC52ZWN0b3JzLgoJKC5nY2NfZXhjZXB0X3RhYmxlKTogTmV3IHNlY3Rpb24uCgoyMDA0LTAxLTIzICBH4WJvciBM82tpICA8bG9raUBpbmYudS1zemVnZWQuaHU+CgoJKiBtNjhrL2xlZHMuYzogcmVtb3ZlIGxlZF9wdXRudW0oKSwgenlsb25zKCkgZm9yd2FyZAoJZnVuY3Rpb24gZGVjbGFyYXRpb25zLgoJKiBtNjhrL2xlZHMuaDogYWRkIHp5bG9ucygpIGZvcndhcmQgZnVuY3Rpb24gZGVjbGFyYXRpb24uCgoyMDA0LTAxLTA2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkyMDAzLTEyLTAyICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgkqIGZydi9jcnQwLlMgKF9zdGFydCk6IEZpeCB1c2Ugb2YgRkRQSUMgY29uZGl0aW9uYWxzLiAgTW92ZSB0aGUgc2V0IG9mCglncjExIG91dHNpZGUgdGhlIEZEUElDIGNvbmRpdGlvbmFsLiAgQXZvaWQgY2xvYmJlcmluZyBncjQgdG9vIGVhcmx5LgoJMjAwMy0xMS0xNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBmcnYvY3J0MC5TOiBGaXggZmRwaWMgc3AgY2FsY3VsYXRpb24uCgkyMDAzLTExLTA1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogZnJ2L2NydDAuUzogVXNlIF9fc3RhY2tzaXplLCBub3QgX19zdGFjaywgdG8gaW5pdGlhbGl6ZSBzcCBvbgoJRkRQSUMuICBVcGRhdGUgY29tbWVudHMgb24gY29tcHV0aW5nIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXy4gIERvbid0CglmaXh1cCBjdG9ycyBub3IgZHRvcnMgb24gRkRQSUMuCgkyMDAzLTA5LTE5ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogZnJ2L2NydDAuUyAoX3N0YXJ0KTogU2V0IHVwIGdyMTUgb25seSBmb3IgRkRQSUMuCgkqIGZydi9jcnQwLlMgKF9zdGFydCk6IFNhdmUgX0dMT0JBTF9PRkZTRVRfVEFCTEVfIGluIGdyMTcsIGFuZCBzZXQKCWdyMTUgYmVmb3JlIGZ1bmN0aW9uIGNhbGxzLgoJMjAwMy0wOS0xOSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+LCBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogZnJ2L2NydDAuUyAoX3N0YXJ0KTogU2V0IHVwIGdyMTUgd2l0aCBfR0xPQkFMX09GRlNFVF9UQUJMRV8ncwoJdmFsdWUuCgoyMDAzLTEwLTI3ICBCZXJuYXJkbyBJbm5vY2VudGkgIDxiZXJuaWVAZGV2ZWxlci5jb20+CgoJKiBtNjhrL2FzbS5oOiBBZGQgbWFjcm9zIGZvciAtZlBJQywgLW1zZXAtZGF0YSBhbmQKCS1taWQtc2hhcmVkLWxpYnJhcnkgc3VwcG9ydC4KCSogbTY4ay9jcnQwLlM6IFVzZSBtYWNyb3MgZm9yIC1mUElDLCAtbXNlcC1kYXRhIGFuZAoJLW1pZC1zaGFyZWQtbGlicmFyeSBzdXBwb3J0LgoJKiBtNjhrL3NpbS1jcnQwLlM6IExpa2V3aXNlLgoKMjAwMy0xMC0xNSAgQmVybmFyZG8gSW5ub2NlbnRpICA8YmVybmllQGRldmVsZXIuY29tPgoKCSogbTY4ay9zaW0tZnVuY3MuYyAoX1hPUEVOX1NPVVJDRSk6IERlZmluZSB0byBnZXQgdGhlIHBpZF90Cgl0eXBlZGVmIGZyb20gPHVuaXN0ZC5oPi4KCjIwMDMtMDgtMjYgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogc3BhcmMvZWxmc2ltLmxkOiBGaXggX19FSF9GUkFNRV9CRUdJTl9fIGRlZmluaXRpb24uCgkqIHNwYXJjL3NwYXJjODZ4LmxkOiBMaWtld2lzZS4KCjIwMDMtMDgtMjAgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgogICAgICAgICogbWlwcy9jcnQwX2NmZS5TOiBOZXcgZmlsZS4KICAgICAgICAqIG1pcHMvY2ZlX21lbS5jOiBOZXcgZmlsZS4KICAgICAgICAqIG1pcHMvY2ZlX3ByZXN0YXJ0LlM6IFJlbW92ZS4KICAgICAgICAqIG1pcHMvY2ZlLmxkOiBBZGp1c3QgdG8gdXNlIGNydDBfY2ZlLm8gYXMgdGhlIHN0YXJ0dXAgZmlsZSwgYW5kCiAgICAgICAgYW5kIHVzZSBfc3RhcnQgYXMgdGhlIGVudHJ5IHBvaW50LiAgQWxpZ24gQlNTIHRvIDMyLWJ5dGUgYm91bmRhcnkuCiAgICAgICAgKiBtaXBzL2NmZS5jOiBSZWltcGxlbWVudCB0byBmaXQgb24gdG9wIG9mIGEgY3J0MF9jZmUubyBmaWxlLgogICAgICAgICogbWlwcy9jZmVfYXBpLmggKF9fbGliY2ZlX3N0YWNrX3NpemUsIF9fbGliY2ZlX21lbV9saW1pdCkKICAgICAgICAoX19saWJjZmVfbWVtaW5pdCwgX19saWJjZmVfc3RhY2tfdG9wKTogTmV3IHByb3RvdHlwZXMuCiAgICAgICAgKiBtaXBzL01ha2VmaWxlLmluIChDRkVPQkpTKTogUmVwbGFjZSBjZmVfcHJlc3RhcnQubyB3aXRoIGNmZV9tZW0uby4KICAgICAgICAoY2ZlLm8sIGNmZV9hcGkubywgY2ZlX21lbS5vLCBjcnQwX2NmZS5vKTogTmV3IHRhcmdldHMuCiAgICAgICAgKiBtaXBzL2NvbmZpZ3VyZS5pbjogQnVpbGQgYW5kIGluc3RhbGwgY3J0MF9jZmUubyB3aGVuIENGRSBzdXBwb3J0CiAgICAgICAgaXMgYnVpbHQuCiAgICAgICAgKiBtaXBzL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDMtMDgtMTIgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgoKCSogaTM4Ni9jeWdtb24tc2FsaWIuYyAodW5saW5rKTogTmV3IHN0dWIuCgoyMDAzLTA4LTA4ICBNYXJrIFNhbHRlciA8bXNhbHRlckByZWRoYXQuY29tPgoKICAgICAgICAqIGkzODYvY3lnbW9uLmxkOiBBZGQgNCBieXRlIGFsaWdubWVudCB0byBfX0NUT1JfTElTVF9fCgogICAgICAgIEJlcm5kIFNjaG1pZHQgIDxiZXJuZHNAcmVkaGF0LmNvbT4KCiAgICAgICAgKiBpMzg2L2N5Z21vbi5sZDogQWRkIGVudHJ5IGZvciAucm9kYXRhLgoKMjAwMy0wNy0xNCAgS2F6dWhpcm8gSW5hb2thIDxpbmFva2Eua2F6dWhpcm9AcmVuZXNhcy5jb20+CgoJKiBtMzJyL2NvbmZpZ3VyZS5pbjogZml4ZWQgYnVnIHRvIGRlbGV0ZSAuLi9jb25maWctbWwuaW4uCgoyMDAzLTA3LTEwICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkyMDAxLTEwLTMwICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCSogbW4xMDMwMC9hc2IyMzA1LmxkOiBBZGRlZCBBU0IyMzA1IHN1cHBvcnQuCgkqIG1uMTAzMDAvY29uZmlndXJlOiBEaXR0by4KCSogbW4xMDMwMC9jb25maWd1cmUuaW46IERpdHRvLgoJMjAwMS0wOS0xMiAgU3RhbiBDb3ggIDxzY294QHJlZGhhdC5jb20+CgkqIG1uMTAzMDAvYXNiMjMwMy5sZDogTmV3IGZpbGUuICBMaW5rZXIgc2NyaXB0IGZvciB0aGUgQVNCMjMwMwoJQU0zMy8yLjAwIGJvYXJkLgoJKiBtbjEwMzAwL2NvbmZpZ3VyZS5pbjogQWRkIHN1cHBvcnQgZm9yIGFzYjIzMDMgYm9hcmQgc2NyaXB0LgoKMjAwMy0wNy0wOCAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IFJlYXBwbHkgS2F6dWhpcm8gSW5hb2tvJ3MgbXVsdGlsaWIgcGF0Y2ggZnJvbQoJMDQtMTctMDMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAzLTA2LTIzICBLYXp1aGlybyBJbmFva2EgIDxpbmFva2Eua2F6dWhpcm9AcmVuZXNhcy5jb20+CgoJKiBtMzJyL2NydDAuUyAoX3N0YXJ0KTogQWxsb3cgX3N0YWNrIHRvIGJlIHBsYWNlZCBhbnl3aGVyZQoJaW4gbWVtb3J5LgoKMjAwMy0wNi0wNiAgU3RhbiBDb3ggIDxzY294QHJlZGhhdC5jb20+CiAgICAgICAgICAgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgogICAgICAgICAgICBBbnRob255IEdyZWVuICA8Z3JlZW5AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGlxMjAwMCBzdXBwb3J0LgoJKiBjb25maWd1cmU6IFJlYnVpbHQuCgkqIGlxMjAwMC9NYWtlZmlsZS5pbiwgaXEyMDAwL2FjY2Vzcy5jLCBpcTIwMDAvX2V4aXQuYywKCWlxMjAwMC9jb25maWd1cmUsIGlxMjAwMC9jaG1vZC5jLCBpcTIwMDAvY2hvd24uYywgaXEyMDAwL2Nsb3NlLmMsCglpcTIwMDAvY29uZmlndXJlLmluLCBpcTIwMDAvY3JlYXQuYywgaXEyMDAwL2NydDAuUywgaXEyMDAwL2NydDEuYywKCWlxMjAwMC9leGVjdi5jLCBpcTIwMDAvZXhlY3ZlLmMsIGlxMjAwMC9mb3JrLmMsIGlxMjAwMC9mc3RhdC5jLAoJaXEyMDAwL2dldHBpZC5jLCBpcTIwMDAvZ2V0dGltZS5jLCBpcTIwMDAvaXNhdHR5LmMsIGlxMjAwMC9raWxsLmMsCglpcTIwMDAvbHNlZWsuYywgaXEyMDAwL29wZW4uYywgaXEyMDAwL3BpcGUuYywgaXEyMDAwL3JlYWQuYywKCWlxMjAwMC9zYnJrLmMsIGlxMjAwMC9zaW0ubGQsIGlxMjAwMC9zdGF0LmMsIGlxMjAwMC90ZXN0LmMsCglpcTIwMDAvdGltZS5jLCBpcTIwMDAvdGltZXMuYywgaXEyMDAwL3RyYXAuYywgaXEyMDAwL3RyYXAuaCwKCWlxMjAwMC91bmxpbmsuYywgaXEyMDAwL3V0aW1lLmMsIGlxMjAwMC93YWl0LmMsIGlxMjAwMC93cml0ZS5jOgoJTmV3IGZpbGVzLgoKMjAwMy0wNS0yNyAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBsaWJub3N5cy9NYWtlZmlsZS5pbjogQWRkIGVycm5vLm8uCgkqIGxpYm5vc3lzL2Vycm5vLmM6IE5ldyBmaWxlIHRvIHN1cHBseSBlcnJubyBkZWZpbml0aW9uIGlmCglvbmUgbm90IHByb3ZpZGVkIHlldC4KCjIwMDMtMDUtMjYgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogbWlwcy9jcnQwLlM6IFJlbW92ZSBzdGFja2Jhc2UgdmFyaWFibGUgc2V0LgoKMjAwMy0wNS0wMiAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBtaXBzL2NtYTEwMS5jIChfX3NpemVtZW0pOiBNYWtlIHN1cmUgdGhhdCBlbmQgaXMgbm90IGluIC5zZGF0YS4KCjIwMDMtMDQtMjkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsaWJub3N5cy9zYnJrLmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSAjaW5jbHVkZSdzLgoJQ2hhbmdlIHJldHVybiB0eXBlIG9mIF9zYnJrKCkgZnVuY3Rpb24gdG8gdm9pZCAqIHRvIG1hdGNoCglkZWZpbml0aW9uIGluIHN5c3RlbSBoZWFkZXIgZmlsZXMuCglGaXggZm9ybWF0dGluZy4KCjIwMDMtMDQtMjMgIEFuZHJldyBIYWxleSAgPGFwaEBjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHhzdG9ybXkxNi9zaW1fcm9tLmxkOiBOZXcuCgkqIHhzdG9ybXkxNi9NYWtlZmlsZS5pbiAoU0lNX1NDUklQVFMpOiBBZGQgc2ltX3JvbS5sZC4KCSogeHN0b3JteTE2L2NydDAucyAoX2ludF9yZXNldCk6IENvcHkgUk9NIGRhdGEgdG8gUkFNLgoJKiB4c3Rvcm15MTYvZXZhX2FwcC5sZCAoX3JkYXRhLCBfZGF0YSk6IE5ldy4KCSogeHN0b3JteTE2L3NpbV9oaWdoLmxkIChfcmRhdGEsIF9kYXRhKTogTmV3LgoKMjAwMy0wNC0xNyAgSW5hb2thIEthenVoaXJvICA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tPgoKCSogbTMyci9NYWtlZmlsZS5pbjogQWRkIG11bHRpbGliIHN1cHBvcnQuCgkqIG0zMnIvY29uZmlndXJlLmluOiBEaXR0by4KCSogbTMyci9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMy0wNC0xNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHhzdG9ybXkxNi9zaW1faGlnaC5sZDogQWRkIC5qY3Igc2VjdGlvbiBtYXBwaW5nLgoJKiB4c3Rvcm15MTYvZXZhX3N0dWIubGQ6IExpa2V3aXNlLgoJKiB4c3Rvcm15MTYvZXZhX2FwcC5sZDogTGlrZXdpc2UuCgoyMDAzLTA0LTA5ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogbWlwcy9jZmUuYyAoX2ZsdXNoX2NhY2hlKTogTmV3IGZ1bmN0aW9uLgoKMjAwMy0wMi0xOCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogbWlwcy9udWxsbW9uLmMgKF9mdGV4dCwgX2VuZCk6IEFkanVzdCBkZWNsYXJhdGlvbi4KCShnZXRfbWVtX2luZm8pOiBSZXdvcmsuCgoyMDAzLTAyLTE4ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBtaXBzL2NydDAuUyAoemVyb2Jzcyk6IFJlbG9hZCBfX21lbXNpemUgYWZ0ZXIgY2FsbC4KCjIwMDMtMDItMTcgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgoJKiBtaXBzL2NmZS5jIChfX2NmZV9oYW5kbGUsIF9fY2ZlX2VudHJ5cHQpOiBGaXggdHlwZXMuCgoyMDAzLTAyLTA1ICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogbWlwcy9jb25maWd1cmUuaW4gKG1pcHNpc2EzMmVsLSotKik6IEhhbmRsZSBpbiB0aGUgc2FtZSB3YXkKCWFzIG1pcHNpc2EzMi0qLSouCgkobWlwc2lzYTMycjItKi0qLCBtaXBzaXNhMzJyMmVsLSotKik6IE5ldywgaGFuZGxlZCBpbiB0aGUgc2FtZQoJd2F5IGFzIG1pcHNpc2EzMi0qLSouCgkqIG1pcHMvY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wMi0wNSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIG1pcHMvY2ZlLmMgKGhhcmR3YXJlX2hhemFyZF9ob29rKTogTW92ZS4uLgoJKiBtaXBzL2NmZV9wcmVzdGFydC5TIChoYXJkd2FyZV9oYXphcmRfaG9vayk6IFRvIGhlcmUsCglhbmQgdHJhbnNsYXRlIGludG8gYXNzZW1ibHkuCgoyMDAzLTAxLTA4ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBtaXBzL2NydDAuUyAoX3N0YXJ0KTogQWxsb2NhdGUgNjQgYnl0ZXMgb2Ygc3RhY2sgaW5zdGVhZCBvZiAzMi4KCVBhc3MgYW4gZW1wdHkgYXJndiBhbmQgZW52cCB0byBtYWluKCkuCgoyMDAzLTAxLTA4ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBtaXBzL2NvbmZpZ3VyZS5pbiAobWlwczY0dnItZWxmLCBtaXBzNjR2cmVsLWVsZik6IE5ldyBjb25maWcuCgkqIG1pcHMvY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMy0wMS0wNyAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGJyb2FkY29tLmNvbT4KCgkqIGNydDAuUzogQ2hlY2sgZm9yIGRlZmluaXRpb24gb2YgX19taXBzNjQgcmF0aGVyIHRoYW4KCWNoZWNraW5nIChfX21pcHMgPCAzKS4KCSogcG1vbi5TOiBMaWtld2lzZS4KCSogY3lnbW9uLmMgKHN5c0NhbGwpOiBBdm9pZCBtdWx0aS1saW5lIHN0cmluZyBsaXRlcmFscy4KCjIwMDItMTEtMTIgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiAgbWlwcy9NYWtlZmlsZS5pbjogQWRkIGN5Z21vbiBzdXBwb3J0LgoJKiAgbWlwcy9jb25maWd1cmUuaW46IERpdHRvLgoJKiAgbWlwcy9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiAgbWlwcy9jcnQwX2N5Z21vbi5TOiBOZXcgZmlsZS4KCSogIG1pcHMvY3lnbW9uLmM6IERpdHRvLgoJKiAgbWlwcy9wbW9uLlM6IE1pbm9yIGZvcm1hdHRpbmcgYW5kIGNvcHlyaWdodCBjaGFuZ2VzLgoJKiAgbWlwcy9jcnQwLlM6IERpdHRvLgoKMjAwMi0xMS0wOCBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCgkqIGFybS9NYWtlZmlsZS5pbjogQWRkIHN1cHBvcnQgZm9yIG5ldyBwaWQgc3BlY3MuCgkqIGFybS9jb2ZmLWlxODAzMTAuc3BlY3M6IENoYW5nZSB0byBhbGxvdyBmdXR1cmUgc3VwcG9ydC4KCSogYXJtL2VsZi1pcTgwMzEwLnNwZWNzOiBEaXR0by4KCSogYXJtL2VsZi1yZWRib290LnNwZWNzOiBEaXR0by4KCSogYXJtL2NvZmYtcmVkYm9vdC5sZDogQWRkIEVIIGZyYW1lIHN1cHBvcnQuCgkqIGFybS9yZWRib290LWNydDAuUzogQWRkIG9wdGlvbmFsIGNvZGUgdG8gY2xlYXIgYnNzIHdpdGhvdXQKCW1lbXNldC4KCSogYXJtL2NvZmYtcGlkLnNwZWNzOiBOZXcgZmlsZS4KCSogYXJtL2VsZi1waWQuc3BlY3M6IE5ldyBmaWxlLgoKMjAwMi0xMS0wOCBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KCSAgIENhdGhlcmluZSBNb29yZSAgPGNsbUByZWRoYXQuY29tPgoKICAgICAgICAqIG0zMnIvY29uZmlndXJlLmluOiAgRG8gbm90IHJlcXVpcmUgZ2NjIHRvIGJlIGFibGUgdG8gbGluayBhbgogICAgICAgIGV4ZWN1dGFibGUuCiAgICAgICAgKiBtMzJyL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogbTMyci9NYWtlZmlsZS5pbjogRGlyZWN0bHkgcmVmZXJlbmNlIGdkYnN0dWIuCgoyMDAyLTEwLTI1ICBCZXJuZCBTY2htaWR0ICA8YmVybmRzQHJlZGhhdC5jb20+CgogICAgICAgICogaTM4Ni9jeWdtb24ubGQ6IEFkZCBlbnRyeSBmb3IgLmdjY19leGNlcHRfdGFibGUuCgoyMDAwLTEwLTI1ICBNYXJrIFNhbHRlciAgPG1zYWx0ZXJAcmVkaGF0LmNvbT4KCiAgICAgICAgKiBpMzg2L2N5Z21vbi1jcnQwLlM6IFVzZSBfX1VTRVJfTEFCRUxfUFJFRklYX18gZm9yIHN5bWJvbHMuIEFsd2F5cwogICAgICAgIHVzZSBfX3N0YXJ0IGZvciBzdGFydCBzeW1ib2wuCiAgICAgICAgKiBpMzg2L2N5Z21vbi1zYWxpYi5jOiBEb24ndCBidWlsZCBfX2RvX2dsb2JhbF9bY2RddG9ycyBmb3IgQU9VVC4KICAgICAgICBEaXNhYmxlIGZpbGUgSS9PIGV4dGVuc2lvbnMgdG8gbWFrZSBQbHVtIEhhbGwgaGFwcHkuCiAgICAgICAgKiBpMzg2L2N5Z21vbi5sZDogU2V0IF9fc3RhcnQgYXMgZW50cnkgcG9pbnQuCiAgICAgICAgKiBpMzg2L01ha2VmaWxlLmluOiBTdXBwb3J0IElTX0FPVVQuCiAgICAgICAgKiBpMzg2L2NvbmZpZ3VyZS5pbjogU3VwcG9ydCBJU19BT1VULgogICAgICAgICogaTM4Ni9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgogICAgICAgICogaTM4Ni9jeWdtb24tc2FsaWIuYzoKICAgICAgICAqIGkzODYvY3lnbW9uLWdtb24uYyAoX21jb3VudCk6IEl0J3MgX2V0ZXh0LgoKMjAwMi0xMC0yNSAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW46IENsYXJpZnkgc29tZSBvZiB0aGUgdHJpcGxldHMgc28gdW5zdXBwb3J0ZWQKCWNvbmZpZ3VyYXRpb25zIGRvbid0IHBhc3MgdGhyb3VnaC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDItMTAtMTggIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKCSogbTY4aGMxMS9zeXNjYWxscy5jIChzYnJrKTogVXNlIHB0cmRpZmZfdCBmb3IgaW5jcmVtZW50IHBhcmFtZXRlci4KCjIwMDItMTAtMDcgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIG1pcHMvZGRiLmxkOiBLRUVQIC5pbml0IGFuZCAuZmluaS4KCSogbWlwcy9kZGIta3NlZzAubGQ6IExpa2V3aXNlLgoKMjAwMi0xMC0wNCAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHJlZGhhdC5jb20+CgogICAgICAgICogbTMyci9tMzJyLWxpYi5jIChleGNlcHRpb25IYW5kbGVyKTogRml4IGNvbXB1dGF0aW9uIG9mCiAgICAgICAgZXhjZXB0aW9uIHZlY3RvciBhZGRyZXNzLCBhcyBzdWdnZXN0ZWQgYnkgTWl0c3ViaXNoaS4KICAgICAgICAoZ2V0RXhjZXB0aW9uVmVjdG9yKTogRGl0dG8uCgoyMDAyLTA4LTAxICBDaHJpcyBEZW1ldHJpb3UgIDxjZ2RAYnJvYWRjb20uY29tPgoKCSogbWlwcy9jZmUubGQgKFNUQVJUVVApOiBOZXcgZGVmaW5pdGlvbi4KCSogbWlwcy9kZGIta3NlZzAubGQgKFNUQVJUVVApOiBMaWtld2lzZS4KCSogbWlwcy9kZGIubGQgKFNUQVJUVVApOiBMaWtld2lzZS4KCSogbWlwcy9kdmUubGQgKFNUQVJUVVApOiBMaWtld2lzZS4KCSogbWlwcy9pZHQubGQgKFNUQVJUVVApOiBMaWtld2lzZS4KCSogbWlwcy9qbXIzOTA0YXBwLWphdmEubGQgKFNUQVJUVVApOiBMaWtld2lzZS4KCSogbWlwcy9qbXIzOTA0YXBwLmxkIChTVEFSVFVQKTogTGlrZXdpc2UuCgkqIG1pcHMvam1yMzkwNGRyYW0tamF2YS5sZCAoU1RBUlRVUCk6IExpa2V3aXNlLgoJKiBtaXBzL2ptcjM5MDRkcmFtLmxkIChTVEFSVFVQKTogTGlrZXdpc2UuCgkqIG1pcHMvbHNpLmxkIChTVEFSVFVQKTogTGlrZXdpc2UuCgkqIG1pcHMvbnVsbG1vbi5sZCAoU1RBUlRVUCk6IExpa2V3aXNlLgoJKiBtaXBzL3Btb24ubGQgKFNUQVJUVVApOiBMaWtld2lzZS4KCjIwMDItMDctMjMgIFN0ZXBoYW5lIENhcnJleiAgPHN0Y2FycmV6QG5lcmltLmZyPgoKICAgICAgICAqIFJFQURNRTogTWVudGlvbiA2OEhDMTEvNjhIQzEyIHN1cHBvcnQuCiAgICAgICAgKiBjb25maWd1cmUuaW46IFJlY29nbml6ZSBtNjgxMS1lbGYgYW5kIG02ODEyLWVsZi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KICAgICAgICAqIG02OGhjMTEvTWFrZWZpbGUuaW46IE5ldyBmaWxlLgogICAgICAgICogbTY4aGMxMS9jb25maWd1cmUuaW46IE5ldyBmaWxlLgogICAgICAgICogbTY4aGMxMS9jb25maWd1cmU6IE5ldyBmaWxlLgogICAgICAgICogbTY4aGMxMS9jcnQwLlM6IE5ldyBmaWxlLgogICAgICAgICogbTY4aGMxMS9zY2ktaW5vdXQuUzogTmV3IGZpbGUgZm9yIDY4aGMxMS82OGhjMTIgc2lvLgogICAgICAgICogbTY4aGMxMS9zaW0tdmFsaWQtbTY4aGMxMS5sZDogTmV3IGZpbGUuCiAgICAgICAgKiBtNjhoYzExL3NpbS12YWxpZC1tNjhoYzEyLmxkOiBOZXcgZmlsZS4KICAgICAgICAqIG02OGhjMTEvc3lzY2FsbHMuYzogTmV3IGZpbGUuCgoyMDAyLTA3LTIyICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgogICAgICAgICogcnM2MDAwL3NpbXVsYXRvci5TIChnZXR0aW1lb2ZkYXkpOiBOZXcuCiAgICAgICAgKGdldHJ1c2FnZSk6IE5ldy4KCjIwMDItMDctMTggIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgogICAgICAgICogcmVhZC5jIChyZWFkKTogRG9uJ3QgYXNzaWduIHBhc3QgZW5kIG9mIGJ1ZmZlciwgZml4IHJldHVybiB2YWx1ZS4KCjIwMDItMDctMTIgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgogICAgICAgICogbWlwcy9NYWtlZmlsZS5pbiAoR0VOT0JKUzIpOiBOZXcgdmFyaWFibGUgdG8gbmFtZSBvdGhlcgogICAgICAgIGNvbW1vbmx5IHVzZWQgb2JqZWN0cy4KICAgICAgICAoRFZFT0JKUywgSk1SMzkwNE9CSlMpOiBSZWZlcmVuY2UgR0VOT0JKUzIuCgogICAgICAgICogbWlwcy9NYWtlZmlsZS5pbjogQWRkIHN1cHBvcnQgZm9yIEJyb2FkY29tIENGRSBmaXJtd2FyZS4KICAgICAgICAqIG1pcHMvY29uZmlndXJlLmluOiAobWlwc2lzYTMyKi0qLSosICopOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvY29uZmlndXJlOiBSZWdlbmVyYXRlLgogICAgICAgICogbWlwcy9jZmUuYzogTmV3IGZpbGUuCiAgICAgICAgKiBtaXBzL2NmZS5sZDogTmV3IGZpbGUuCiAgICAgICAgKiBtaXBzL2NmZV9hcGkuYzogTmV3IGZpbGUuCiAgICAgICAgKiBtaXBzL2NmZV9hcGkuaDogTmV3IGZpbGUuCiAgICAgICAgKiBtaXBzL2NmZV9hcGlfaW50Lmg6IE5ldyBmaWxlLgogICAgICAgICogbWlwcy9jZmVfZXJyb3IuaDogTmV3IGZpbGUuCiAgICAgICAgKiBtaXBzL2NmZV9wcmVzdGFydC5TOiBOZXcgZmlsZS4KCjIwMDItMDctMTIgIENocmlzIERlbWV0cmlvdSAgPGNnZEBicm9hZGNvbS5jb20+CgogICAgICAgICogbWlwcy9hcnJheS5sZCAoaGFyZHdhcmVfZXhpdF9ob29rLCBoYXJkd2FyZV9oYXphcmRfaG9vayk6IE5ldwogICAgICAgIHN5bWJvbHMgZm9yIG9wdGlvbmFsbHktcHJvdmlkZWQgZnVuY3Rpb25zLgogICAgICAgICogbWlwcy9kZGIta3NlZzAubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9kZGIubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9kdmUubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9pZHQubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9pZHQzMi5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL2lkdDY0LmxkOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvaWR0ZWNvZmYubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9qbXIzOTA0YXBwLWphdmEubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9qbXIzOTA0YXBwLmxkOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvam1yMzkwNGRyYW0tamF2YS5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL2ptcjM5MDRkcmFtLmxkOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvbHNpLmxkOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvbnVsbG1vbi5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL3Btb24ubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9jcnQwLlM6IEludm9rZSBoYXJkd2FyZV9leGl0X2hvb2sgYW5kIGhhcmR3YXJlX2hhemFyZF9ob29rCiAgICAgICAgZnVuY3Rpb25zIGlmIHRoZXkgYXJlIHByb3ZpZGVkLgogICAgICAgIChfZXhpdCk6IEhhbmRsZSBfX2VtYmVkZGVkX3BpYyBwcm9wZXJseS4KCjIwMDItMDYtMTggIERhdmUgQnJvbGxleSAgPGJyb2xsZXlAcmVkaGF0LmNvbT4KCglGcm9tIENhdGhlcmluZSBNb29yZSwgTWljaGFlbCBNZWlzc25lciwgUmljaGFyZCBTYW5kaWZvcmQ6CgkqIGNvbmZpZ3VyZS5pbjogU3VwcG9ydCBmcnYqLSotKi4KCSogZnJ2L01ha2VmaWxlLmluOiBOZXcgZmlsZS4KCSogZnJ2L2NvbmZpZ3VyZTogTmV3IGZpbGUuCgkqIGZydi9jb25maWd1cmUuaW46IE5ldyBmaWxlLgoJKiBmcnYvY3J0MC5TOiBOZXcgZmlsZS4KCSogZnJ2L2ZzdGF0LmM6IE5ldyBmaWxlLgoJKiBmcnYvZ2V0cGlkLmM6IE5ldyBmaWxlLgoJKiBmcnYvaXNhdHR5LmM6IE5ldyBmaWxlLgoJKiBmcnYva2lsbC5jOiBOZXcgZmlsZS4KCSogZnJ2L3ByaW50LmM6IE5ldyBmaWxlLgoJKiBmcnYvcHV0bnVtLmM6IE5ldyBmaWxlLgoJKiBmcnYvc2Jyay5jOiBOZXcgZmlsZS4KCSogZnJ2L3NpbS1jbG9zZS5TOiBOZXcgZmlsZS4KCSogZnJ2L3NpbS1leGl0LlM6IE5ldyBmaWxlLgoJKiBmcnYvc2ltLWluYnl0ZS5jOiBOZXcgZmlsZS4KCSogZnJ2L3NpbS1sc2Vlay5TOiBOZXcgZmlsZS4KCSogZnJ2L3NpbS1vcGVuLlM6IE5ldyBmaWxlLgoJKiBmcnYvc2ltLXJlYWQuUzogTmV3IGZpbGUuCgkqIGZydi9zaW0tdGltZS5jOiBOZXcgZmlsZS4KCSogZnJ2L3NpbS11bmxpbmsuUzogTmV3IGZpbGUuCgkqIGZydi9zaW0td3JpdGUuUzogTmV3IGZpbGUuCgkqIGZydi9zdGF0LmM6IE5ldyBmaWxlLgoKMjAwMi0wNS0xMSAgVGhvbWFzIEZpdHpzaW1tb25zICA8Zml0enNpbUByZWRoYXQuY29tPgoKCSogbGlibm9zeXMvYWNjb25maWcuaCAoSEFWRV9TRUNUSU9OX0FUVFJJQlVURVMpOiBOZXcgbWFjcm8uCgkqIGxpYm5vc3lzL2NvbmZpZ3VyZS5pbjogQ2hlY2sgZ2NjJ3Mgc3VwcG9ydCBmb3Igc2VjdGlvbiBhdHRyaWJ1dGVzLgoJKiBsaWJub3N5cy93YXJuaW5nLmg6IEhhdmUgbGlua193YXJuaW5nIGV4cGFuZCB0byBub3RoaW5nIGlmIGdjYwoJZG9lcyBub3Qgc3VwcG9ydCBzZWN0aW9uIGF0dHJpYnV0ZXMuCgoyMDAyLTA0LTIyICBKb25hdGhhbiBMYXJtb3VyICA8amxhcm1vdXJAcmVkaGF0LmNvbT4KCgkqIGFybS9zeXNjYWxsLmg6IE5ldyBmaWxlLiBUbyBkZWZpbmUgZXh0cmEgc3lzY2FsbCB2YWx1ZXMgZm9yIFJlZEJvb3QuCgoJKiBhcm0vcmVkYm9vdC1zeXNjYWxscy5jIChfY2xvc2UpOiBGaXggc2V0dGluZyBvZiBlcnJubyB2YWx1ZS4KCShfbHNlZWspOiBEaXR0by4KCShfb3Blbik6IERpdHRvLgoJKF93cml0ZSk6IERpdHRvLgoJKF9yZWFkKTogRGl0dG8uCgkoX3JlbmFtZSk6IE5ldyBmdW5jdGlvbi4KCShfc3lzdGVtKTogRGl0dG8uCgkoX3N0YXQpOiBEaXR0by4KCShfdW5saW5rKTogQ2FsbCBhIHN5c2NhbGwgZm9yIHRoaXMgbm93LgoJKGlzYXR0eSk6IERpdHRvLgoJKF9mc3RhdCk6IERpdHRvLgoJKF9nZXR0aW1lb2ZkYXkpOiBEaXR0by4KCjIwMDItMDQtMTcgIEpvZWwgU2hlcnJpbGwgPGpvZWxAT0FSY29ycC5jb20+CgoJKiBkZWJ1Zy5oOiBDaGFuZ2UgbWVtX2VyciB0byB2b2xhdGlsZSB0byBtYXRjaCBkZWZpbml0aW9uIGluCglkZWJ1Zy5jLgoKMjAwMi0wNC0xNyAgSm9lbCBTaGVycmlsbCA8am9lbEBPQVJjb3JwLmNvbT4KCgkqIHNwYXJjL2N5Z21vbi1zYWxpYi5jLCBzcGFyYy9lcmMzMi1zdHViLmM6IERvbid0IHVzZSBtdWx0aS1saW5lCglzdHJpbmdzLgoKMjAwMi0wNC0xNiAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBtNjhrL2NvbmZpZ3VyZS5pbjogQ2hhbmdlIHRvIHVzZSBMSUJfQUNfUFJPR19DQyBpbnN0ZWFkCglvZiBBQ19QUk9HX0NDIHRvIGF2b2lkIGJ1aWxkaW5nIGFuIGV4ZWN1dGFibGUgaW4gY29uZmlndXJhdGlvbi4KCSogbTY4ay9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMi0wNC0xNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKICAgICAgICAqIGQzMHYvc3lzY2FsbHMuYzogI2luY2x1ZGUgPHRpbWUuaD4uICBEb24ndCB1c2UgbXVsdGktbGluZQogICAgICAgIHN0cmluZ3MuCgoyMDAyLTA0LTE1ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgogICAgICAgICogbTMyci90cmFwbW9uMC5jIChfX3RyYXAwKTogRG9uJ3QgdXNlIG11bHRpLWxpbmUgc3RyaW5ncy4KCjIwMDItMDItMDUgIE1hcmsgU2FsdGVyICA8bXNhbHRlckByZWRoYXQuY29tPgoKCSogYXJtL2VsZi1pcTgwMzEwLnNwZWNzOiBEaXR0by4KCSogYXJtL2VsZi1yZWRib290LnNwZWNzOiBEaXR0by4KCSogYXJtL2VsZi1yZWRib290LmxkOiBGaXggZWhfZnJhbWUgc2VjdGlvbnMuIEFkZCAuamNyIHNlY3Rpb24uCgkqIGFybS9yZWRib290LWNydDAuUzogQWRkIHN1cHBvcnQgZm9yIF9fVVNFU19JTklURklOSV9fLgoKMjAwMi0wMi0wMSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0ByZWRoYXQuY29tPgoKCSogeHN0b3JteTE2L01ha2VmaWxlLmluIChTSU1fT0JKUyk6IFJlbW92ZSBzYnJrLm8sIGFkZAoJc2ltX21hbGxvY19zdGFydC5vLgoJKiB4c3Rvcm15MTYvZXZhX2FwcC5sZDogQWRkIF9fbWFsbG9jX3N0YXJ0LgoJKiB4c3Rvcm15MTYvc2Jyay5jOiBSZW1vdmUuCgkqIHhzdG9ybXkxNi9zaW1fbWFsbG9jX3N0YXJ0LnM6IE5ldyBmaWxlLgoJKiB4c3Rvcm15MTYvc2ltX2hpZ2gubGQ6IE1ha2UgdGhlIHN0YWNrIHN0YXJ0IGltbWVkaWF0ZWx5IGF0IHRoZQoJZW5kIG9mIHRoZSBwcm9ncmFtLgoKMjAwMi0wMi0wMSAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQHJlZGhhdC5jb20+CgoJKiBtaXBzL2NtYTEwMS5jIChfX3NpemVtZW1fZGVmYXVsdCk6IEFsbG93IHVzZXIgdG8gc3BlY2lmeSB0aGUKCW1lbW9yeSBzaXplLgoJKF9fc2l6ZW1lbSk6IFVzZSBpdC4KCjIwMDItMDEtMjQgIE1hcmsgU2FsdGVyICA8bXNhbHRlckByZWRoYXQuY29tPgoKCSogYXJtL3JlZGJvb3QtY3J0MC5TOiBVc2UgX19nZXRfbWVtdG9wIHRvIHB1dCBzdGFjayBpbiBoaWdoIG1lbW9yeS4KCgkqIGFybS9yZWRib290LXN5c2NhbGxzLmMgKF90aW1lcyk6IFVuY29uZGl0aW9uYWxseSB1c2UgU1lTX3RpbWVzLgoJKF9fZ2V0X21lbXRvcCk6IE5ldyBmdW50aW9uIHRvIHJldHVybiB0b3Agb2YgbWVtb3J5LgoKMjAwMi0wMS0xNSAgTWFyayBTYWx0ZXIgIDxtc2FsdGVyQHJlZGhhdC5jb20+CgoJKiB4c3Rvcm15MTYvZXZhX3N0dWIubGQ6IFByb3ZpZGUgaW50ZXJydXB0IHJvdXRpbmUgc3ltYm9scyB3aGljaAoJZm9yd2FyZCBpbnRlcnJ1cHRzIHRvIHVzZXIgYXBwbGljYXRpb24gdmVjdG9ycy4KCgkqIHhzdG9ybXkxNi9jcnQwX3N0dWIuczogUmVtb3ZlIGRlZmF1bHQgaW50ZXJydXB0IHJvdXRpbmVzLgoKCSogeHN0b3JteTE2L01ha2VmaWxlLmluOiBSZW5hbWUgc3R1YiBhcHAgdG8gZXZhX3N0dWIuZWxmIGFuZAoJYWRkIGl0IHRvIGluc3RhbGwgbGlzdC4KCjIwMDItMDEtMDcgIE1hcmsgU2FsdGVyICA8bXNhbHRlckByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgYXJtLCBzdHJvbmdhcm0sIGFuZCB4c2NhbGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgkqIGFybS9jb2ZmLWlxODAzMTAuc3BlY3M6IE5ldyBmaWxlLgoJKiBhcm0vY29mZi1yZWRib290LmxkOiBOZXcgZmlsZS4KCSogYXJtL2NvZmYtcmVkYm9vdC5zcGVjczogTmV3IGZpbGUuCgkqIGFybS9jb25maWd1cmU6IE5ldyBmaWxlLgoJKiBhcm0vY29uZmlndXJlLmluOiBOZXcgZmlsZS4KCSogYXJtL2VsZi1pcTgwMzEwLnNwZWNzOiBOZXcgZmlsZS4KCSogYXJtL2VsZi1yZWRib290LmxkOiBOZXcgZmlsZS4KCSogYXJtL2VsZi1yZWRib290LnNwZWNzOiBOZXcgZmlsZS4KCSogYXJtL01ha2VmaWxlLmluOiBOZXcgZmlsZS4KCSogYXJtL3JlZGJvb3QtY3J0MC5TOiBOZXcgZmlsZS4KCSogYXJtL3JlZGJvb3Qtc3lzY2FsbHMuYzogTmV3IGZpbGUuCgoyMDAxLTEyLTIyICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgkgICAgTWFyayBTYWx0ZXIgIDxtc2FsdGVyQHJlZGhhdC5jb20+CgkgICAgQ2F0aGVyaW5lIE1vb3JlICA8Y2xtQHJlZGhhdC5jb20+CgkgICAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHhzdG9ybXkxNi4KCSogbGlibm9zeXMvY29uZmlndXJlLmluOiBBZGQgeHN0b3JteTE2LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBsaWJub3N5cy9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiB4c3Rvcm15MTYvTWFrZWZpbGUuaW46IE5ldyBmaWxlLgoJKiB4c3Rvcm15MTYvY2xvc2UuYzogTmV3IGZpbGUuCgkqIHhzdG9ybXkxNi9jb25maWd1cmU6IE5ldyBmaWxlLgoJKiB4c3Rvcm15MTYvY29uZmlndXJlLmluOiBOZXcgZmlsZS4KCSogeHN0b3JteTE2L2NydDAuczogTmV3IGZpbGUuCgkqIHhzdG9ybXkxNi9jcnQwX3N0dWIuczogTmV3IGZpbGUuCgkqIHhzdG9ybXkxNi9jcnRpLnM6IE5ldyBmaWxlLgoJKiB4c3Rvcm15MTYvY3J0bi5zOiBOZXcgZmlsZS4KCSogeHN0b3JteTE2L2V2YV9hcHAuYzogTmV3IGZpbGUuCgkqIHhzdG9ybXkxNi9ldmFfYXBwLmxkOiBOZXcgZmlsZS4KCSogeHN0b3JteTE2L2V2YV9zdHViLmxkOiBOZXcgZmlsZS4KCSogeHN0b3JteTE2L2ZzdGF0LmM6IE5ldyBmaWxlLgoJKiB4c3Rvcm15MTYvZ2V0cGlkLmM6IE5ldyBmaWxlLgoJKiB4c3Rvcm15MTYva2lsbC5jOiBOZXcgZmlsZS4KCSogeHN0b3JteTE2L2xzZWVrLmM6IE5ldyBmaWxlLgoJKiB4c3Rvcm15MTYvb3Blbi5jOiBOZXcgZmlsZS4KCSogeHN0b3JteTE2L3NicmsuYzogTmV3IGZpbGUuCgkqIHhzdG9ybXkxNi9zaW1faGlnaC5sZDogTmV3IGZpbGUuCgkqIHhzdG9ybXkxNi9zdGF0LmM6IE5ldyBmaWxlLgoJKiB4c3Rvcm15MTYvc3lzY2FsbHMuUzogTmV3IGZpbGUuCgkqIHhzdG9ybXkxNi9zeXNjYWxscy5tNDogTmV3IGZpbGUuCgkqIHhzdG9ybXkxNi91bmxpbmsuYzogTmV3IGZpbGUuCgkqIHhzdG9ybXkxNi94c3Rvcm15MTZfc3R1Yi5jOiBOZXcgZmlsZS4KCjIwMDEtMTAtMzEgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgoKCSogbTMyci9NYWtlZmlsZS5pbjogVXNlIGdkYiBzdHViIHNldCBieSBjb25maWd1cmUuCgkqIG0zMnIvY29uZmlndXJlLmluOiBBZGQgYSBzcGVjaWFsIG1hY3JvIGZvciB0ZXN0aW5nCgljIGNvbXBpbGVyIHdpdGhvdXQgYnVpbGRpbmcgZXhlY3V0YWJsZS4gIEFkZCBzZXR0aW5nIG9mCglHREJTVFVCLgoJKiBtMzJyL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAxLTEwLTMxICBEYXZpZCBIb3dlbGxzICA8ZGhvd2VsbHNAcmVkaGF0LmNvbT4KCgkqIHN5c2NhbGwuaDogQWRkZWQgU1lTX3RpbWVzLCBTWVNfZ2V0dGltZW9mZGF5LCBTWVNfbGluayB2YWx1ZXMuCiAgICAgICAgKiBtbjEwMzAwL3RpbWVzLmM6IFJlbmFtZWQgInRpbWVzIiB0byAiX3RpbWVzIiBzbyB0aGF0IGl0IGNhbiBiZQogICAgICAgIHJlZmVyZW5jZWQgYnkgbmV3bGliLgogICAgICAgICogbW4xMDMwMC9jeWdtb24uYzogTmV3IGZpbGUuCiAgICAgICAgKiBtbjEwMzAwL2NydDBfcmVkYm9vdC5TOiBEaXR0by4KICAgICAgICAqIG1uMTAzMDAvY3J0MF9jeWdtb24uUzogRGl0dG8uCiAgICAgICAgKiBtbjEwMzAwL01ha2VmaWxlLmluOiBBZGRlZCBSZWRCb290IGFuZCBDeWdtb24gc3VwcG9ydC4KCSogbW4xMDMwMC9jb25maWd1cmUuaW46IENoYW5nZWQgdG8gYWxsb3cgZm9yIGZ1dHVyZQoJZXZhbHVhdGlvbiBib2FyZHMgdG8gYmUgYWRkZWQuCgkqIG1uMTAzMDAvY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDEtMTAtMTcgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckByZWRoYXQuY29tPgoKCSogcmVncy5TIChLMEJBU0VfQUREUixLMUJBU0VfQUREUik6IERlZmluZSBhcyBhZGRyZXNzZXMgdG8KCWlkZW50aWZ5IGlmIGEgcHJvZ3JhbSBpcyBydW5uaW5nIGluIGtlcm5lbCBzZWdtZW50IDAuCgoJKiBjbWExMDEuYyAoX19zaXplbWVtKTogSWYgd2UgYXJlIHJ1bm5pbmcgaW4ga2VybmVsIHNlZ21lbnQgMCwKCWluc3RlYWQgb2Yga2VybmVsIHNlZ21lbnQgMSwgdXNlIGtlcm5lbCBzZWdtZW50IDAgYWRkcmVzc2VzIHdoaWNoCglhcmUgdW5jYWNoZWQgd2hlbiBzaXppbmcgbWVtb3J5LgoKCSogZGRiLWtzZWcwLmxkOiBOZXcgZmlsZSwgY2xvbmUgb2YgZGRiLmxkLCBleGNlcHQgaXQgbGlua3MgdGhlCglwcm9ncmFtIHRvIHJ1biBpbiBrZXJuZWwgc2VnbWVudCAwLCBpbnN0ZWFkIG9mIGtlcm5lbCBzZWdtZW50IDEuCgoJKiBjb25maWd1cmUuaW46IFRyZWF0IGRkYi1rc2VnMC5sZCBsaWtlIGRkYi5sZC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMS0wOS0xNSAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBtaXBzL2NvbmZpZ3VyZS5pbiAoTElCX0FDX1BST0dfQ0MpOiBGaXggdHlwbyBpbiBtaXBzaXNhMzIgdG8KCW1pcHNpc2EzMiouCgkqIG1pcHMvY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMS0wOS0xNCAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBtaXBzL2NvbmZpZ3VyZS5pbjogQWRkIG1pcHNpc2EzMiBzdXBwb3J0LgoJKiBtaXBzL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogbWlwcy9pZHQzMi5sZDogTmV3IGZpbGUuCgkqIG1pcHMvaWR0NjQubGQ6IE5ldyBmaWxlLgoKMjAwMS0wOS0xMSAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQHJlZGhhdC5jb20+CgoJKiBtaXBzL2NydDAuUyAoX3N0YXJ0KTogSWYgLW1mcDMyLCBkb24ndCBlbmFibGUgNjQtYml0IGZsb2F0aW5nCglwb2ludCByZWdpc3RlcnMsIGV2ZW4gaWYgd2UgYXJlIGNvbXBpbGluZyBmb3IgYSBtaXBzMyBvciBncmVhdGVyLgoKMjAwMS0wOS0xMCAgSmltIEJsYW5keSAgPGppbWJAcmVkaGF0LmNvbT4KCglBZGQgc3VwcG9ydCBmb3IgR0RCIG1vbml0b3Itc3R5bGUgSS9PLgoJKiBtNjhrL2lkcC1vdXRieXRlLmMgKHJhd19vdXRieXRlKTogUmVuYW1lZCBmcm9tIG91dGJ5dGU7IG1hZGUKCXN0YXRpYy4KCShvdXRieXRlKTogQ2FsbCByYXdfb3V0Ynl0ZTsgaWYgR0RCX01PTklUT1JfT1VUUFVUIGlzICNkZWZpbmVkLAoJcHJlY2VkZSB0aGUgYnl0ZSB3aXRoIGEgXk8gY2hhcmFjdGVyLgoJKiBtNjhrL2lkcGdkYi5sZDogTmV3IGxpbmtlciBzY3JpcHQuCgkqIG02OGsvTWFrZWZpbGUuaW4gKElEUEdEQl9MREZMQUdTLCBJRFBHREJfQlNQLCBJRFBHREJfT0JKUyk6IE5ldwoJdmFyaWFibGVzLgoJKGFsbCk6IEFkZCAke0lEUEdEQl9CU1B9IHRvIHRoZSBsaXN0IG9mIHRoaW5ncyB0byBidWlsZC4KCSgke0lEUEdEQl9CU1B9LCBpZHAtZ2RiLW91dGJ5dGUubywgaWRwZ2RiLXRlc3QueCwKCWlkcGdkYi10ZXN0LnNyZWMsIGlkcGdkYi10ZXN0LmRpcywgaWRwZ2RiLXRlc3QpOiBOZXcgcnVsZXMuCgkoaW5zdGFsbCk6IEluc3RhbGwgdGhlIElEUEdEQiBzdHVmZiwgdG9vLgoKMjAwMS0wOC0zMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCSAgICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIG1pcHMvY3J0MC5TOiBGaXggZm9yIC5pbml0Ly5maW5pIHNlY3Rpb25zLgoKMjAwMS0wOC0zMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCSAgICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIG1pcHMvaWR0LmxkOiBSZXdyaXRlIGZvciAuaW5pdC8uZmluaSBzZWN0aW9ucy4KCjIwMDEtMDgtMjIgIEpvbmF0aGFuIExhcm1vdXIgIDxqbGFybW91ckByZWRoYXQuY29tPgoKCSogbWlwcy9NYWtlZmlsZS5pbiAoam1yMzkwNC1pby5vKTogUmVtb3ZlIGJvZ3VzIHVzZSBvZiBgLW1pcHMzLicKCjIwMDEtMDctMTggIEplZmYgSm9obnN0b24gIDxqam9obnN0bkByZWRoYXQuY29tPgoKICAgICAgICAqIGhwNzR4L2NvbmZpZ3VyZTogUmVnZW5lcmF0ZWQgd2l0aCBjdXJyZW50IGF1dG9jb25mLgogICAgICAgICogbTMyci9jb25maWd1cmU6IERpdHRvLgogICAgICAgICogbTY4ay9jb25maWd1cmU6IERpdHRvLgogICAgICAgICogcGEvY29uZmlndXJlOiBEaXR0by4KICAgICAgICAqIHNwYXJjL2NvbmZpZ3VyZTogRGl0dG8uCgoyMDAxLTAzLTA4ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgoJKiByczYwMDAvc2ltdWxhdG9yLlMgKGR1cCk6IE5ldyBzeXNjYWxsLgoKMjAwMS0wMi0yOCAgV2lsbCBDb2hlbiAgPHdjb2hlbkByZWRoYXQuY29tPgoKICAgICAgICAqIHNyYy9saWJnbG9zcy9tNjhrL01ha2VmaWxlLmluOiBVcGRhdGVkIGNvcHlyaWdodCBhbmQKICAgICAgICAgYWRkZWQgcnVsZXMgdG8gYnVpbGQgc2ltdWxhdG9yIHJlbGF0ZWQgbGlicmFyaWVzLgogICAgICAgIChTSU1fU0NSSVBUUyk6IE5ldyB2YXJpYWJsZS4KICAgICAgICAoU0lNX0xERkxBR1MpOiBOZXcgdmFyaWFibGUuCiAgICAgICAgKFNJTV9CU1ApOiBOZXcgdmFyaWFibGUuCiAgICAgICAgKFNJTV9DUlQwKTogTmV3IHZhcmlhYmxlLgogICAgICAgIChTSU1fT0JKUyk6IE5ldyB2YXJpYWJsZS4KICAgICAgICAoU0lNX1RFU1QpOiBOZXcgdmFyaWFibGUuCiAgICAgICAgKFNJTV9JTlNUQUxMKTogbmV3IHZhcmlhYmxlLgogICAgICAgICogc3JjL2xpYmdsb3NzL202OGsvc2ltLWFib3J0LmM6IE5ldyBmaWxlLgogICAgICAgICogc3JjL2xpYmdsb3NzL202OGsvc2ltLWNydDAuUzogTmV3IGZpbGUuCiAgICAgICAgKiBzcmMvbGliZ2xvc3MvbTY4ay9zaW0tZXJybm8uYzogTmV3IGZpbGUuCiAgICAgICAgKiBzcmMvbGliZ2xvc3MvbTY4ay9zaW0tZnVuY3MuYzogTmV3IGZpbGUuCiAgICAgICAgKiBzcmMvbGliZ2xvc3MvbTY4ay9zaW0taW5ieXRlLmM6IE5ldyBmaWxlLgogICAgICAgICogc3JjL2xpYmdsb3NzL202OGsvc2ltLXByaW50LmM6IE5ldyBmaWxlLgogICAgICAgICogc3JjL2xpYmdsb3NzL202OGsvc2ltLXNicmsuYzogTmV3IGZpbGUuCiAgICAgICAgKiBzcmMvbGliZ2xvc3MvbTY4ay9zaW0ubGQ6IE5ldyBmaWxlLgogICAgICAgICogc3JjL2xpYmdsb3NzL202OGsvc2ltdWxhdG9yLlM6IE5ldyBmaWxlLgoKMjAwMS0wMi0yMiAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQHJlZGhhdC5jb20+CgoJKiBtbjEwMjAwL2FjY2Vzcy5jOiBXaXRoIERKIERlbG9yaWUncyBwZXJtaXNzaW9uLCB0aGlzIGNvZGUgaXMKCW5vdyBmcmVlbHkgbW9kaWZpYWJsZSB3aXRoIG5vIHJlZmVyZW5jZSB0byAiY29weWluZy5kaiIuCgkqIG1uMTAzMDAvYWNjZXNzLmM6IERpdHRvLgoKMjAwMS0wMi0wNiAgV2lsbCBDb2hlbiAgPHdjb2hlbkByZWRoYXQuY29tPgoKICAgICAgICAqIHJzNjAwMC9zaW0tZXJybm8uYyAoX19lcnJubyk6IFJlbW92ZWQuCiAgICAgICAgKF9jZXJyb3IpOiBVc2UgcmUtZW50cmFudCB2ZXJzaW9uIG9mIGVycm5vLgoKMjAwMC0wOS0wNSAgR2VvZmYgS2VhdGluZyAgPGdlb2Zma0BjeWdudXMuY29tPgoKCSogcnM2MDAwL3NpbXVsYXRvci5TOiBVc2UgY29uZGl0aW9uYWwgcmV0dXJucyBmb3IgZG9jdW1lbnRhdGlvbgoJcHVycG9zZXMuCgkoYWNjZXNzKTogQWRkIG5ldyBzeXNjYWxsLgoKV2VkIE1heSAyNCAxNjo0NzoxMiAyMDAwICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAY3lnbnVzLmNvbT4KCgkqIG1uMTAzMDAvdGltZS5jICh0aW1lKTogU2V0ICp0bG9jLCBzaW5jZSB0aGUgc2ltIGRvZXNuJ3QuCgpNb24gSmFuIDMxIDE4OjQ1OjI2IDIwMDAgIERvbmFsZCBMaW5kc2F5ICA8ZGxpbmRzYXlAY3lnbnVzLmNvbT4KCgkqIG1pcHMvY3J0MC5TOiBJZiBjb21waWxlZCBpbnRvIGEgbWlwczIgbXVsdGlsaWIsIHNldHMgcHJvY2Vzc29yCglzdGF0dXMgcmVnaXN0ZXIgZm9yIDMyIGJpdCBhZGRyZXNzaW5nCgkqIG1pcHMvcmVncy5TOiBBZGQgc3ltYm9scyBmb3Igc3RhdHVzIGFuZCBjb25maWcgcmVnaXN0ZXIgZmllbGRzLgoJKiBtaXBzL3ZyNXh4eC5TOiBWYXJpYW50IG9mIHZyMzAwLlMgd2l0aCBleHRlbnNpb25zIHRvIF9fY3B1X2ZsdXNoKCkKCXRvIGNvcGUgd2l0aCBWcjUwMDAgc2Vjb25kYXJ5IGNhY2hlIGFuZCB3aXRoIFZyNTQzMiBDQUNIRSBpbnN0cnVjdGlvbi4KCSogbWlwcy9NYWtlZmlsZS5pbjogIEFkZCBydWxlIGZvciBmb3JtaW5nIHZyNXh4eC5vLgoJKiBtaXBzL2NvbmZpZ3VyZS5pbjogIEFkZCBjYXNlIGFybSBmb3IgbWlwczY0dnI1MDAwIHNpbmNlIHRoZQoJZGVmYXVsdCAod2hpY2ggd2FzIHByZXZpb3VzbHkgdXNlZCkgc2hvdWxkIG5vdCBnZXQgdnI1eHh4Lm8uCgpXZWQgRGVjIDIyIDE5OjA4OjA5IDE5OTkgIENocmlzdG9waGVyIEZheWxvciA8Y2dmQGN5Z251cy5jb20+CgoJKiB3aW5jZS9NYWtlZmlsZS5hbTogVXNlIExEQUREIGZyb20gY29uZmlndXJlLgoJKiB3aW5jZS9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogd2luY2UvY29uZmlndXJlLmluOiBEZXRlcm1pbmUgbGlicmFyaWVzIG5lZWRlZCBiYXNlZCAoY3J1ZGVseSkgb24KCXRhcmdldC4KCSogd2luY2UvY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMTk5OS0xMi0xNiAgVG9tIFRyb21leSAgPHRyb21leUBjeWdudXMuY29tPgoKCSogbWlwcy9NYWtlZmlsZS5pbiAoam1yMzkwNC1pby5vKTogRG9uJ3QgY29tcGlsZSB3aXRoIGAtbWlwczMnLgoKCSogbWlwcy9qbXIzOTA0LWlvLmM6IEFjdHVhbGx5IGNvbXBsZXRlZCBtZXJnZSBvZiBBbmRyZXcgSGFsZXkncwoJcGF0Y2ggb2YgMTk5OC0xMS0yMy4KCgkqIG1pcHMvam1yMzkwNGRyYW0tamF2YS5sZDogUHJvdmlkZSBfSnZfUXRocmVhZHNTdGFja1NpemUuICBMaW5rCglhZ2FpbnN0IC1sZ2NqY29vcCwgbm90IC1scXRocmVhZHMuCgkqIG1pcHMvam1yMzkwNGFwcC1qYXZhLmxkOiBQcm92aWRlIF9Kdl9RdGhyZWFkc1N0YWNrU2l6ZS4KCjE5OTktMTItMTYgIEJyZW5kYW4gS2Vob2UgIDxicmVuZGFuQGN5Z251cy5jb20+CgoJKiBtNjhrL2lkcC5sZDogT25seSB1c2Ugc3BlY2lmaWMgLmR0b3JzIGFuZCAuY3RvcnMgdXNlcyBvZiBLRUVQLAoJd2l0aG91dCB0aGUgYml0cyBmb3IgX197QyxEfVRPUl97TElTVCxFTkR9X18uCgoxOTk5LTEyLTE0ICBHZW9mZiBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiBtNjhrL2lkcC5sZCAoLnRleHQpOiBQdXQgY3J0YmVnaW4gYXQgdGhlIHN0YXJ0IG9mIHRoZQoJY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycy4KCk1vbiBOb3YgMjkgMTI6MTQ6NDggMTk5OSAgQ2hyaXN0b3BoZXIgRmF5bG9yIDxjZ2ZAY3lnbnVzLmNvbT4KCgkqIHdpbmNlL01ha2VmaWxlLmFtOiBBZGQgbWlzc2luZyBnZGJkaXIgYXNzaWdubWVudC4KCSogd2luY2UvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoxOTk5LTExLTIyICBHYXZpbiBSb21pZy1Lb2NoICA8Z2F2aW5AY3lnbnVzLmNvbT4KCiAgICAgICAqIG1pcHMvaWR0LmxkOiBSZW1vdmUgdGhlIE9VVFBVVF9BUkNIKCJtaXBzOjQwMDAiKSBkaXJlY3RpdmUuCgoxOTk5LTExLTE1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgYXJtLXdpbmNlLXBlIHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMTk5OS0xMS0xMSAgQnJlbmRhbiBLZWhvZSAgPGJyZW5kYW5AY3lnbnVzLmNvbT4KCgkqIHNwYXJjL2VsZnNpbS5sZCAoLnRleHQpOiBBbHNvIHByb3ZpZGUgX19FSF9GUkFNRV9CRUdJTl9fIHNpbmNlIHdlJ3JlCglub3QgYnJpbmdpbmcgaW4gY3J0YmVnaW4uby4KCSogc3BhcmMvc3BhcmM4NngubGQgKC50ZXh0KTogTGlrZXdpc2UuICAgQWRkIGluaXRwIHN1cHBvcnQuCgoxOTk5LTEwLTMwICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiBtaXBzL2NydDAuUzogSGFuZGxlIC1tZW1iZWRkZWQtcGljIHByb3Blcmx5LiAgU2V0IHRoZSAkZ3AgbXVjaAogCWVhcmxpZXIgYmVjYXVzZSBpdCdsbCBiZSBuZWVkZWQuICBTZXQgdGhlIGhpZ2ggYml0cyBvZiB0aGUgUEMgdG8KIAliZSBjb25zaXN0ZW50IHdpdGggb3RoZXIgcG9pbnRlcnMsIHNvIHRoYXQgZXhjZXB0aW9uIGhhbmRsaW5nCiAJZG9lc24ndCBnZXQgY29uZnVzZWQuCgoxOTk5LTA5LTI3ICBKb25hdGhhbiBMYXJtb3VyICA8amxhcm1vdXJAY3lnbnVzLmNvLnVrPgoKCSogc3BhcmMvY3J0MC5zOiBEZWxldGUuIFRoaXMgZmlsZSBpcyBvYnNvbGV0ZSBhbmQgY2F1c2VkIHByb2JsZW1zCglvbiBjYXNlLWluc2Vuc2l0aXZlIHdpbmRvd3MgZmlsZXN5c3RlbXMuCgpXZWQgU2VwIDIyIDE1OjU5OjE3IDE5OTkgIENocmlzdG9waGVyIEZheWxvciA8Y2dmQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW46IEdlbmVyYWxpemUgV2luZG93cyBDRSB0YXJnZXQgZGV0ZWN0aW9uLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHdpbmNlL01ha2VmaWxlLmFtOiBSZW5hbWUgQ0Ugc3R1YiBmaWxlbmFtZS4KCSogd2luY2UvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHdpbmNlL2NvbmZpZ3VyZS5pbjogQWxsb3cgY2hhbmdpbmcgb2YgQ0Ugc3R1Yi4KCSogd2luY2UvY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMTk5OS0wNy0yNiAgQW5kcmV3IEhhbGV5ICA8YXBoQGN5Z251cy5jb20+CgoJKiBtMzJyL2NydDAuUyAoX3N0YXJ0KTogVXNlIGEgZnVsbCB3b3JkIGltbWVkaWF0ZSBmb3IgX19ic3Nfc3RhcnQKCWFuZCBfZW5kIHRvIGFsbG93IHRoZW0gdG8gYmUgcGxhY2VkIGFueXdoZXJlIGluIG1lbW9yeS4KCjE5OTktMDctMDggIEphc29uIE1lcnJpbGwgIDxqYXNvbkB5b3JpY2suY3lnbnVzLmNvbT4KCgkqIHNwYXJjL2VsZnNpbS5sZDogUHJvdmlkZSBpbml0cCBzdXBwb3J0LgoKMTk5OS0wNi0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIG1pcHMvZHZlLmxkICgucmRhdGEpOiBSZW5hbWUgc2VjdGlvbiB0byAucm9kYXRhLgoJKiBtaXBzL2lkdC5sZCAoLnJkYXRhKTogUmVuYW1lIHNlY3Rpb24gdG8gLnJvZGF0YS4KCSogbWlwcy9qbXIzOTA0YXBwLWphdmEubGQgKC5yZGF0YSk6IFJlbmFtZSBzZWN0aW9uIHRvIC5yb2RhdGEuCgkqIG1pcHMvam1yMzkwNGFwcC5sZCAoLnJkYXRhKTogUmVuYW1lIHNlY3Rpb24gdG8gLnJvZGF0YS4KCSogbWlwcy9sc2kubGQgKC5yZGF0YSk6IFJlbmFtZSBzZWN0aW9uIHRvIC5yb2RhdGEuCgkqIG1pcHMvbnVsbG1vbi5sZCAoLnJkYXRhKTogUmVuYW1lIHNlY3Rpb24gdG8gLnJvZGF0YS4KCSogbWlwcy9wbW9uLmxkICgucmRhdGEpOiBSZW5hbWUgc2VjdGlvbiB0byAucm9kYXRhLgoJKiBtaXBzL3I1OTAwLmxkICgucmRhdGEpOiBSZW5hbWUgc2VjdGlvbiB0byAucm9kYXRhLgoJKiBtaXBzL3NreS5sZCAoLnJkYXRhKTogUmVuYW1lIHNlY3Rpb24gdG8gLnJvZGF0YS4KCSogbWlwcy92cHUubGQgKC5yZGF0YSk6IFJlbmFtZSBzZWN0aW9uIHRvIC5yb2RhdGEuCgpUdWUgSnVuIDAxIDE2OjU3OjQ2IDE5OTkgIEplZmYgSm9obnN0b24gPGpqb2huc3RuQGN5Z251cy5jb20+CgoJKiBsaWJub3N5cy9jb25maWd1cmUuaW46IEFkZGVkIHNldHRpbmcgb2YgYWNfZmlsZQoJcHJpb3IgdG8gY2FsbGluZyBjb25maWctbWwuaW4uCgkqIGxpYm5vc3lzL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgkqIGxpYm5vc3lzL01ha2VmaWxlLmluOiBBZGRlZCBjb2RlIHRvIG1ha2UgaW5zdGFsbCBkaXJlY3RvcnkKCWZvciBsaWJub3N5cy5hIHByaW9yIHRvIGluc3RhbGxpbmcuCgpXZWQgTWF5IDI2IDE3OjIyOjQ2IDE5OTkgIENocmlzdG9waGVyIEZheWxvciA8Y2dmQGN5Z251cy5jb20+CgoJKiBNYWtlZmlsZS5hbTogRXhwZWN0IHRoZSBvYmplY3QgZmlsZSB0byBiZSBpbiB0aGUKCWN1cnJlbnQgZGlyZWN0b3J5LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KClR1ZSBNYXkgMjUgMTQ6MzU6MjEgMTk5OSAgQ2hyaXN0b3BoZXIgRmF5bG9yIDxjZ2ZAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHdpbmNlIHRhcmdlc3QuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogd2luY2U6IE5ldyBkaXJlY3RvcnkKCSogd2luY2UvTWFrZWZpbGUuYW06IE5ldyBmaWxlLgoJKiB3aW5jZS9NYWtlZmlsZS5pbjogTmV3IGZpbGUuCgkqIHdpbmNlL2FjbG9jYWwubTQ6IE5ldyBmaWxlLgoJKiB3aW5jZS9jb25maWd1cmU6IE5ldyBmaWxlLgoJKiB3aW5jZS9jb25maWd1cmUuaW46IE5ldyBmaWxlLgoKMTk5OS0wNS0yNCAgSmltIFdpbHNvbiAgPHdpbHNvbkBjeWdudXMuY29tPgoKCSogc3BhcmMvZWxmc2ltLmxkOiBBZGQgYC5kYXRhLionLgoKMTk5OS0wNS0yMiAgSmFzb24gTWVycmlsbCAgPGphc29uQHlvcmljay5jeWdudXMuY29tPgoKCSogbTY4ay9pZHAubGQ6IEFkZCBpbml0cCBzdXBwb3J0LgoJKiBzcGFyYy9jeWdtb24ubGQuc3JjOiBMaWtld2lzZS4KCjE5OTktMDUtMTQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBtY29yZS9zeXNjYWxscy5TIChfc2Jyayk6IFJvdW5kIHRvIDggYnl0ZXMgbm90IDQuCgoxOTk5LTA1LTEzICBNYXJrIFNhbHRlciAgPG1zYWx0ZXJAY3lnbnVzLmNvbT4KCgkqIG1jb3JlL2NvbmZpZ3VyZS5pbjogRml4ZWQgbXVsdGlsaWIgc3VwcG9ydC4KCSogbWNvcmUvY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCSogbWNvcmUvTWFrZWZpbGUuaW46IEZpeGVkIG11bHRpbGliIHByb2JsZW1zLgoJQWRkZWQgY21iIGJvYXJkIHN1cHBvcnQKCSogbWNvcmUvY2xvc2UuYzogTmV3IGZpbGUuCgkqIG1jb3JlL2NtYi1leGl0LmM6IERpdHRvLgoJKiBtY29yZS9jbWItaW5ieXRlLmM6IERpdHRvLgoJKiBtY29yZS9jbWItb3V0Ynl0ZS5jOiBEaXR0by4KCSogbWNvcmUvZWxmLWNtYi5sZDogRGl0dG8uCgkqIG1jb3JlL2VsZi1jbWIuc3BlY3M6IERpdHRvLgoJKiBtY29yZS9mc3RhdC5jOiBEaXR0by4KCSogbWNvcmUvZ2V0cGlkLmM6IERpdHRvLgoJKiBtY29yZS9raWxsLmM6IERpdHRvLgoJKiBtY29yZS9sc2Vlay5jOiBEaXR0by4KCSogbWNvcmUvb3Blbi5jOiBEaXR0by4KCSogbWNvcmUvcGUtY21iLmxkOiBEaXR0by4KCSogbWNvcmUvcGUtY21iLnNwZWNzOiBEaXR0by4KCSogbWNvcmUvcHJpbnQuYzogRGl0dG8uCgkqIG1jb3JlL3B1dG51bS5jOiBEaXR0by4KCSogbWNvcmUvcmFpc2UuYzogRGl0dG8uCgkqIG1jb3JlL3JlYWQuYzogRGl0dG8uCgkqIG1jb3JlL3NicmsuYzogRGl0dG8uCgkqIG1jb3JlL3N0YXQuYzogRGl0dG8uCgkqIG1jb3JlL3VubGluay5jOiBEaXR0by4KCSogbWNvcmUvd3JpdGUuYzogRGl0dG8uCgkqIG1jb3JlL2Mtc3lzY2FsbHMuYzogUmVtb3ZlZC4KCjE5OTktMDUtMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBtY29yZS9zeXNjYWxscy5TIChfd3JpdGUpOiBVc2UgMHg1MEZGIGluc3RlYWQgb2YgdHJhcCAxLgoJVGlkeSB1cCBjb2RlIGxheW91dC4KCjE5OTktMDUtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBtY29yZS9NYWtlZmlsZS5pbjogRml4IGJ1aWxkIHJ1bGUuCgkqIG1jb3JlL3N5c2NhbGxzLnM6IFJlbmFtZSB0byBzeXNjYWxscy5TCgoxOTk5LTA1LTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogbWNvcmUvY29uZmlndXJlLmluOiBEZXBlbmQgdXBvbiBjcnQwLlMgbm90IGNydDAucy4KCSogbWNvcmUvY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMTk5OS0wNC0yOSAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIG1jb3JlL2NydDAuUzogUmVuYW1lZCBmaWxlIGZyb20gY3J0MC5zLgoJT25seSBpbnZva2UgaW5pdCgpIGFuZCBmaW5pKCkgcm91dGluZXMgZm9yIEVMRiBidWlsZHMuCglVc2UgX19ic3Nfc3RhcnRfXyBhbmQgX19ic3NfZW5kX18gdG8gbG9jYXRlIC5ic3Mgc2VjdGlvbi4KCjE5OTktMDQtMjYgIEFuZ2VsYSBNYXJpZSBUaG9tYXMgPGFuZ2VsYUBjeWdudXMuY29tPgoKICAgICAgICAqIG1pcHMvYXJyYXkubGQ6ICBGaXggRUxGIGN0b3IvZHRvciBzdXBwb3J0LgogICAgICAgICogbWlwcy9kZGIubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9kdmUubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9pZHQubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9qbXIzOTA0YXBwLmxkOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvbHNpLmxkOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvbnVsbG1vbi5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL3Btb24ubGQ6IExpa2V3aXNlLgoJKiBtaXBzL3I1OTAwLmxkOiBMaWtld2lzZS4KCSogbWlwcy9za3kubGQ6IExpa2V3aXNlLgoJKiBtaXBzL3ZwdS5sZDogTGlrZXdpc2UuCgoxOTk5LTA0LTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogbWNvcmUvY3J0MC5zOiBJbml0aWFsaXNlIGRhdGEgc2VjdGlvbiwgY2FsbCBfaW5pdCBhbmQgX2ZpbmkuCgoJKiBtY29yZS9zeXNjYWxscy5zIChfZXhpdCk6IFJlbmFtZWQgZnJvbSBfX2V4aXQuCgoJKiBmcjMwL2NydDAucyAoX3N0YXJ0KTogSW5pdGlhbGlzZSBhcmdbY3ZdIGFmdGVyIGNhbGxpbmcgX2luaXQgYW5kCglhdGV4aXQuCgoxOTk5LTA0LTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogbWNvcmUvY3J0MC5zIChfc3RhcnQpOiBVc2UgLmxvbmcgZGlyZWN0aXZlLCBub3QgLndvcmQuCgoJKiBtY29yZS9zeXNjYWxscy5zIChfc2Jyayk6IGZpeCBzeW50YXguCgoxOTk5LTA0LTIwICBKYXNvbiBNb2xlbmRhICAoanNtQGJ1Z3NoYWNrLmN5Z251cy5jb20pCgoJKiBzcGFyYy9zcGFyYzg2LmxkOiBTZXQgYWxpZ25tZW50IGZvciB0aGUgLmRhdGEgc2VjdGlvbi4KCjE5OTktMDQtMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBtY29yZSB0YXJnZXRzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIG1jb3JlOiBOZXcgZGlyZWN0b3J5LgoJKiBtY29yZS9NYWtlZmlsZS5pbjogTmV3IEZpbGU6IG1ldGEgTWFrZWZpbGUuCgkqIG1jb3JlL2NvbmZpZ3VyZS5pbjogTmV3IEZpbGU6IG1ldGEgY29uZmlndXJlIGZpbGUuLgoJKiBtY29yZS9jb25maWd1cmU6IE5ldyBGaWxlOiBHZW5lcmF0ZWQuCgkqIG1jb3JlL2NydDAuczogTmV3IEZpbGU6IG1jb3JlIHN0YXJ0dXAgY29kZS4KCSogbWNvcmUvc3lzY2FsbHMuczogTmV3IEZpbGU6IEFzc2VtYmxlciBzeXN0ZW0gY2FsbCBzdHVicy4KCSogbWNvcmUvYy1zeXNjYWxscy5jOiBOZXcgRmlsZTogQyBzeXN0ZW0gY2FsbCBzdHVicy4KClR1ZSBBcHIgMTMgMTc6MjA6MzQgMTk5OSAgQ2F0aGVyaW5lIE1vb3JlICA8Y2xtQGN5Z251cy5jb20+CgogICAgICAgICogbWlwcy9hcnJheS5sZDogIFN1cHBvcnQgbGlua29uY2Ugc2VjdGlvbnMuCiAgICAgICAgKiBtaXBzL2RkYi5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL2R2ZS5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL2lkdC5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL2ptcjM5MDRhcHAubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9qbXIzOTA0YXBwLWphdmEubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9qbXIzOTA0ZHJhbS5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL2ptcjM5MDRkcmFtLWphdmEubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9sc2kubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9udWxsbW9uLmxkOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvcG1vbi5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL3I1OTAwLmxkOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvc2t5LmxkOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvdnB1LmxkOiBMaWtld2lzZS4KCk1vbiBBcHIgMTIgMjE6MDE6NDYgMTk5OSAgQ2F0aGVyaW5lIE1vb3JlICA8Y2xtQGN5Z251cy5jb20+CgogICAgICAgICogbWlwcy9hcnJheS5sZDogIEFkZCBFTEYgY3Rvci9kdG9yIHN1cHBvcnQuCiAgICAgICAgKiBtaXBzL2RkYi5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL2R2ZS5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL2lkdC5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL2ptcjM5MDRhcHAubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9sc2kubGQ6IExpa2V3aXNlLgogICAgICAgICogbWlwcy9udWxsbW9uLmxkOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvcG1vbi5sZDogTGlrZXdpc2UuCiAgICAgICAgKiBtaXBzL3I1OTAwLmxkOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvc2t5LmxkOiBMaWtld2lzZS4KICAgICAgICAqIG1pcHMvdnB1LmxkOiBMaWtld2lzZS4KClN1biBBcHIgMTEgMDA6NDM6MzQgMTk5OSAgSmltIFdpbHNvbiAgPHdpbHNvbkBjeWdudXMuY29tPgoKCSogaTk2MC9jcnQwLmMgKF9zdGFydCk6IEluY3JlYXNlIHN0YWNrIHNpemUgdG8gMjU2Sy4KCldlZCBNYXIgMzEgMTc6NTY6NDEgMTk5OSAgQm9iIE1hbnNvbiAgPG1hbnNvbkBjaGFybWVkLmN5Z251cy5jb20+CgoJKiBpMzg2L2N5Z21vbi1zYWxpYi5jOiBBZGQgcmVhZCBhbmQgd3JpdGUgc3lzY2FsbCBzdXBwb3J0LgoJKiBpMzg2L2N5Z21vbi1zeXNjYWxsLmg6IERpdHRvLgoKCSogaTM4Ni9jeWdtb24tZ21vbi5bY2hdOiBQcm9maWxlIHN1cHBvcnQuCgpTdW4gRmViIDI4IDIzOjM5OjMyIDE5OTkgIEdlb2ZmcmV5IE5vZXIgIDxub2VyQGN5Z251cy5jb20+CgoJKiBsaWJub3N5cy9jb25maWd1cmUuaW46IENoZWNrIGN5Z3dpbiosIG5vdCBjeWd3aW4zMi4KCSogbGlibm9zeXMvY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMTk5OS0wMi0xOCAgVG9tIFRyb21leSAgPHRyb21leUBjeWdudXMuY29tPgoKCSogbWlwcy9jb25maWd1cmU6IFJlYnVpbHQuCgkqIG1pcHMvY29uZmlndXJlLmluIChzY3JpcHRfbGlzdCk6IEFkZGVkIGptcjM5MDRkcmFtLWphdmEgYW5kCglqbXIzOTA0YXBwLWphdmEuCgkqIG1pcHMvam1yMzkwNGRyYW0tamF2YS5sZDogTmV3IGZpbGUuCgkqIG1pcHMvam1yMzkwNGRyYW0ubGQ6IERvbid0IG1lbnRpb24gLWxxdGhyZWFkcy4KCSogbWlwcy9qbXIzOTA0YXBwLWphdmEubGQ6IE5ldyBmaWxlLgoJKiBtaXBzL2ptcjM5MDRhcHAubGQ6IERvbid0IG1lbnRpb24gLWxnY2pjb29wLgoKV2VkIEZlYiAxNyAxMzoyNzoyNCAxOTk5ICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBtNjhrL2NydDAuUyAoc3RhcnQpOiBVc2UganBibCBub3Qgam1pIGluIGNvbGRmaXJlIGNvZGUuCgoxOTk5LTAyLTE4ICBUb20gVHJvbWV5ICA8dHJvbWV5QGN5Z251cy5jb20+CgoJKiBNZXJnZSBmcm9tIGJyYW5jaDoKCglUdWUgRmViIDE2IDEyOjU3OjA2IFBTVCAxOTk5ICBBbmdlbGEgTWFyaWUgVGhvbWFzICA8YW5nZWxhQGN5Z251cy5jb20+CgoJKiBtaXBzL2ptcjM5MDRhcHAubGQ6IENoYW5nZSAtbHF0aHJlYWRzIHRvIC1sZ2NqY29vcCBkdWUgdG8KCWxpYnJhcnkgbmFtZSBjaGFuZ2UuCgoJVGh1IEZlYiAgNCAxNjoxNTo0NCAxOTk5ICBXYXJyZW4gTGV2eSAgPHdhcnJlbmxAY3lnbnVzLmNvbT4KCgkqIG1pcHMvY29uZmlndXJlLmluIChzY3JpcHRfbGlzdCk6IEFkZGVkIGptcjM5MDRkcmFtLmxkLgoJKiBtaXBzL2NvbmZpZ3VyZTogUmVidWlsdC4KCglUaHUgSmFuIDIxIDE5OjExOjQ1IDE5OTkgIFdhcnJlbiBMZXZ5ICA8d2FycmVubEBjeWdudXMuY29tPgoKCSogbWlwcy9qbXIzOTA0ZHJhbS5sZDogQ3JlYXRlZC4KCglXZWQgRGVjIDMwIDExOjE1OjQ2IDE5OTggIEFudGhvbnkgR3JlZW4gIDxncmVlbkBjeWdudXMuY29tPgoKCSogbWlwcy9qbXIzOTA0YXBwLmxkOiBsaWJnY2MgaXMgZGVwZW5kZW50IG9uIGxpYnF0aHJlYWRzLCBzbwoJaXQgbXVzdCBiZSBsaW5rZWQgaXQuCgoJV2VkIERlYyAzMCAxMTowNDo1NCAxOTk4ICBBbnRob255IEdyZWVuICA8Z3JlZW5AY3lnbnVzLmNvbT4KCgkqIG1pcHMvam1yMzkwNGFwcC5sZDogTWFrZSBzdXJlIHRoZSBzdGFjayBvd25zIGFsbCA4ayBwbHVzCgl0aGUgcGFkZGluZyBhbGxvY2F0ZWQgZm9yIGFsaWdubWVudC4KCgkxOTk4LTExLTIzICBBbmRyZXcgSGFsZXkgIDxhcGhAdmlhZ3JhLmN5Z251cy5jby51az4KCgkqIG1pcHMvam1yMzkwNC1pby5jOiBjaGFuZ2UgZ2V0X21lbV9pbmZvKCkgdG8gdXNlIF9tZW1fc2l6ZQoJaW1wb3J0ZWQgZnJvbSB0aGUgbGlua2VyIHNjcmlwdC4KCSogbWlwcy9qbXIzOTA0YXBwLmxkOiBQcm92aWRlIF9tZW1fc2l6ZS4KCgkqIG1pcHMvam1yMzkwNGFwcC5sZDogQWxsb2NhdGUgOGsgYnl0ZXMgZm9yIHN0YWNrLgoKCTE5OTgtMTEtMTkgIEFuZHJldyBIYWxleSAgPGFwaEB2aWFncmEuY3lnbnVzLmNvLnVrPgoKCSogbWlwcy9jcnQwLlM6IHNldCBhcmdjIHRvIDAgYmVmb3JlIGNhbGxpbmcgbWFpbigpCgkqIGdldF9tZW1faW5mbygpIHdhcyBpbmNvcnJlY3Q7IGptcjM5MDQgaGFzIDFNIG1heCBvZiBTUkFNLgoKCVdlZCBOb3YgIDQgMTU6Mjg6NDQgMTk5OCAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQGN5Z251cy5jb20+CgoJKiBtaXBzL2ptcjM5MDQtaW8uYzogSW1wbGVtZW50IGdldF9tZW1faW5mbygpLgoKCVdlZCBOb3YgIDQgMTU6MjI6NDEgMTk5OCAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQGN5Z251cy5jb20+CgoJKiBtaXBzL01ha2VmaWxlLmluOiBSZW5hbWUgbGlidHgzOWptci5hIHRvIGxpYmptcjM5MDQuYS4KCSogbWlwcy9jb25maWd1cmUuaW46IERpdHRvLgoJKiBtaXBzL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCglUdWUgTm92ICAzIDE1OjM5OjE0IDE5OTggIEFuZ2VsYSBNYXJpZSBUaG9tYXMgKGFuZ2VsYUBjeWdudXMuY29tKQoKCSogbWlwcy9jb25maWd1cmUuaW46IEFkZCBqbXIzOTA0YXBwIHRvIHNjcmlwdCBsaXN0IGZvciB0eDM5LgoJKiBtaXBzL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjE5OTktMDItMDggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBsaWJub3N5cy9jb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBTdHJvbmdBUk0gdGFyZ2V0LgoJKiBsaWJub3N5cy9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgpUaHUgRmViICA0IDEwOjU2OjU5IDE5OTkgIEplZmYgSm9obnN0b24gIDxqam9obnN0bkBjeWdudXMuY29tPgoKCSogZDMwdi9zeXNjYWxscy5jICh0aW1lKTogQWRkZWQgY29kZSB0byBob25vciBhcmd1bWVudAoJcGFzc2VkIHRvIHRpbWUgd2hpY2ggaXMgZWl0aGVyIGEgcG9pbnRlciB0byBhIHRpbWVfdAoJdmFsdWUgdG8gc2V0IG9yIGlzIHRoZSBOVUxMIHBvaW50ZXIuCgoxOTk5LTAyLTAzICBLZWl0aCBTZWl0eiAgPGtlaXRoc0BjeWdudXMuY29tPgoKICAgICAgICAqIG0zMnIvbTMyci1saWIuYyAocnhfY2hhcik6IFJlbmFtZSByeF91Y2hhciBhbmQgcmV0dXJuCiAgICAgICAgb25seSB1bnNpZ25lZCBjaGFycy4KICAgICAgICAoZ2V0RGVidWdDaGFyMik6IFJlbW92ZSBhbmQgaW50ZWdyYXRlIHN1cHBvcnQgaW50byAiTSIKICAgICAgICBwYWNrZXQgY29kZS4KCjE5OTktMDEtMjkgIERvdWcgRXZhbnMgIDxkZXZhbnNAY2FzZXkuY3lnbnVzLmNvbT4KCgkqIHNwYXJjL2VyYzMyLWNydDAuUyAoX2V4aXQpOiBTZXQgbWFnaWMgbnVtYmVyIGZvciBzaW11bGF0b3IuCgkqIHNwYXJjL3RyYXBzLlMgKHdpbl9mbHVzaCk6IE1ha2Ugc3VyZSAlc3AgaXMgdmFsaWQgYmVmb3JlIGZsdXNoaW5nCglhbGwgd2luZG93cy4KClR1ZSBKYW4gMTkgMDY6MTk6NTEgMTk5OSAgSmVmZnJleSBBIExhdyAgKGxhd0BjeWdudXMuY29tKQoKCSogbW4xMDMwMC9jcnQwLlM6IFVzZSAiLnN0YWNrIiBmb3IgdGhlIG5hbWUgb2YgdGhlIHN0YWNrIHNlY3Rpb24sCglub3QgIi5fc3RhY2siLiAgUmVtb3ZlIG1uMTAyMDAgc3VwcG9ydC4KCSogbW4xMDMwMC90cmFwLlM6IFJlbW92ZSBtbjEwMjAwIHN1cHBvcnQuCgkqIG1uMTAzMDAvc2ltLmxkOiBDb2xsZWN0ICooLnN0YWNrKSAqKC5fc3RhY2spIGlucHV0IHNlY3Rpb25zIGludG8KCXRoZSAuc3RhY2sgb3V0cHV0IHNlY3Rpb24gdG8gYmUgc2FmZS4KCSogbW4xMDMwMC9ldmFsLmxkOiBMaWtld2lzZS4KCgkqIG1uMTAyMDAvY3J0MC5TOiBVc2UgIi5zdGFjayIgZm9yIHRoZSBuYW1lIG9mIHRoZSBzdGFjayBzZWN0aW9uLAoJbm90ICIuX3N0YWNrIi4KCSogbW4xMDIwMC9zaW0ubGQ6IENvbGxlY3QgKiguc3RhY2spICooLl9zdGFjaykgaW5wdXQgc2VjdGlvbnMgaW50bwoJdGhlIC5zdGFjayBvdXRwdXQgc2VjdGlvbiB0byBiZSBzYWZlLgoJKiBtbjEwMjAwL2V2YWwubGQ6IExpa2V3aXNlLgoKMTk5OS0wMS0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGZyMzAvTWFrZWZpbGUuaW46IFNldCB0YXJnZXQgb2YgaW5zdGFsbCB0byBiZSBTSU1fSU5TVEFMTCBub3QKCU1PTl9JTlNUQUxMLgoKCSogZnIzMC9jcnQwLnMgKF9zdGFydCk6IFVzZSBhdGV4aXQgdG8gY2FsbCBDKysgZ2xvYmFsCglkZXN0cnVjdG9ycy4gIFBhdGNoIGZyb20gTWFyayBTYWx0ZXIgPG1zYWx0ZXJAY3lnbnVzLmNvbT4KCjE5OTktMDEtMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBmcjMwL2NydDAuczogUmVtb3ZlIC5zdGFjayBzZWN0aW9uIC0gaXQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KCjE5OTktMDEtMTEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBmcjMwL2NydDAucyAoX3N0YXJ0KTogQWRkIGNhbGxzIHRvIF9pbml0IGFuZCBfZmluaSBmb3IgQysrCglnbG9iYWwgY29uc3RydWN0b3IvZGVzdHJ1Y3RvciBzdXBwb3J0LgoKMTk5OS0wMS0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGZyMzAvY3J0MC5zIChfc3RhcnQpOiBBcHBseSBwYXRjaCBmcm9tIE1hcmsgU2FsdGVyCgk8bXNhbHRlckBjeWdudXMuY29tPiB0byBjb3BlIHdpdGggaW5pdGlhbGlzaW5nIC5ic3MgYXJlYXMgdGhhdCBhcmUKCW5vdCB3b3JkIHNpemVkLgoKMTk5OC0xMi0yMyAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGN5Z251cy5jb20+CgoJKiBtNjhrL2lkcC5sZCAoLmVoX2ZyYW1lKTogQWRkIHNlY3Rpb24gdG8gdGhlIC50ZXh0IHNlZ21lbnQuCgkoX197SU5JVCxGSU5JfV9fU0VDVElPTl9fKTogQWxpZ24gdG8gYSA0IGJ5dGUgYm91bmRhcnkuCgkoLmdjY19leGNlcHRfdGFibGUpOiBEaXR0by4KCk1vbiBEZWMgMjEgMjI6NDU6MDUgMTk5OCAgTWFyayBBbGV4YW5kZXIgIDxtYXJrYUBjeWdudXMuY29tPgoKCSogc2gvc2gxbGNldmIubGQ6IEFkZCBEV0FSRiBzZWN0aW9ucy4KCSogc2gvc2gybGNldmIubGQ6IERpdHRvLgoJKiBzaC9zaDNsY2V2Yi5sZDogRGl0dG8uCgkqIHNoL3NoM2JiLmxkOiBEaXR0by4KCkZyaSBEZWMgMTggMjI6MDc6MjEgMTk5OCAgQm9iIE1hbnNvbiAgPG1hbnNvbkBjaGFybWVkLmN5Z251cy5jb20+CgoJKiBpMzg2L2N5Z21vbi5sZDogTWFrZSBzdXJlIC1sY3lnbW9uIGFwcGVhcnMgYm90aCBiZWZvcmUKCWFuZCBhZnRlciAtbGMsIHNvIHdlIHBpY2sgdXAgZnVuY3Rpb25zIGZyb20gdGhlcmUgaW4KCXByZWZlcmVuY2UgdG8gbGliYyBmdW5jdGlvbnMuCgoJKiBpMzg2L2N5Z21vbi1zYWxpYi5jOiBBZGQgc3lzY2FsbHMgZm9yIHRpbWUgYW5kIGdldHRpbWVvZmRheS4KCURvbid0IGFkZCBfX2RvX2dsb2JhbF9jdG9ycyAoKSBhbmQgX19kb19nbG9iYWxfZHRvcnMgKCkgaWYKCXdlJ3JlIG9uIGEgY29mZiB0YXJnZXQuCgkob3Blbik6IEFkZCBkdW1teSBmdW5jdGlvbiBzbyBwbHVtaGFsbCB3aWxsIGNvbXBpbGUuCgkoY2xvY2spOiBSZXBsYWNlbWVudCBmb3IgY2xvY2sgKCkgc3lzY2FsbCB0aGF0IHVzZXMKIAlnZXR0aW1lb2ZkYXkoKS4KCgoxOTk4LTEyLTE4ICBHYXZpbiBSb21pZy1Lb2NoICA8Z2F2aW5AY3lnbnVzLmNvbT4KCgkqIG1pcHMvTWFrZWZpbGUuaW4sIG1pcHMvdnI0MzAwLlM6IE1vdmUgdGhlIC1taXBzMyBpbnRvIHZyNDMwMC5TLgoKMTk5OC0xMi0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGZyMzAvc3lzY2FsbHMuYzogSW5jbHVkZSAuLi9zeXNjYWxsLmggbm90IC4uLy4uL3NpbS9mcjMwL3RhcmctdmFscy5oCgkoX29wZW4pOiBSZXR1cm4gZmlsZSBkZXNjcmlwdG9yIGFsbG9jYXRlZCBieSBzaW11bGF0b3IuCgkoaXNhdHR5KTogQWx3YXlzIGZhbHNlIHRvIGF2b2lkIGhhdmluZyB0byBjb3BlIHdpdGggcmVhZHMgZnJvbQoJc3RkaW4uICBGb3IgTm93Li4uCgoxOTk4LTEyLTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogZnIzMC9NYWtlZmlsZS5pbjogQWRkIGxpYnJhcmllcyB0byBjbGVhbiB0YXJnZXQuCgoJKiBmcjMwL3N5c2NhbGxzLmMgKF93cml0ZSk6IFNhdmUgbGVuZ3RoIHNvIHRoYXQgaXQgY2FuIGJlIHJldHVybmVkCgl0byBjYWxsZXIuCgoJKiBmcjMwL2NydDAucyAoX3N0YXJ0KTogSW5pdGlhbGlzZSBhcmdjLCBhcmd2IGFuZCBlbnZwIGJlZm9yZQoJY2FsbGluZyBtYWluKCkuCgoxOTk4LTEyLTE1ICBHYXZpbiBSb21pZy1Lb2NoICA8Z2F2aW5AY3lnbnVzLmNvbT4KCgkqIG1pcHMvZGRiLmxkIChPVVRQVVRfQVJDSCk6IFJlbW92ZS4KCjE5OTgtMTItMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBmcjMwL3N5c2NhbGxzLmM6IFJlbW92ZSBzdHViIGZvciBhYm9ydCBhbmQgYWRkIHN0dWJzIGZvciBfa2lsbAoJYW5kIF9nZXRwaWQuCgoxOTk4LTEyLTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgZnIzMCB0YXJnZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogZnIzMDogTmV3IGRpcmVjdG9yeS4KCSogZnIzMC9NYWtlZmlsZS5hbTogTmV3IGZpbGUgLSBidWlsZCBjcnQwLm8gYW5kIGxpYnNpbS5hCgkqIGZyMzAvTWFrZWZpbGUuaW46IE5ldyBmaWxlIC0gZ2VuZXJhdGUgZnJvbSBNYWtlZmlsZS5hbS4KCSogZnIzMC9jb25maWd1cmUuaW46IE5ldyBmaWxlIC0gc3VwcG9ydCBmcjMwIHRhcmdldAoJKiBmcjMwL2NvbmZpZ3VyZTogTmV3IGZpbGUgLSBnZW5lcmF0ZSBmcm9tIGNvbmZpZ3VyZS5pbi4KCSogZnIzMC9jcnQwLnM6IE5ldyBmaWxlIC0gQmFzaWMgZXhlY3V0YWJsZSBzdGFydHVwIGNvZGUuCgkqIGZyMzAvc3lzY2FsbHMuYzogTmV3IGZpbGUgLSBTeXN0ZW0gY2FsbCBlbXVsYXRpb24gbGlicmFyeS4KCjE5OTgtMTItMTEgIEdhdmluIFJvbWlnLUtvY2ggIDxnYXZpbkBjeWdudXMuY29tPgoKCSogIG1pcHMvY3J0MC5TIChfc3RhcnQpOiBDaGFuZ2UgaW5pdGlhbGl6YXRpb24gb2YgRlIuCgoxOTk4LTEyLTA4ICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkB3aWxzb24tcGMuY3lnbnVzLmNvbT4KCgkqIGk5NjAvY3J0MC5jIChzZXRfc3RhY2spOiBDaGFuZ2UgcmV0dXJuIHR5cGUgdG8gdm9pZC4gIEluaXQgU1AgdG8KCUZQICsgNjQgaW5zdGVhZCBvZiBGUC4gIFNpbXBsaWZ5IGNvZGUgdG8gYWxpZ24gcHRyLgoJKF9zdGFydCk6IENhbGwgZXhpdCBpbnN0ZWFkIG9mIF9leGl0LiAgRGVsZXRlIGxvY2FsIHZhcmlhYmxlIHN0YWNrLgoJSW5pdCBzdGFjayB0byBoZWFwKzQwOTYuCgkqIGk5NjAvbW9uOTYwLmMgKGFib3J0KTogSWZkZWYgb3V0LgoJKiBpOTYwL3N5c2NhbGwuaDogTmV3IGZpbGUuCgoxOTk4LTEyLTA0ICBLZW4gUmFlYnVybiAgPHJhZWJ1cm5AY3lnbnVzLmNvbT4KCgkqIG1pcHMvY21hMTAxLmMgKHRpbWUpOiBBZGQgaGV1cmlzdGljIHRvIGhhbmRsZSBZMksgb3ZlcmZsb3cuCgpUdWUgRGVjICAxIDE3OjU3OjUyIDE5OTggIFN0YW4gU2hlYnMgIDxzaGVic0BhbmRyb3MuY3lnbnVzLmNvbT4KCgkqIGNvbmZpZy9wcGMubWggKC5zLm8pOiBEb24ndCB1c2UgQ0ZMQUdTX01SRUxPQ0FUQUJMRSB3aGVuCglhc3NlbWJsaW5nLgoKV2VkIE5vdiAxOCAxOToxNDoxNSAxOTk4ICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBtaXBzL2VudHJ5LlM6IEhhbmRsZSBtaXBzMTYgYnVpbGRzLgoKMTk5OC0xMC0zMCAgSWFuIE1vbGVlICA8aW1vbGVlQGN5Z251cy5jb20+CgoJKiBtMzJyL3RyYXBtb24wLmM6IE5ldyBmaWxlLiAgTW9uMjAwMCB0cmFwIGhhbmRsZXIuCgkqIG0zMnIvdHJhcG1vbjAuUzogUmVtb3ZlZC4KCSogbTMyL01ha2VmaWxlLmluOiBDaGFuZ2VkIHRvIHJlZmxlY3QgYWJvdmUtY2hhbmdlZCBmaWxlcy4KCldlZCBPY3QgMjggMDc6NTU6NTUgMTk5OCAgTWFyayBBbGV4YW5kZXIgIDxtYXJrYUBjeWdudXMuY29tPgoKCSogc3BhcmMvY3J0MC5TOiBNb3ZlIGVudHJ5IHBvaW50IHRvIHN0YXJ0IG9mIHRleHQgc2VjdGlvbi4KCVB1dCB0aGUgYWRkcmVzcyBvZiB0aGUgZGF0YSBzZWN0aW9uIGF0IHRoZSBzdGFydCBvZiB0aGUgc2VjdGlvbiwKCXNvIHRoZSBHREIgc3BhcmNsaXRlIGxvYWRlciBjYW4gZmluZCBpdCBmb3IgYS5vdXQgbG9hZHMuCgpNb24gT2N0IDI2IDEzOjExOjQxIDE5OTggIEplZmZyZXkgQSBMYXcgIChsYXdAY3lnbnVzLmNvbSkKCgkqIGQzMHYvc3lzY2FsbHMuYyAodGltZSk6IFJldHVybnMgYSB0aW1lX3QgYW5kIGFjY2VwdHMgYSBwb2ludGVyIHRvCglhIHRpbWVfdCBhcyBpdHMgYXJndW1lbnQuCgoJKiBpMzg2L2N5Z21vbi1zeXNjYWxsLmg6IEZpeCBib2d1cyBhc20gY29uc3RyYWludHMuICBZb3UgbXVzdCBub3QKCWNsb2JiZXIgYSByZWdpc3RlciB0aGF0IG92ZXJsYXBzIHdpdGggYW4gaW5wdXQgb3Igb3V0cHV0LgoKRnJpIE9jdCAyMyAxMTowNjoxNiAxOTk4ICBKb2huIE1ldHpsZXIgIDxqbWV0emxlckBjeWdudXMuY29tPgoKCSogbWlwcy9qbXIzOTA0LWlvLmMgKGhhcmR3YXJlX2luaXRfaG9vayk6IEFkZCBmaWxlIHRvIHN1cHBvcnQKIAlzZXJpYWwgaW5wdXQgYW5kIG91dCBwdXQgYXMgcmVxdWlyZWQgYnkgbGliZ2xvc3MgcmVhZCBhbmQgd3JpdGUKIAlmdW5jdGlvbnMuCgoJKiBtaXBzL2ptcjM5MDRhcHAubGQgOiBMSW5rZXIgc2NyaXB0IGZvciB0eDM5am1yMzkwNCBib2FyZC4gVXNlcwogCWFkZHJlc3NlcyBwZXIgZUNvcyBjb252ZW50aW9ucywgbm90IG9yaWdpbmFsIFJPTSBtb25pdG9yLgoKCSogY29uZmlndXJlLmluOiBBZGQgbGlidHgzOWptci5jIHRvIGJ1aWxkIHRhcmdldAoKCSogTWFrZWZpbGUuaW46IHJ1bGVzIGZvciBsaWJ0eDM5am1yLmEgYW5kIGptcjM5MDQtaW8ubwoKMTk5OC0xMC0xNSAgSWFuIE1vbGVlICA8aW1vbGVlQGN5Z251cy5jb20+CgoJKiBtMzJyL21vbi5zcGVjczogTmV3IGZpbGUKCSogbTMyci90cmFwbW9uMC5TOiBOZXcgZmlsZQoJKiBtMzJyL01ha2VmaWxlLmluOiBNb2RpZmllZCB0byBhZGQgc3VwcG9ydCBmb3IgbW9uMjAwMCB0cmFwMC4KClR1ZSBPY3QgMTMgMTE6NTI6MDMgMTk5OCAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQGN5Z251cy5jb20+CgoJKiBsaWJub3N5cy93YXJuaW5nLmg6IE5ldyBmaWxlLgoKMTk5OC0xMC0wNiAgS2VuIFJhZWJ1cm4gIDxyYWVidXJuQGN5Z251cy5jb20+CgoJKiBtaXBzL2NvbmZpZ3VyZS5pbjogQnVpbGQgbnVsbG1vbiBzdHVmZiBpbiBkZWZhdWx0IGNhc2UuICBEb24ndAoJdHJlYXQgdnI0MTAwIHNwZWNpYWxseS4KClR1ZSBPY3QgIDYgMTU6MTc6NDIgMTk5OCAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQGN5Z251cy5jb20+CgoJKiBsaWJub3N5cy9zYnJrLmMgKF9zYnJrKTogQWRkZWQgcmVmZXJlbmNlIHRvIGNvbmZpZy5oLgoJKiBsaWJub3N5cy9jbG9zZS5jIChfY2xvc2UpOiBBZGRlZCBzdHViIHdhcm5pbmcgb3V0c2lkZSBvZgoJZnVuY3Rpb24gYm9keSBhbmQgYWRkZWQgcmVmZXJlbmNlIHRvIGNvbmZpZy5oLgoJKiBsaWJub3N5cy9leGVjdmUuYyAoX2V4ZWN2ZSk6IERpdHRvLgoJKiBsaWJub3N5cy9mb3JrLmMgKF9mb3JrKTogRGl0dG8uCgkqIGxpYm5vc3lzL2ZzdGF0LmMgKF9mc3RhdCk6IERpdHRvLgoJKiBsaWJub3N5cy9nZXRwaWQuYyAoX2dldHBpZCk6IERpdHRvLgoJKiBsaWJub3N5cy9nZXR0b2QuYyAoX2dldHRpbWVvZmRheSk6IERpdHRvLgoJKiBsaWJub3N5cy9pc2F0dHkuYyAoX2lzYXR0eSk6IERpdHRvLgoJKiBsaWJub3N5cy9raWxsLmMgKF9raWxsKTogRGl0dG8uCgkqIGxpYm5vc3lzL2xpbmsuYyAoX2xpbmspOiBEaXR0by4KCSogbGlibm9zeXMvbHNlZWsuYyAoX2xzZWVrKTogRGl0dG8uCgkqIGxpYm5vc3lzL29wZW4uYyAoX29wZW4pOiBEaXR0by4KCSogbGlibm9zeXMvcmVhZC5jIChfcmVhZCk6IERpdHRvLgoJKiBsaWJub3N5cy9zdGF0LmMgKF9zdGF0KTogRGl0dG8uCgkqIGxpYm5vc3lzL3RpbWVzLmMgKF90aW1lcyk6IERpdHRvLgoJKiBsaWJub3N5cy91bmxpbmsuYyAoX3VubGluayk6IERpdHRvLgoJKiBsaWJub3N5cy93YWl0LmMgKF93YWl0KTogRGl0dG8uCgkqIGxpYm5vc3lzL3dyaXRlLmMgKF93cml0ZSk6IERpdHRvLgoJKiBsaWJub3N5cy9hY2NvbmZpZy5oOiBOZXcgZmlsZS4KCSogbGlibm9zeXMvY29uZmlnLmguaW46IE5ldyBmaWxlLgoJKiBsaWJub3N5cy9leGl0LmM6IFJlbW92ZWQgYXMgX2V4aXQgY2Fubm90IGJlIHN0dWJiZWQuCgkqIGxpYm5vc3lzL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCSogbGlibm9zeXMvY29uZmlndXJlLmluOiBDb25maWd1cmUgaGVhZGVyIGZpbGUgc3BlY2lmaWVkLgoJKiBsaWJub3N5cy9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKV2VkIFNlcCAzMCAxMjo0NTo0MyAxOTk4ICBCb2IgTWFuc29uICA8bWFuc29uQGNoYXJtZWQuY3lnbnVzLmNvbT4KCgkqIGkzODYvY3lnbW9uLmxkOiBJbmNyZWFzZSBtZW1vcnkgbGltaXRzOyBwdXQgdGhlIGluaXRpYWwKCWV4ZWN1dGFibGUgYWJvdmUgMU1CLgoKRnJpIFNlcCAyNSAxMzo0OToyMiAxOTk4ICBCb2IgTWFuc29uICA8bWFuc29uQGNoYXJtZWQuY3lnbnVzLmNvbT4KCgkqIGkzODYvY29uZmlndXJlLmluOiBDaGFuZ2VkIGNydDAuYyB0byBjeWdtb24tc2FsaWIuYy4KCldlZCBTZXAgMjMgMTk6MjU6NDYgMTk5OCAgQm9iIE1hbnNvbiAgPG1hbnNvbkBjaGFybWVkLmN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBpMzg2LSotZWxmKiB0cmlwbGV0LgoJKiBpMzg2Lyo6IFN1cHBvcnQgZm9yIGkzODYgdGFyZ2V0cy4KCldlZCBTZXAgMTYgMTk6NDM6NTIgMTk5OCAgRG91ZyBFdmFucyAgPGRldmFuc0BjYW51Y2suY3lnbnVzLmNvbT4KCgkqIG0zMnIvbTMyci1saWIuYzogUmVuYW1lIC1ETVNBMjAwMCB0byAtRFJFVkMgYW5kIHJldmVyc2UgdGVzdC4KCShleGNlcHRpb25IYW5kbGVyLGdldEV4Y2VwdGlvbkhhbmRsZXIpOiBBZGQgY2FzdCB0byBhdm9pZCB3YXJuaW5nLgoKV2VkIFNlcCAgOSAxOToyMjowMyAxOTk4ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBzcGFyYy9NYWtlZmlsZS5pbjogUmVtb3ZlIGNhY2hlODZ4Lm8sIG5vdCBuZWVkZWQgYW55IG1vcmUuCgkqIHNwYXJjL3NwYXJjbGl0ZS5oOiAocmVhZF9hc3IsIHdyaXRlX2Fzcik6IERlZmluZS4KCSogc3BhcmMvY2FjaGUuYyAoaXNfZGFubGl0ZSk6IE5ldyBmdW5jdGlvbi4KCShjYWNoZV9vZmYsIGNhY2hlX29uLCBmbHVzaF9pX2NhY2hlKTogVGVzdCBmb3IgREFObGl0ZS4KCSogc3BhcmMvc2FsaWIuYyAodXBkYXRlX2xlZHMpOiBBbGxvdyB1c2VyIHRvIGRpc2FibGUgTEVEIGZsYXNoaW5nLgoJKiBzcGFyYy9zcGFyYzg2eC5sZDogUHJldmVudCBzZWN0aW9uIG92ZXJsYXAuCgoxOTk4LTA5LTA0ICBLZWl0aCBTZWl0eiAgPGtlaXRoc0BjeWdudXMuY29tPgoKCSogbTMyci9tMzJyLWxpYi5jIChyeF9yZHkpOiBBZGQgc3VwcG9ydCBmb3IgTVNBMjAwMEcwMSBib2FyZC4KCShyeF9jaGFyKTogRGl0dG8uCgkoZ2V0RGVidWdDaGFyMik6IE5ldyBmdW5jdGlvbiB0byBzdXBwb3J0IGJpbmFyeSBkb3dubG9hZHMgKGdkYgoJcmVtb3RlIHByb3RvY29sICJYIiBjb21tYW5kKS4KCShleGNlcHRpb25IYW5kbGVyKTogQWRkIHN1cHBvcnQgZm9yIE1TQTIwMDBHMDEgYm9hcmQuCgkoZ2V0RXhjZXB0aW9uSGFuZGxlcik6IERpdHRvLgoKMTk5OC0wOC0yMCAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGN5Z251cy5jb20+CgoJKiBsaWJub3N5cy9nZXR0b2QuYzogSW5jbHVkZSBzeXMvdGltZS5oIHNvIHRoYXQgc3RydWN0IHRpbWV6b25lIGlzCglkZWNsYXJlZC4KClN1biBBdWcgMTYgMTA6NDY6NDMgMTk5OCAgTWFyayBBbGV4YW5kZXIgIDxtYXJrYUBjeWdudXMuY29tPgoKCSogc3BhcmMvTWFrZWZpbGUuaW46IEFkZCBuZXcgQlNQIGZvciBzcGFyYzg2eCAoREFObGl0ZSkuCgkqIHNwYXJjL3NhbGliLmMgKG91dGJ5dGUpOiBBZGQgaG9vayBmb3IgR0RCIHN0dWIuCgkoY2FjaGVfb2ZmLCBjYWNoZV9vbiwgZmx1c2hfaV9jYWNoZSk6IE1vdmUgdG8gY2FjaGUuYy4KCSogc3BhcmMvY2FjaGUuYzogTmV3IGZpbGUgZm9yIHNwYXJjbGl0ZS1zcGVjaWZpYyBjYWNoZSBjb2RlLgoJKiBzcGFyYy9jYWNoZS04NnguYzogTmV3IGZpbGUgZm9yIHNwYXJjODZ4LXNwZWNpZmljIGNhY2hlIGNvZGUuCgkqIHNwYXJjL3NwYXJjODZ4LmxkOiBOZXcgbGlua2VyIHNjcmlwdCBmb3Igc3BhcmM4NnguCgkqIHNwYXJjL2NydDAuUzogRGlzYWJsZSBicm9rZW4gZGF0YSByZWxvY2F0aW9uIGNvZGUuCgkqIHNwYXJjL3NwYXJjbC1zdHViLmMgKG91dGJ5dGVfc3R1Yik6IE5ldyBmdW5jdGlvbiBmb3IgcmVkaXJlY3RpbmcKCXN0YW5kYXJkIG91dHB1dCB0byBHREIuCgkoaGFuZGxlX2V4Y2VwdGlvbik6IEluaXRpYWxpemUgb3V0Ynl0ZSBob29rLgoKVHVlIEF1ZyAxMSAxMzoyNzozMSAxOTk4ICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBtNjhrL2lkcC5sZCAoX19JTklUX1NFQ1RJT05fXyk6IEFsaWduIHRvIDIgYnl0ZSBib3VuZGFyeS4KCSogbTY4ay9iY2MubGQsIG02OGsvbXZtZTEzNS5sZCwgbTY4ay9tdm1lMTYyLmxkOiBMaWtld2lzZS4KCSogbTY4ay9zYmM1MjA0LmxkLCBtNjhrL3NiYzUyMDYubGQ6IExpa2V3aXNlLgoKMTk5OC0wOC0xMSAgSmFzb24gTWVycmlsbCAgPGphc29uQHlvcmljay5jeWdudXMuY29tPgoKCSogbW4xMDMwMC97c2ltLmxkLGV2YWwubGR9OiBBZGQgaW5pdF9wcmlvcml0eSBzdXBwb3J0LgoKVHVlIEF1ZyAxMSAxMDowNDowNSAxOTk4ICBKZWZmcmV5IEEgTGF3ICAobGF3QGN5Z251cy5jb20pCgoJKiBtbjEwMjAwL3NpbS5sZDogUmV3b3JrIGNvZGUgdG8gaW5zZXJ0IHBhZCBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZQoJZGF0YSBzZWdtZW50LgoJKiBtbjEwMjAwL2V2YWwubGQ6IExpa2V3aXNlLgoJKiBtbjEwMzAwL3NpbS5sZDogTGlrZXdpc2UuCgkqIG1uMTAzMDAvZXZhbC5sZDogTGlrZXdpc2UuCgpTYXQgQXVnICA4IDA5OjQ2OjM3IDE5OTggIEppbSBXaWxzb24gIDx3aWxzb25AY3lnbnVzLmNvbT4KCgkqIG1pcHMvY21hMTAxLmMgKF9fc2l6ZW1lbSk6IE5ldyBsb2NhbCB2YXJpYWJsZSBleHRyYS4gIEFsaWduIGJhc2UKCXRvIGludCBib3VuZGFyeS4KClR1ZSBKdWwgMjggMTA6NTc6MTIgMTk5OCAgTWFyayBBbGV4YW5kZXIgIDxtYXJrYUBjeWdudXMuY29tPgoKCSogc3BhcmMvTWFrZWZpbGUuaW4gKEVSQzMyX09CSlMpOiBBZGQgZml4Y3RvcnMuCgkqIHNwYXJjL2VyYzMyLWNydDAuUzogQ2FsbCBfX2ZpeF9jdG9ycyBqdXN0IGJlZm9yZSBjYWxsaW5nIG1haW4uCgkqIHNwYXJjL2ZpeGN0b3JzLmM6IE5ldyBmaWxlLgoKU2F0IEp1bCAxOCAwNzoxNTozMyAxOTk4ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBzcGFyYy9jcnQwLlMgKHdpbl9vdmZfdHJhcCwgd2luX3VuZl90cmFwKTogVXNlIGNvcnJlY3QgbmFtZXMgZm9yCglleHRlcm4gZnVuY3Rpb25zIHdpbl9vdmYgYW5kIHdpbl91bmY7IGZpeGVzIHVucmVzb2x2ZWQgc3ltYm9scwoJaW4gQ09GRi4KCk1vbiBKdWwgMTMgMTc6NTA6NDEgMTk5OCAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZGVkIGxpYm5vc3lzIGFzIHN1YmRpci4KCSogY29uZmlndXJlOiBSZWJ1aWx0IGNvbmZpZ3VyZSBiYXNlZCBvbiBjb25maWd1cmUuaW4uCgkqIGxpYm5vc3lzL2Nsb3NlLmMgKF9jbG9zZSk6IFBhcnQgb2YgbmV3IGxpYm5vc3lzIHN0dWIgbGlicmFyeQogCXRvIHVzZSBmb3Igc2l0dWF0aW9ucyB3aXRoIG5vIG9wZXJhdGluZyBzeXN0ZW0gc3VwcG9ydC4KCSogbGlibm9zeXMvZW52aXJvbi5jIChlbnZpcm9uKTogZGl0dG8uCgkqIGxpYm5vc3lzL2V4ZWN2ZS5jIChfZXhlY3ZlKTogZGl0dG8uCgkqIGxpYm5vc3lzL2V4aXQuYyAoX2V4aXQpOiBkaXR0by4KCSogbGlibm9zeXMvZm9yay5jIChfZm9yayk6IGRpdHRvLgoJKiBsaWJub3N5cy9mc3RhdC5jIChfZnN0YXQpOiBkaXR0by4KCSogbGlibm9zeXMvZ2V0cGlkLmMgKF9nZXRwaWQpOiBkaXR0by4KCSogbGlibm9zeXMvZ2V0dG9kLmMgKF9nZXR0aW1lb2ZkYXkpOiBkaXR0by4KCSogbGlibm9zeXMvaXNhdHR5LmMgKF9pc2F0dHkpOiBkaXR0by4KCSogbGlibm9zeXMva2lsbC5jIChfa2lsbCk6IGRpdHRvLgoJKiBsaWJub3N5cy9saW5rLmMgKF9saW5rKTogZGl0dG8uCgkqIGxpYm5vc3lzL2xzZWVrLmMgKF9sc2Vlayk6IGRpdHRvLgoJKiBsaWJub3N5cy9vcGVuLmMgKF9vcGVuKTogZGl0dG8uCgkqIGxpYm5vc3lzL3JlYWQuYyAoX3JlYWQpOiBkaXR0by4KCSogbGlibm9zeXMvc2Jyay5jIChfc2Jyayk6IGRpdHRvLgoJKiBsaWJub3N5cy9zdGF0LmMgKF9zdGF0KTogZGl0dG8uCgkqIGxpYm5vc3lzL3RpbWVzLmMgKF90aW1lcyk6IGRpdHRvLgoJKiBsaWJub3N5cy91bmxpbmsuYyAoX3VubGluayk6IGRpdHRvLgoJKiBsaWJub3N5cy93YWl0LmMgKF93YWl0KTogZGl0dG8uCgkqIGxpYm5vc3lzL3dyaXRlLmMgKF93cml0ZSk6IGRpdHRvLgoJKiBsaWJub3N5cy9NYWtlZmlsZS5pbiA6IE1ha2VmaWxlLmluIGZvciBjcmVhdGluZyBsaWJub3N5cyBNYWtlZmlsZS4KCSogbGlibm9zeXMvY29uZmlndXJlLmluOiBjb25maWd1cmUuaW4gdG8gY3JlYXRlIGxpYm5vc3lzIGNvbmZpZ3VyZS4KCSogbGlibm9zeXMvY29uZmlndXJlOiBDb25maWd1cmUgZm9yIGxpYm5vc3lzIGxpYnJhcnkuCgpNb24gSnVsIDEzIDE0OjEzOjA3IEVEVCAxOTk4ICBKaW0gTGVta2UgIDxqbGVta2VAY3lnbnVzLmNvbT4KCgkqIHNpbS9taXBzLmxkOiBDbGFyaWZ5IGEgY29tbWVudC4KClR1ZSBKdWwgIDcgMjE6MTI6NDEgMTk5OCAgTWFyayBBbGV4YW5kZXIgIDxtYXJrYUBjeWdudXMuY29tPgoKCSogc3BhcmMvZWxmc2ltLmxkOiBNYWtlIGl0IHdvcmsgb24gYm90aCBhLm91dCBhbmQgRUxGLgoJKiBzcGFyYy90cmFwcy5TOiBSZW5hbWUgdHJhcF90YWJsZSBsYWJlbCB0byB3b3JrIG9uIGJvdGggYS5vdXQKCWFuZCBFTEYuICBQdXQgdGhlIGFkZHJlc3Mgb2YgdGhlIGRhdGEgc2VjdGlvbiBhdCB0aGUgc3RhcnQKCW9mIHRoZSBzZWN0aW9uLCBzbyB0aGUgc2ltdWxhdG9yIGxvYWRlciBjYW4gZmluZCBpdCBmb3IgYS5vdXQgbG9hZHMuCgpUaHUgSnVuIDI1IDA5OjI0OjUzIDE5OTggIE1hcmsgQWxleGFuZGVyICA8bWFya2FAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZy9tbjEwMjAwLm10OiBOZXcgZmlsZS4KClR1ZSBKdW4gMjMgMjI6NDU6NDkgMTk5OCAgTWFyayBBbGV4YW5kZXIgIDxtYXJrYUBjeWdudXMuY29tPgoKCSogbW4xMDIwMC9jcnQwLlM6IERvbid0IHdhc3RlIHRvcCBmb3VyIGJ5dGVzIG9mIHN0YWNrLgoJKiBtbjEwMjAwL2V2YWwubGQ6IEZpeCBzdGFjayB0b3AgYWRkcmVzcy4KCk1vbiBKdW4gMjIgMDk6MzA6MjIgMTk5OCAgRHJldyBNb3NlbGV5ICA8ZG1vc2VsZXlAY3lnbnVzLmNvbT4KCgkqIG1pcHMvZHZlbW9uLmM6IFJlbW92ZSB0aGUgY2xvc2UgZnVuY3Rpb24gYW5kIGdldCBpdCBmcm9tIHRoZSBnZW5lcmljCgljbG9zZS5vCgkqIG1pcHMvTWFrZWZpbGUuaW4gKERWRU9CSlMpOiBBZGQgZ2VuZXJpYyBvcGVuLm8gYW5kIGNsb3NlLm8gdG8gdGhlIERWRU9CSlMKCWxpc3QgdG8gZW5zdXJlIHRoYXQgdGhlIHByb3BlciBBUEkncyBhcmUgaW5jbHVkZWQuCgpXZWQgSnVuIDE3IDEyOjMzOjA1IDE5OTggIE1hcmsgQWxleGFuZGVyICA8bWFya2FAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIG1uMTAyMDAgc3VwcG9ydC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBtbjEwMjAwL01ha2VmaWxlLmluOiBOZXcgZmlsZS4KCSogbW4xMDIwMC9fZXhpdC5jOiBOZXcgZmlsZS4KCSogbW4xMDIwMC9hY2Nlc3MuYzogTmV3IGZpbGUuCgkqIG1uMTAyMDAvY2htb2QuYzogTmV3IGZpbGUuCgkqIG1uMTAyMDAvY2hvd24uYzogTmV3IGZpbGUuCgkqIG1uMTAyMDAvY2xvc2UuYzogTmV3IGZpbGUuCgkqIG1uMTAyMDAvY29uZmlndXJlOiBOZXcgZmlsZS4KCSogbW4xMDIwMC9jb25maWd1cmUuaW46IE5ldyBmaWxlLgoJKiBtbjEwMjAwL2NyZWF0LmM6IE5ldyBmaWxlLgoJKiBtbjEwMjAwL2NydDAuUzogTmV3IGZpbGUuCgkqIG1uMTAyMDAvY3J0MS5jOiBOZXcgZmlsZS4KCSogbW4xMDIwMC9ldmFsLmxkOiBOZXcgZmlsZS4KCSogbW4xMDIwMC9leGVjdi5jOiBOZXcgZmlsZS4KCSogbW4xMDIwMC9leGVjdmUuYzogTmV3IGZpbGUuCgkqIG1uMTAyMDAvZm9yay5jOiBOZXcgZmlsZS4KCSogbW4xMDIwMC9mc3RhdC5jOiBOZXcgZmlsZS4KCSogbW4xMDIwMC9nZXRwaWQuYzogTmV3IGZpbGUuCgkqIG1uMTAyMDAvZ2V0dGltZS5jOiBOZXcgZmlsZS4KCSogbW4xMDIwMC9pc2F0dHkuYzogTmV3IGZpbGUuCgkqIG1uMTAyMDAva2lsbC5jOiBOZXcgZmlsZS4KCSogbW4xMDIwMC9sc2Vlay5jOiBOZXcgZmlsZS4KCSogbW4xMDIwMC9vcGVuLmM6IE5ldyBmaWxlLgoJKiBtbjEwMjAwL3BpcGUuYzogTmV3IGZpbGUuCgkqIG1uMTAyMDAvcmVhZC5jOiBOZXcgZmlsZS4KCSogbW4xMDIwMC9zYnJrLmM6IE5ldyBmaWxlLgoJKiBtbjEwMjAwL3NpbS5sZDogTmV3IGZpbGUuCgkqIG1uMTAyMDAvc3RhdC5jOiBOZXcgZmlsZS4KCSogbW4xMDIwMC90ZXN0LmM6IE5ldyBmaWxlLgoJKiBtbjEwMjAwL3RpbWUuYzogTmV3IGZpbGUuCgkqIG1uMTAyMDAvdGltZXMuYzogTmV3IGZpbGUuCgkqIG1uMTAyMDAvdHJhcC5TOiBOZXcgZmlsZS4KCSogbW4xMDIwMC90cmFwLmg6IE5ldyBmaWxlLgoJKiBtbjEwMjAwL3VubGluay5jOiBOZXcgZmlsZS4KCSogbW4xMDIwMC91dGltZS5jOiBOZXcgZmlsZS4KCSogbW4xMDIwMC93YWl0LmM6IE5ldyBmaWxlLgoJKiBtbjEwMjAwL3dyaXRlLmM6IE5ldyBmaWxlLgoKRnJpIEp1biAxMiAxNzoyNjo1NiAxOTk4ICBEb3VnIEV2YW5zICA8ZGV2YW5zQHNlYmEuY3lnbnVzLmNvbT4KCgkqIG0zMnIvc3lzL3N5c2NhbGwuaDogRGVsZXRlLiAgVXNlIC4vc3lzY2FsbC5oIG5vdy4KCSogbTMyci90cmFwMC5TOiBSZW5hbWVkIGZyb20gdHJhcC5TLgoJKiBtMzJyL2VpdC5oOiBOZXcgZmlsZS4KCSogbTMyci9jcnRzeXNjLmM6IERlbGV0ZSwgc3BsaXQgdXAgaW50byBzZXZlcmFsIGZpbGVzLgoJKiBtMzJyL2NobW9kLmM6IE5ldyBmaWxlLgoJKiBtMzJyL2Nsb3NlLmM6IE5ldyBmaWxlLgoJKiBtMzJyL2V4aXQuYzogTmV3IGZpbGUuCgkqIG0zMnIvZnN0YXQuYzogTmV3IGZpbGUuCgkqIG0zMnIvZ2V0cGlkLmM6IE5ldyBmaWxlLgoJKiBtMzJyL2lzYXR0eS5jOiBOZXcgZmlsZS4KCSogbTMyci9raWxsLmM6IE5ldyBmaWxlLgoJKiBtMzJyL2xzZWVrLmM6IE5ldyBmaWxlLgoJKiBtMzJyL29wZW4uYzogTmV3IGZpbGUuCgkqIG0zMnIvcmFpc2UuYzogTmV3IGZpbGUuCgkqIG0zMnIvcmVhZC5jOiBOZXcgZmlsZS4KCSogbTMyci9zYnJrLmM6IE5ldyBmaWxlLgoJKiBtMzJyL3N0YXQuYzogTmV3IGZpbGUuCgkqIG0zMnIvdW5saW5rLmM6IE5ldyBmaWxlLgoJKiBtMzJyL3V0aW1lLmM6IE5ldyBmaWxlLgoJKiBtMzJyL3dyaXRlLmM6IE5ldyBmaWxlLgoJKiBtMzJyL01ha2VmaWxlLmluIChTWVNDQUxMUyk6IERlbGV0ZS4KCShMSUJPQkpTLExJQkdMT1NTKTogTmV3IHZhcmlhYmxlcy4KCShhbGwsaW5zdGFsbCk6IFVwZGF0ZS4KCShsaWJnbG9zcy5hKTogTmV3IHJ1bGUuCgpUaHUgSnVuIDExIDA4OjM4OjQyIDE5OTggIERvdWcgRXZhbnMgIDxkZXZhbnNAc2ViYS5jeWdudXMuY29tPgoKCSogc3BhcmMvY3lnbW9uLXNhbGliLmMgKHNldGl0aW1lcik6IEFkZCBgY29uc3QnIHRvIHNlY29uZCBhcmcuCgkoZ2V0dGltZW9mZGF5KTogQ2hhbmdlIHR5cGUgb2YgMm5kIGFyZyB0byBzdHJ1Y3QgdGltZXpvbmUgKi4KClR1ZSBKdW4gIDkgMTI6MDI6MjEgMTk5OCAgSWFuIENhcm1pY2hhZWwgIDxpYW5jYXJtQGN5Z251cy5jb20+CgoJKiBtaXBzL3N5c2NhbGxzLmMgKHNicmspOiBBbGxvdyBtZW1vcnkgYWxsb2NhdGlvbiB0byB3b3JrCglmb3IgY29uZmlndXJhdGlvbnMgd2hpY2ggZG9uJ3QgaGF2ZSBtZW1vcnkgYXQgSzFCQVNFLgoJKiBtaXBzL2NtYTEwMS5jIChfX3NpemVtZW0pOiBEaXR0by4KClR1ZSBKdW4gIDkgMTM6MTc6MjggMTk5OCAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQGNsZWF2ZXIuY3lnbnVzLmNvbT4KCgkqIG02OGsvZW1jLXN0dWIuYzogTmV3IGZpbGUsIHN0dWIgZm9yIHRoZSBFTUMgU3ltbWV0cml4IHRhcmdldC4KCSogbTY4ay9nZGJpbml0LmVtYzogTmV3IGZpbGUsIHVzZXIgc3VwcG9ydCBmb3Igc3BlY2lhbCBmZWF0dXJlcwoJc3VwcG9ydGVkIG9ubHkgb24gdGhlIEVNQyBTeW1tZXRyaXggdGFyZ2V0LgoKRnJpIEp1biAgNSAxNjo0MDoyMCAxOTk4ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBzcGFyYy9lbGZzaW0ubGQ6IEZpeCBjdG9yIGFuZCBkdG9yIHRhYmxlcyB0byB3b3JrIGluIGJvdGgKCWxpdHRsZS0gYW5kIGJpZy1lbmRpYW4gZXhlY3V0YWJsZXMuCgpXZWQgSnVuICAzIDIzOjA5OjM4IDE5OTggIE1hcmsgQWxleGFuZGVyICA8bWFya2FAY3lnbnVzLmNvbT4KCgkqIHNwYXJjL3NwYXJjbC1zdHViLmM6IEluY2x1ZGUgYXNtLmguICBVc2UgU1RSSU5HU1lNIG1hY3JvIHRvIGdlbmVyYXRlCglwcm9wZXIgcHJlZml4IGZvciBwdWJsaWMgYXNzZW1ibHkgbGFuZ3VhZ2UgbGFiZWxzLgoJKiBzcGFyYy9leDkzMC5sZDogQWRkIERXQVJGIHNlY3Rpb25zLgoJKiBzcGFyYy9leDkzMS5sZDogRGl0dG8uCgkqIHNwYXJjL2V4OTM0LmxkOiBEaXR0by4KCSogc3BhcmMvZWxmc2ltLmxkOiBTaW1wbGlmeSBhbmQgY2xlYW4gdXAuCgkqIHNwYXJjL01ha2VmaWxlLmluOiBCdWlsZCBleDkzNCBCU1AuICBBbGxvdyBsaXR0bGUtZW5kaWFuIGJ1aWxkcy4KCSogc3BhcmMvdHJhcHMuUyAod2luX2ZsdXNoKTogUmV3cml0ZSB1c2luZyBjb2RlIGZyb20gQ3lnbW9uCgl0byBlbGltaW5hdGUgcmVnaXN0ZXIgY29ycnVwdGlvbi4KCk1vbiBKdW4gIDEgMTU6MjE6MDUgMTk5OCAgR2VvZmZyZXkgTm9lciAgPG5vZXJAY3lnbnVzLmNvbT4KCgkqIHNwYXJjL2N5Z21vbi1zYWxpYi5jOiBTdG9wIGluY2x1ZGluZyBzeXMvaXRpbWVyLmgKClN1biBNYXkgMzEgMTA6NDY6MzcgMTk5OCAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGN5Z251cy5jb20+CgoJKiByczYwMDAvTWFrZWZpbGUuaW4gKFNPTEFSSVNfKik6IERvbid0IGJ1aWxkIHNvbGFyaXMgYnNwJ3MgYW55Cgltb3JlLgoKRnJpIE1heSAyMiAxMzo1MDo1NSAxOTk4ICBBbmdlbGEgTWFyaWUgVGhvbWFzIChhbmdlbGFAY3lnbnVzLmNvbSkKCgkqIG1uMTAzMDAvTWFrZWZpbGUuaW46IEluc3RhbGwgc2ltLmxkLgoKV2VkIE1heSAyMCAyMjo0NToxMSAxOTk4ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBzcGFyYy9lbGZzaW0ubGQ6IEFkZCBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3RvciB0YWJsZXMuCgpTYXQgTWF5IDE2IDE3OjA4OjE3IDE5OTggIEJvYiBNYW5zb24gIDxtYW5zb25AY2hhcm1lZC5jeWdudXMuY29tPgoKCSogc3BhcmMvY3lnbW9uLXNhbGliLmMgKF9fZ2V0UHJvZ3JhbUFyZ3MpOiBVc2UgYXNtIGNvbnN0cmFpbnRzLgoKRnJpIE1heSAxNSAxNjo1MDozNiAxOTk4ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBzcGFyYy90cmFwcy5TICh3aW5fZmx1c2gpOiBEb24ndCBkZXN0cm95ICVnMSBhbmQgJWcyLgoKRnJpIE1heSAxNSAxNTo1OTozMCAxOTk4ICBHYXZpbiBLb2NoICA8Z2F2aW5AY3lnbnVzLmNvbT4KCiAJKiBtaXBzL2NvbmZpZ3VyZS5pbjogQWRkIGlkdCB0byB0eDM5IGNoYWluLgoJKiBtaXBzL2NvbmZpZ3VyZTogUmVidWlsZC4KCkZyaSBNYXkgMTUgMTU6NDg6MjggMTk5OCAgR2F2aW4gS29jaCAgPGdhdmluQGN5Z251cy5jb20+CgoJKiBtaXBzL2NydDAuUyAoX19zdGFja2Jhc2UpOiBBZGRlZC4KCSh6ZXJvYnNzKTogSW5pdGlhbGl6ZSBfX3N0YWNrYmFzZS4KCjE5OTgtMDUtMTMgIEJyZW5kYW4gS2Vob2UgIDxicmVuZGFuQGN5Z251cy5jb20+CgoJKiBtaXBzL2NvbmZpZ3VyZS5pbjogQWxzbyBncm9rIGBtaXBzdHgzOSotKi0qJy4KCSogbWlwcy9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKTW9uIE1heSAxMSAxNTowNzoxMiAxOTk4ICBCb2IgTWFuc29uICA8bWFuc29uQGNoYXJtZWQuY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkZWQgcG93ZXJwY2xlIHRhcmdldC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KClRodSBNYXkgIDcgMTY6NDM6MzcgMTk5OCAgTWFyayBBbGV4YW5kZXIgIDxtYXJrYUBjeWdudXMuY29tPgoKCSogc3BhcmMvZWxmc2ltLmxkIChPVVRQVVRfRk9STUFUKTogQWRkIGxpdHRsZS1lbmRpYW4gc3VwcG9ydC4KCgkqIHNwYXJjL2NydDAuUyAoX3N0YXJ0KTogRGVmaW5lIGxhYmVsIGZvciBFTEYgdGFyZ2V0cy4KCSogc3BhcmMvc2FsaWIuYzogSW5jbHVkZSBhc20uaC4gIFVzZSBTVFJJTkdTWU0gbWFjcm8gdG8gZ2VuZXJhdGUKCXByb3BlciBwcmVmaXggZm9yIHB1YmxpYyBhc3NlbWJseSBsYW5ndWFnZSBsYWJlbHMuCgkod3JpdGUsIHJlYWQpOiBEaXNhYmxlIHRvIGF2b2lkIGNvbmZsaWN0IHdpdGggZ2VuZXJpYyB2ZXJzaW9ucwoJb2YgdGhlc2UgZnVuY3Rpb25zLgoJKiBzcGFyYy9lcmMzMi1zdHViLmM6IE1vdmUgU1RSSU5HU1lNIG1hY3JvIHRvIHNwYXJjL2FzbS5oLgoJKiBzcGFyYy9hc20uaDogTW92ZSBTVFJJTkdTWU0gbWFjcm8gaGVyZSBmcm9tIHNwYXJjL2VyYzMyLXN0dWIuYwoKTW9uIE1heSAgNCAwODozMDo1OCAxOTk4ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBzcGFyYy9jb25maWd1cmUuaW46IFRyZWF0IHNwYXJjODZ4IGFzIGEgc3BhcmNsaXRlLgoJKiBzcGFyYy9jb25maWd1cmUuaW46IERpdHRvLgoJKiBzcGFyYy9NYWtlZmlsZS5pbiAoc2xpdGUtaW5zdGFsbCk6IEluc3RhbGwgbWlzc2luZyBmaWxlcwoJZm9yIHNpbXVsYXRvci4KClRodSBBcHIgMzAgMTY6NDE6MTUgMTk5OCAgSm9obiBNZXR6bGVyICA8am1ldHpsZXJAY3lnbnVzLmNvbT4KCgkqIG1pcHMvY29uZmlndXJlLmluOiBhZGp1c3QgdGFyZ2V0IHR5cGUgcGF0dGVybiB0byBleHBvcnQgbnVsbG1vbi5sZAoJKiBtaXBzL2NvbmZpZ3VyZTogcmVnZW5lcmF0ZWQKCk1vbiBBcHIgMjcgMjE6Mzg6MTggMTk5OCAgTWFyayBBbGV4YW5kZXIgIDxtYXJrYUBjeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGRlZCBzcGFyYzg2eCBjb25maWd1cmF0aW9uLgoJKiBjb25maWd1cmU6IERpdHRvLgoKV2VkIEFwciAyMiAyMTo0NToxMyAxOTk4ICBKZWZmcmV5IEEgTGF3ICAobGF3QGN5Z251cy5jb20pCgoJKiBtaXBzL2NydDAuUzogSW5jcmVhc2Ugc3RhY2sgYWxpZ25tZW50LgoKRnJpIEFwciAxMCAyMToxNzo0OCAxOTk4ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBzcGFyYy90cmFwcy5TICh3aW5fZmx1c2gpOiBQcmV2ZW50IGltbWVkaWF0ZSB3aW5kb3cgdW5kZXJmbG93Cgl0cmFwIG9uIHJldHVybi4gIE1pc2NlbGxhbmVvdXMgY29tbWVudCBmb3JtYXR0aW5nIGNsZWFudXAuCgpUdWUgQXByICA3IDE4OjM0OjUxIDE5OTggIE1hcmsgQWxleGFuZGVyICA8bWFya2FAY3lnbnVzLmNvbT4KCgkqIHNwYXJjL2VsZnNpbS5sZDogQWxpZ24gQlNTIGF0IDgtYnl0ZSBib3VuZGFyeS4KCk1vbiBBcHIgIDYgMTM6MTI6MzIgMTk5OCAgTWFyayBTYWx0ZXIgIDxtc2FsdGVyQGNoZWYuY3lnbnVzLmNvbT4KCgkqIHJzNjAwMC9hZHMtaW8uYyAod3JpdGUpOiBBZGRlZCB3cml0ZSgpLgoKCSogcnM2MDAwL01ha2VmaWxlLmluOiBDaGFuZ2VkIG9iamVjdHMgdXNlZCBmb3IgbGliYWRzIHRvIGJlCgluZXcgYWRzIHNwZWNpZmljIG9iamVjdCBmaWxlcyBpbnN0ZWFkIG9mIHNvbWUgbXZtZSBvYmplY3RzLgoKCSogQWRkZWQgYWRzLWlvLmMgYW5kIGFkcy1leGl0LmMgdG8gcHJvdmlkZSBmdW5jdGlvbiBzdHVicyB3aGljaAoJYXJlIHNhZmUgb24gYWRzIGJvYXJkIChTRFMgbW9uaXRvcikuCgoJKiByczYwMDAvbWJ4LW91dGJ5dGUuYyAob3V0Ynl0ZSk6IEZvdW5kcnkgY29uc29sZSBvdXRwdXQKCWlzIGZpeGVkLCBzbyByZS1lbmFibGUgb3V0cHV0IGNoYXIgcXVvdGluZyBmb3IgbWJ4LgoKCSogcnM2MDAwL21ieC5zcGVjczogQWRkZWQgYmxhbmsgbGluZSB0byBlbmQgb2YgZmlsZS4gVGhlcmUKCXdlcmUgbGluayBlcnJvcnMgd2l0aG91dCBpdD8KCgkqIHJzNjAwMC9tYnguc3BlY3M6IFVzZSBtYngubGQgc2NyaXB0IGZvciBsaW5raW5nLgoKCSogcnM2MDAwL21ieC1vdXRieXRlLmM6IERvbid0IHF1b3RlIGNoYXJhY3RlcnMuIFdlIGRvbid0IHdhbnQKCWdkYiB0byBkaXNwbGF5IHByb2dyYW0gb3V0cHV0LCB5ZXQuCgoJKiByczYwMDAvTWFrZWZpbGUuaW4gKGluc3RhbGwtbWJ4KTogRml4ZWQgaW5zdGFsbCBvZiBtYnguc3BlY3MKCWZpbGUuCgoJKiByczYwMDAvTWFrZWZpbGUuaW46IFN1cHBvcnQgZm9yIE1CWCBFUFBDQnVnIG1vbml0b3IuCgkqIHJzNjAwMC9tYngte2V4aXQsaW5ieXRlLG91dGJ5dGUscHJpbnR9LmM6IE5ldyBmaWxlcyBmb3IgTUJYLgoJKiByczYwMDAvbWJ4LmxkLG1ieC5zcGVjczogTmV3IGZpbGVzIGZvciBNQlguCgpXZWQgQXByICAxIDIxOjQyOjQwIDE5OTggIE1hcmsgQWxleGFuZGVyICA8bWFya2FAY3lnbnVzLmNvbT4KCgkqIHNwYXJjL2VsZnNpbS5sZDogTmV3IGxpbmtlciBzY3JpcHQgZm9yIHJ1bm5pbmcgRUxGIHByb2dyYW1zCglpbiBlcmMzMiBzaW11bGF0b3IuCgkqIHNwYXJjL2VyYzMyLWNydDAuUzogRGlzYWJsZSBjb3B5aW5nIG9mIGRhdGEgc2VnbWVudC4KCSogc3BhcmMvZXJjMzItc3R1Yi5jOiBHZW5lcmF0ZSBjb3JyZWN0IHB1YmxpYyBuYW1lIGZvciBicmVha2luc3QuCgkqIHNwYXJjL01ha2VmaWxlLmluOiBCdWlsZCBlcmMzMiBsaWJyYXJ5IGFsd2F5cy4KClRodSBBcHIgIDIgMTE6MjQ6MzIgMTk5OCAgQW5kcmV3IENhZ25leSAgPGNhZ25leUBiMS5jeWdudXMuY29tPgoKCSogbWlwcy9zeXNjYWxscy5jIChzYnJrKTogQ2hlY2sgd29yZCBzaXplIGNvcnJlY3QgZm9yCiAJZ2V0X21lbV9pbmZvLgoKRnJpIE1hciAyNyAwODo1NTo1MiAxOTk4ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBtaXBzL2NydDAuUzogSW5zZXJ0IE5PUCBiZWZvcmUgX3N0YXJ0IHRvIGtlZXAgR0RCIGhhcHB5LgogIAkqIG1pcHMvZHZlLmxkOiBFbGltaW5hdGUgcmVmZXJlbmNlcyB0byBWUjQzMDAuCgpUaHUgTWFyIDI2IDE5OjQ3OjM2IDE5OTggIE1hcmsgQWxleGFuZGVyICA8bWFya2FAY3lnbnVzLmNvbT4KCgkqIG1uMTAzMDAvZXZhbC5sZDogRG9uJ3QgdXNlIGFic29sdXRlIHBhdGggaW4gU0VBUkNIX0RJUi4KCSogbW4xMDMwMC9zaW0ubGQ6IERpdHRvLgoKV2VkIE1hciAyNSAxMDo0OTo0OSAxOTk4ICBCb2IgTWFuc29uICA8bWFuc29uQGNoYXJtZWQuY3lnbnVzLmNvbT4KCgkqIHNwYXJjL2N5Z21vbi1zYWxpYi5jIChfX2dldFByb2dyYW1BcmdzKTogTmV3IGZ1bmN0aW9uLgoKCSogc3BhcmMvY3lnbW9uLWNydDAuUyAoaW5pdCk6IENhbGwgX19nZXRQcm9ncmFtQXJncy4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkZWQgc3BhcmM2NCBjb25maWd1cmF0aW9uLgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KClR1ZSBNYXIgMjQgMTA6NDQ6NDEgMTk5OCAgTWFyayBBbGV4YW5kZXIgIDxtYXJrYUBjeWdudXMuY29tPgoKCSogbW4xMDMwMC9NYWtlZmlsZS5pbjogSW5zdGFsbCBsaWJyYXJpZXMsIG5vdCBqdXN0IGxpbmtlciBzY3JpcHRzLgoKVHVlIE1hciAyNCAwOTo1MjoyOCAxOTk4ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBjb25maWcvbW4xMDMwMC5tdDogTmV3IGZpbGUKCSogbW4xMDMwMC9jb25maWd1cmUuaW46IFVzZSBtbjEwMzAwLm10IGFzIHRhcmdldCBtYWtlZmlsZSBmcmFnbWVudAoJaW5zdGVhZCBvZiBub3RoaW5nIGF0IGFsbC4KCSogbW4xMDMwMC9jb25maWd1cmU6IERpdHRvLgoKVHVlIE1hciAyNCAxNjo1OTowNiAxOTk4ICBTdHUgR3Jvc3NtYW4gIDxncm9zc21hbkBiaHVuYS5jeWdudXMuY28udWs+CgoJKiBkb2MvY29uZmlndXJlOiAgUmVnZW5lcmF0ZSB3aXRoIGF1dG9jb25mIDIuMTIuMSB0byBmaXggc2hlbGwKCWlzc3VlcyBmb3IgTlQgbmF0aXZlIGJ1aWxkcy4KCk1vbiBNYXIgMTYgMTg6NTE6MTEgMTk5OCAgQm9iIE1hbnNvbiAgPG1hbnNvbkBjaGFybWVkLmN5Z251cy5jb20+CgoJKiBzcGFyYy9jeWdtb24tY3J0MC5TOiBNYWtlIHN0YXJ0IGEgZ2xvYmFsIHN5bWJvbCAoZm9yIHRoZSBsaW5rZXIKCXNjcmlwdDsgd2UgYWxzbyBuZWVkIHRvIG1ha2UgU1lNKHN0YXJ0KSBnbG9iYWwpLgoKV2VkIE1hciAxMSAxMDoyNDozOSAxOTk4ICBTdGFuIENveCAgPHNjb3hAcnRsLmN5Z251cy5jb20+CgoJKiBzcGFyYy9jeWdtb24ubGQuc3JjICguZGVidWcqKTogQWRkZWQgZHdhcmYgc2VjdGlvbnMuCgpGcmkgTWFyICA2IDIzOjQxOjU0IDE5OTggIEJvYiBNYW5zb24gIDxtYW5zb25AY2hhcm1lZC5jeWdudXMuY29tPgoKCSogc3BhcmMvY3lnbW9uLmxkLnNyYzogVXNlIFRBUkdFVF9SQU1fU1RBUlQuCgoJKiBzcGFyYy9NYWtlZmlsZS5pbiAoU0xJVEVfUkFNX1NUQVJUKTogQWRkLgoJKFNQQVJDX1JBTV9TVEFSVCk6IEFkZC4KCShTUEFSQzY0X1JBTV9TVEFSVCk6IEFkZC4KCShTTElURV9BTEwpOiBBZGQgY3lnbW9uIG9iamVjdCBmaWxlcyBhbmQgbGlua2VyIHNjcmlwdC4KCXNsaXRlLWluc3RhbGw6IEluc3RhbGwgQ3lnTW9uIGxpYnJhcmllcyBhbmQgbGlua2VyIHNjcmlwdC4KCk1vbiBNYXIgIDIgMTk6MzY6MTIgMTk5OCAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGN5Z251cy5jb20+CgoJKiByczYwMDAvYWRzLmxkOiBBZGQgZGVmYXVsdCBhdHRyaWJ1dGVzIHRvIG1lbW9yeSByZWdpb24uCgkqIGEyOWsve3AzZGdwcyxzYTI5MjAweyxifX0ubGQ6IERpdHRvLgoJKiBocDc0eC9ocHBhLmxkOiBEaXR0by4KCSogbTY4ay97YmNjLGlkcCxtdm1lezEzNSwxNjJ9LHNiYzUyMHs0LDZ9fS5sZDogRGl0dG8uCgkqIHBhL3tvcDUwbix3ODlrfS5sZDogRGl0dG8uCgkqIHNoL3tzaDF7bCwyLDN9Y2V2YixzaDNiYn0ubGQ6IERpdHRvLgoJKiBzcGFyYy97ZXJjMzIsZXg5M3swLDEsNH19LmxkOiBEaXR0by4KCkZyaSBGZWIgMjcgMTc6MTU6MzUgMTk5OCAgTWFyayBBbGV4YW5kZXIgIDxtYXJrYUBjeWdudXMuY29tPgoKCSogbW4xMDMwMC9jb25maWd1cmUuaW4gKEFDX0lOSVQpOiBVc2UgY3J0MC5TIGluc3RlYWQgb2YgY3J0MC1ldmFsLlMuCgpGcmkgRmViIDI3IDE3OjM5OjIzIDE5OTggIEplZmZyZXkgQSBMYXcgIChsYXdAY3lnbnVzLmNvbSkKCgkqIGNvbmZpZ3VyZS5pbjogVXNlICJtbjEwMzAwIiBzdWJkaXIgZm9yICJtbjEwMzAwLSotKiIuCgpNb24gRmViIDIzIDIwOjI5OjQyIDE5OTggIE1hcmsgQWxleGFuZGVyICA8bWFya2FAY3lnbnVzLmNvbT4KCgkqIG1uMTAzMDAvTWFrZWZpbGUuaW4gKEdFTk9CSlMpOiBSZW1vdmUgc3lzdGVtIGNhbGxzIG5vIGxvbmdlcgoJc3VwcG9ydGVkLgoJKiBtbjEwMzAwL3RyYXAuaDogVXNlIGdlbmVyaWMgc3lzY2FsbC5oLgoJKiBtbjEwMzAwL3N5cy9zeXNjYWxsLmg6IFJlbW92ZWQgaW4gZmF2b3Igb2YgZ2VuZXJpYyBzeXNjYWxsLmguCgpNb24gRmViIDIzIDE2OjE5OjE3IDE5OTggIEdhdmluIEtvY2ggIDxnYXZpbkBjeWdudXMuY29tPgoKCSogbWlwcy9NYWtlZmlsZS5pbiAoY21hMTAxLm8pOiBBZGQgcnVsZSB0byBleHBsaWNpdGx5IHVzZSAtbW5vLW1pcHMxNi4KCSogbWlwcy9jbWExMDEuYzogUmV2ZXJzZSBteSBwcmV2aW91cyBjaGFuZ2UuCglBZGQgI2lmZGVmIF9fbWlwczE2IHRoZW4gI2Vycm9yLgoKTW9uIEZlYiAyMyAxMToyOTozMyAxOTk4ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBtbjEwMzAwL01ha2VmaWxlLmluOiBBZGQgcnVsZXMgZm9yIGJ1aWxkaW5nIGxpYmV2YWwuYS4KCSogbW4xMDMwMC9jb25maWd1cmU6IERvbid0IHVzZSBkZWZhdWx0Lm10LgoJKiBtbjEwMzAwL2NvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIG1uMTAzMDAvZXZhbC5sZDogUmVwbGFjZSB3aXRoIG1vZGlmaWVkIHZlcnNpb24gb2YgZGVmYXVsdCBzY3JpcHQuCgoJKiBtbjEwMzAwL19leGl0LmM6IE5ldyBmaWxlIGZvciBsaWJldmFsLmEuCgkqIG1uMTAzMDAvYWNjZXNzLmM6IERpdHRvLgoJKiBtbjEwMzAwL2NobW9kLmM6IERpdHRvLgoJKiBtbjEwMzAwL2Nob3duLmM6IERpdHRvLgoJKiBtbjEwMzAwL2Nsb3NlLmM6IERpdHRvLgoJKiBtbjEwMzAwL2NyZWF0LmM6IERpdHRvLgoJKiBtbjEwMzAwL2NydDAuUzogRGl0dG8uCgkqIG1uMTAzMDAvY3J0MS5jOiBEaXR0by4KCSogbW4xMDMwMC9leGVjdi5jOiBEaXR0by4KCSogbW4xMDMwMC9leGVjdmUuYzogRGl0dG8uCgkqIG1uMTAzMDAvZm9yay5jOiBEaXR0by4KCSogbW4xMDMwMC9mc3RhdC5jOiBEaXR0by4KCSogbW4xMDMwMC9nZXRwaWQuYzogRGl0dG8uCgkqIG1uMTAzMDAvZ2V0dGltZS5jOiBEaXR0by4KCSogbW4xMDMwMC9pc2F0dHkuYzogRGl0dG8uCgkqIG1uMTAzMDAva2lsbC5jOiBEaXR0by4KCSogbW4xMDMwMC9sc2Vlay5jOiBEaXR0by4KCSogbW4xMDMwMC9vcGVuLmM6IERpdHRvLgoJKiBtbjEwMzAwL3BpcGUuYzogRGl0dG8uCgkqIG1uMTAzMDAvcmVhZC5jOiBEaXR0by4KCSogbW4xMDMwMC9zYnJrLmM6IERpdHRvLgoJKiBtbjEwMzAwL3NpbS5sZDogRGl0dG8uCgkqIG1uMTAzMDAvc3RhdC5jOiBEaXR0by4KCSogbW4xMDMwMC90aW1lLmM6IERpdHRvLgoJKiBtbjEwMzAwL3RpbWVzLmM6IERpdHRvLgoJKiBtbjEwMzAwL3RyYXAuUzogRGl0dG8uCgkqIG1uMTAzMDAvdHJhcC5oOiBEaXR0by4KCSogbW4xMDMwMC91bmxpbmsuYzogRGl0dG8uCgkqIG1uMTAzMDAvdXRpbWUuYzogRGl0dG8uCgkqIG1uMTAzMDAvd2FpdC5jOiBEaXR0by4KCSogbW4xMDMwMC93cml0ZS5jOiBEaXR0by4KCSogbW4xMDMwMC9zeXMvc3lzY2FsbC5oOiBEaXR0by4KCkZyaSBGZWIgMjAgMTc6MTk6MjIgMTk5OCAgR2F2aW4gS29jaCAgPGdhdmluQGN5Z251cy5jb20+CgoJKiBtaXBzL2NtYTEwMS5jOiAjaWZkZWYgb3V0IHdob2xlIGZpbGUgaWYgbWlwczE2LgoKVGh1IEZlYiAxOSAxMzowNTo1OCAxOTk4ICBCb2IgTWFuc29uICA8bWFuc29uQGNoYXJtZWQuY3lnbnVzLmNvbT4KCgkqIGk5NjAvKjogUmV2aXNlZC4KCldlZCBGZWIgMTggMTI6MDA6MjAgMTk5OCAgSmVmZiBKb2huc3RvbiAgPGpqb2huc3RuQGN5Z251cy5jb20+CgoJKiBtNjhrL2NydDAuUyAoc3RhcnQpOiBGaXhlZCBjb2RlIHRoYXQgY2xlYXJzIC5ic3MuICBDb2RlCgl3YXMgdXNpbmcgZGJyYSBpbnN0cnVjdGlvbiBhbmQgZGlkIG5vdCBhY2NvdW50IGZvciB0aGUgZmFjdAoJdGhhdCB0aGUgaW5zdHJ1Y3Rpb24gYnJhbmNoZXMgdW50aWwgY291bnRlciBpcyAtMSwgbm90IDAuCgpUdWUgRmViIDE3IDE4OjIxOjUyIDE5OTggIE1hcmsgQWxleGFuZGVyICA8bWFya2FAY3lnbnVzLmNvbT4KCgkqIG1uMTAzMDAvTWFrZWZpbGUuaW46IE5ldyBmaWxlIGZvciBNTjEwMzAwIGV2YWwgYm9hcmQgc3VwcG9ydC4KCSogbW4xMDMwMC9jb25maWd1cmU6IERpdHRvLgoJKiBtbjEwMzAwL2NvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIG1uMTAzMDAvY3J0MC1ldmFsLlM6IERpdHRvLgoJKiBtbjEwMzAwL2V2YWwubGQ6IERpdHRvLgoJKiBtbjEwMzAwL3Rlc3QuYzogRGl0dG8uCgpUdWUgRmViIDE3IDE5OjU1OjQ3IDE5OTggIEdhdmluIEtvY2ggIDxnYXZpbkBjeWdudXMuY29tPgoKCSogbWlwcy92cjQzMDAuUyAoX19wcmV2aW91cyk6IEZpeCBjb21tZW50IHR5cGUtbyBpbgoJcHJldmlvdXMgY2hhbmdlLgoKVHVlIEZlYiAxNyAxMDo0Nzo0NSAxOTk4ICBHYXZpbiBLb2NoICA8Z2F2aW5AY3lnbnVzLmNvbT4KCgkqIG1pcHMvdnI0MzAwLlMgKF9fcHJldmlvdXMsYmFzZWFkZHIscmVzX2Jhc2VhZGRyKToKIAlGaWd1cmUgdGhlIGxlbmd0aCBvZiB0aGUgZXhjZXB0aW9uIGhhbmRsZXIgYXQgcnVudGltZQoJcmF0aGVyIHRoYW4gY29tcGlsZSB0aW1lLgoKVHVlIEZlYiAgMyAxNDowNzo1MSAxOTk4ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW46IFdoZW4gcnVubmluZyBjb25maWctbWwuaW4sIHB1dCAtLWVuYWJsZS1tdWx0aWxpYgoJYmVmb3JlIGFjX2NvbmZpZ3VyZV9hcmdzLCBzbyB0aGF0IC0tZGlzYWJsZS1tdWx0aWxpYiBjYW4gb3ZlcnJpZGUKCWl0LgoJKiBjb25maWd1cmU6IFJlYnVpbGQuCgpGcmkgSmFuICA5IDE3OjEwOjU5IDE5OTggIE1hcmsgQWxleGFuZGVyICA8bWFya2FAY3lnbnVzLmNvbT4KCgkqIG1pcHMvTWFrZWZpbGUuaW4gKExTSU9CSlMsIERWRU9CSlMpOiBBZGQgcGFydC1zcGVjaWZpYyBvYmplY3RzLgoKTW9uIEphbiAgNSAxNzowMTo0NSAxOTk4ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBjb25maWcvbWlwcy5tdDogQWRkIHJ1bGVzIGZvciByZWFkLm8gYW5kIHdyaXRlLm8uCgkqIG1pcHMvZHZlbW9uLmM6IE5ldyBmaWxlIHRvIHN1cHBvcnQgRGVuc2FuIERWRS1SMzkwMCBib2FyZC4KCSogbWlwcy9kdmUubGQ6IE5ldyBmaWxlIHRvIHN1cHBvcnQgRGVuc2FuIERWRS1SMzkwMCBib2FyZC4KCSogbWlwcy9NYWtlZmlsZS5pbjogQWRkIHJ1bGVzIGZvciBEZW5zYW4gc3VwcG9ydCBsaWJyYXJ5IGxpYmR2ZS5hLgoJKiBtaXBzL2NvbmZpZ3VyZS5pbjogQnVpbGQgbGliZHZlLmEgZm9yIHR4MzkgdGFyZ2V0cy4KCSogbWlwcy9jb25maWd1cmU6IERpdHRvLgoKVHVlIERlYyAzMCAxNTozNDoxNyAxOTk3ICBCb2IgTWFuc29uICA8bWFuc29uQGNoYXJtZWQuY3lnbnVzLmNvbT4KCgkqIHNwYXJjL01ha2VmaWxlLmluOiBBZGQgZGVmaW5lIGZvciBUQVJHRVRfQ1BVXyQoQ1BVKS4KCgkqIHNwYXJjL2N5Z21vbi1zYWxpYi5jOiBJZiBUQVJHRVRfQ1BVX1NQQVJDNjQsIGluY2x1ZGUKCXN5cy90eXBlcy5oLCBhbmQgZGVmaW5lIF9vcGVuX3IsIF9jbG9zZV9yLCBldGMuCgpTdW4gRGVjIDI4IDE3OjE1OjUwIDE5OTcgIEJvYiBNYW5zb24gIDxtYW5zb25AY2hhcm1lZC5jeWdudXMuY29tPgoKCSogc3BhcmMvY3lnbW9uLXNhbGliLmMgKF9vcGVuX3IsIF9jbG9zZV9yKTogTmV3IGZ1bmN0aW9ucy4KCShyZWFkLCB3cml0ZSk6IElmIHRoZSBmZCBpc24ndCAwLCAxLCBvciAyLCByZXR1cm4gYW4gZXJyb3IuCgpGcmkgRGVjIDI2IDE4OjQ1OjI4IDE5OTcgIEJvYiBNYW5zb24gIDxtYW5zb25AY2hhcm1lZC5jeWdudXMuY29tPgoKCSogc3BhcmMvY3lnbW9uLXNhbGliLmMgKF9zYnJrX3IsIF9mc3RhdF9yLF9icmtfcik6IERlZmluZS4KCgkqIHNwYXJjL2N5Z21vbi1jcnQwLlM6IFplcm8gb3V0ICVmcCBzbyBiYWNrdHJhY2VzIGZyb20gZ2RiIHdvcmsKCXByb3Blcmx5LgoKCSogc3BhcmMvY29uZmlndXJlLmluOiBTZXQgQ1lHTU9OTERTQ1JJUFRURU1QTCBhcHByb3ByaWF0ZWx5LgoKCSogc3BhcmMvTWFrZWZpbGUuaW4gKCQob2JqZGlyKS9jeWdtb24ubGQpOiBVc2UgQ1lHTU9OTERTQ1JJUFRURU1QTAoJdG8gZGV0ZXJtaW5lIHdoYXQgdGVtcGxhdGUgZmlsZSB3ZSB1c2UuCgoxOTk3LTEyLTIyICBGZWxpeCBMZWUgIDxmbGVlQGN5Z251cy5jb20+CgoJKiByczYwMDAvc2ltLWVycm5vLmMgKF9jZXJyb3IpOiBuZWVkIHRvIHJldHVybiAtMS4KCSogcnM2MDAwL3NvbC1jZnVuY3MuYyAoX2NlcnJvcik6IGxpa2V3aXNlLgoKTW9uIERlYyAyMiAxNjo1NDozMSAxOTk3ICBCb2IgTWFuc29uICA8bWFuc29uQGNoYXJtZWQuY3lnbnVzLmNvbT4KCgkqIHNwYXJjL2N5Z21vbi1jcnQwLlM6IEFkZCBzdGFjayBiaWFzIGNvZGUgaWYgVEFSR0VUX0NQVV9TUEFSQzY0IGlzCglkZWZpbmVkLiBBbGxvY2F0ZSAxMjggYnl0ZXMgZm9yIGEgZnJhbWUgaWYgc3BhcmM2NC4KCgkqIHNwYXJjL2N5Z21vbi5sZC5zcmM6IE5ldyBmaWxlLCByZXBsYWNlZCBjeWdtb24ubGQuCgoJKiBzcGFyYy9NYWtlZmlsZS5pbiAoU1BBUkNfT0JKX0ZPUk1BVCk6IEFkZGVkLgoJKFNQQVJDNjRfQUxMLFNQQVJDNjRfSU5TVEFMTCxTUEFSQzY0X09CSl9GT1JNQVQpOiBBZGRlZC4KCSgkKG9iamRpcikvY3lnbW9uLmxkKTogQ3JlYXRlIGZyb20gJChvYmpkaXIpL2N5Z21vbi5sZC5zcmMuCgoJKiBzcGFyYy9jb25maWd1cmUuaW46IEFkZCBzcGFyYzY0IHRvIENQVSBsaXN0LgoJKiBzcGFyYy9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKU3VuIERlYyAyMSAxODoxOToyNyAxOTk3ICBCb2IgTWFuc29uICA8bWFuc29uQGNoYXJtZWQuY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkZWQgc3BhcmM2NC1lbGYgY29uZmlndXJhdGlvbi4KCldlZCBEZWMgMTAgMTk6MTU6MjYgMTk5NyAgQW5kcmV3IENhZ25leSAgPGNhZ25leUBiMS5jeWdudXMuY29tPgoKCSogbWlwcy9wbW9uLmxkLCBtaXBzL2RkYi5sZDogQWRkIGhhbmRsaW5nIG9mIERXQVJGCiAJc2VjdGlvbnMuIENvcGllZCBmcm9tIG1pcHMvaWR0LmxkLgoKV2VkIERlYyAxMCAxMjozMTowNCAxOTk3ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBtaXBzL2NvbmZpZ3VyZTogQWRkIGVudHJ5Lm8gdG8gTFNJIGxpYnJhcnkuCgkqIG1pcHMvY29uZmlndXJlLmluOiBEaXR0by4KCSogbWlwcy9jcnQwLlM6IERlY2xhcmUgaW5pdCBob29rcyBhcyAudGV4dCB0byBhdm9pZCBsaW5rZXIgZXJyb3JzLgoJKiBtaXBzL3Btb24uUzogRG9uJ3QgdXNlIDY0LWJpdCBpbnN0cnVjdGlvbnMgb24gMzItYml0IEVBQkkgbWFjaGluZXMuCgkqIG1pcHMvZW50cnkuUzogTmV3IGZpbGUgKE1JUFMxNiBlbnRyeS9leGl0IGV4Y2VwdGlvbiBoYW5kbGVyKS4KClR1ZSBEZWMgIDkgMTg6NTE6NDUgMTk5NyAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGN5Z251cy5jb20+CgoJKiBkMzB2L2NydDAuUyAoX3N0YXJ0KTogRG9uJ3QgbG9hZCByMSB3aXRoIDMyIGFueW1vcmUuICBaZXJvIG91dAoJdGhlIDMgYnNzIGFyZWFzLgoKRnJpIE5vdiAyOCAyMjozNDoxNCAxOTk3ICBCb2IgTWFuc29uICA8bWFuc29uQGNoYXJtZWQuY3lnbnVzLmNvbT4KCgkqIHNwYXJjL2N5Z21vbi1zYWxpYi5jIChvcGVuKTogTmV3IHN5c2NhbGwuCgoJKiBzcGFyYy9jeWdtb24ubGQ6IEFkZCBnY2NfZXhjZXB0X3RhYmxlIHNlY3Rpb24uCgoJKiBzcGFyYy9jeWdtb24tY3J0MC5TOiBDYWxsIF9faW5zdGFsbF9zaWduYWxfaGFuZGxlci4KCVJ1biBjdG9ycy9kdG9ycyBhcyBhcHByb3ByaWF0ZS4KCgkqIHNwYXJjL2N5Z21vbi1zYWxpYi5jIChnZXR0aW1lb2ZkYXkpOiBOZXcgc3lzY2FsbC4KCShzdGltZSk6IERpdHRvLgoJKGFkZF9tYXBwaW5nKTogRGl0dG8uCgkocmVtb3ZlX21hcHBpbmcpOiBEaXR0by4KCShfX2luc3RhbGxfc2lnbmFsX2hhbmRsZXIpOiBEaXR0by4KCldlZCBOb3YgMjYgMTU6MjU6MTEgMTk5NyAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGN5Z251cy5jb20+CgoJKiByczYwMDAvbWNvdW50LlM6IE5ldyBmaWxlIHRvIGluIGNhc2Ugbm8gcHJvZmlsaW5nIG1vZHVsZSB3YXMKCWRlZmluZWQuCgoJKiByczYwMDAvTWFrZWZpbGUuaW4gKE9CSlMpOiBBZGQgbWNvdW50Lm8KCShtY291bnQubyk6IERlcGVuZCBvbiBtY291bnQuUy4KCk1vbiBOb3YgMjQgMjM6MjU6MDcgMTk5NyAgQm9iIE1hbnNvbiAgPG1hbnNvbkBjaGFybWVkLmN5Z251cy5jb20+CgoJKiBzcGFyYy9jeWdtb24ubGQ6IEFkZCBsaW5rb25jZSBzZWN0aW9ucy4KCk1vbiBOb3YgMjQgMTg6NDI6NTUgMTk5NyAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGN5Z251cy5jb20+CgoJKiBkMzB2L3N5c2NhbGxzLmMgKF9fc3lzY2FsbCk6IENvcnJlY3Qgc2V0dGluZyBlcnJuby4KClN1biBOb3YgMjMgMTc6NDk6NDUgMTk5NyAgQm9iIE1hbnNvbiAgPG1hbnNvbkBjaGFybWVkLmN5Z251cy5jb20+CgoJKiBzcGFyYy9NYWtlZmlsZS5pbjogUmVtb3ZlZCBUQVJHRVRfQ0ZMQUdTLgoJKiBzcGFyYy9jb25maWd1cmUuaW46IERpdHRvLgoJKiBzcGFyYy9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKRnJpIE5vdiAyMSAyMToyMToyMyAxOTk3ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAY3lnbnVzLmNvbT4KCgkqIHN5c2NhbGwuaDogUmVtb3ZlIGQzMHYgZnJvbSBjb21tZW50cy4KCgkqIGQzMHYvc3lzY2FsbHMuYzogVXNlIGNvbW1vbiBzeXNjYWxsLmggZmlsZSwgbW92ZSBzZXR0aW5nIGVycm5vCglpbnRvIGNvbW1vbiBmdW5jdGlvbiwgcmF0aGVyIHRoYW4gaGF2ZSBlYWNoIHN0dWIgZG8gaXQuCgoJKiBkMzB2L01ha2VmaWxlLmluIChzeXNjYWxscy5jKTogVXNlIGNvbW1vbiBzeXNjYWxsLmgsIG5vdCB0aGUgb2xkCglkMzB2IHNwZWNpZmljIHZlcnNpb24uCgkoY2xlYW4pOiBQcm9wZXJseSByZW1vdmUgbGlicmFyaWVzLgoKCSogZDMwdi9zeXMvc3lzY2FsbC5oOiBEZWxldGUuCgpXZWQgTm92IDE5IDE2OjEzOjAwIDE5OTcgIERvdWcgRXZhbnMgIDxkZXZhbnNAc2ViYS5jeWdudXMuY29tPgoKCSogcnM2MDAwL01ha2VmaWxlLmluICh1bmxpbmsubyk6IEFkZCBydWxlIGZvci4KCgkqIHN5c2NhbGwuaDogTmV3IGZpbGUuCgpUdWUgTm92IDE4IDE3OjIyOjE4IDE5OTcgIERvdWcgRXZhbnMgIDxkZXZhbnNAc2ViYS5jeWdudXMuY29tPgoKCSogc3BhcmMvYXNtLmggKENPTkNBVDEpOiBVc2UgX19VU0VSX0xBQkVMX1BSRUZJWF9fLgoKCSogc3BhcmMvTWFrZWZpbGUuaW46IFJlb3JnYW5pemUgZmlsZS4KCgkqIHNwYXJjL01ha2VmaWxlLmluOiBSZW5hbWUgYWxsIG9jY3VyZW5jZXMgb2YgU0lNIHRvIEVSQzMyLgoJKGFsbCk6IERvbid0IGJ1aWxkIGVyYzMyIHN1cHBvcnQgYW55IG1vcmUgKG5ldmVyIGluc3RhbGxlZCBhbnl3YXkpLgoJKiBzcGFyYy9lcmMzMi1pby5jOiBSZW5hbWVkIGZyb20gc2ltLWlvLmMuCgkqIHNwYXJjL2VyYzMyLXN0dWIuYzogUmVuYW1lZCBmcm9tIHNpbS1zdHViLmMuCgkqIHNwYXJjL2VyYzMyLWNydDAuUzogUmVuYW1lZCBmcm9tIHNpbS1jcnQwLlMuCgkqIHNwYXJjL2VyYzMyLmxkOiBSZW5hbWVkIGZyb20gc2ltLmxkLgoJKiBzcGFyYy9jb25maWd1cmUuaW4gKEFDX0lOSVQpOiBVcGRhdGUuCgkqIHNwYXJjL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KClR1ZSBOb3YgMTggMTM6NTQ6NDYgMTk5NyAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGN5Z251cy5jb20+CgoJKiBkMzB2L3N5c2NhbGxzLmM6IE5ldyBmaWxlIHRvIHByb3ZpZGUgc3lzdGVtIGNhbGwgc3R1YnMuCgkqIGQzMHYvc3lzL3N5c2NhbGwuaDogTmV3IGZpbGUgdG8gcHJvdmlkZSBzeXN0ZW0gY2FsbCBudW1iZXJzLgoJKiBkMzB2L3NpbS17ZXhpdCxyZWFkLHdyaXRlfS5TOiBEZWxldGUsIG5vIGxvbmdlciB1c2VkLgoJKiBkMzB2L01ha2VmaWxlLmluOiBSZW1vdmUgb2xkIHN5c3RlbSBzdHVicywgYW5kIHVzZSB0aGUgbmV3IG9uZXMKCWluIHN5c2NhbGxzLmMuCgpUdWUgTm92IDE4IDEyOjM4OjM3IDE5OTcgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckBjeWdudXMuY29tPgoKCSogZDMwdi9zeXMvc3lzY2FsbC5oOiBEZWZpbmUgZm9yIGQzMHYgc3lzdGVtIGNhbGxzLgoKTW9uIE5vdiAxNyAyMjowNDowNCAxOTk3ICBCb2IgTWFuc29uICA8bWFuc29uQGNoYXJtZWQuY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQ29uZmlndXJlIHRoZSBzcGFyYyBkaXJlY3RvcnkgZm9yIHRoZSBzcGFyYy1lbGYKCXRvb2xjaGFpbi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCgkqIHNwYXJjL01ha2VmaWxlLmluOiBGb3IgYSBnZW5lcmljIHNwYXJjIHRvb2xjaGFpbiwgYnVpbGQgdGhlIGN5Z21vbgoJY3J0MCBhbmQgaW5zdGFsbCB0aGUgY3lnbW9uIGxpbmtlciBzY3JpcHQuCgoJKiBzcGFyYy9hc20uaCAoVVNFUl9MQUJFTF9QUkVGSVgpOiBJZiBpdCdzIGFscmVhZHkgZGVmaW5lZCwgZG9uJ3QKCXJlZGVmaW5lIGl0LgoKCSogc3BhcmMvY29uZmlndXJlLmluOiBBZGQgTElCX0FDX1BST0dfQ0MuIEFkZCBUQVJHRVRfQ0ZMQUdTCglzdWJzdCB2YXJpYWJsZS4KCSogc3BhcmMvY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCgkqIHNwYXJjL2N5Z21vbi5sZDogTmV3IGZpbGUuCgkqIHNwYXJjL2N5Z21vbi1jcnQwLlM6IE5ldyBmaWxlLgoJKiBzcGFyYy9jeWdtb24tc2FsaWIuYzogTmV3IGZpbGUuCgpTdW4gTm92IDE2IDIwOjIyOjIyIDE5OTcgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckBjeWdudXMuY29tPgoKCSogZDMwdi9jcnQwLlMgKF9zdGFydCk6IFNldCB1cCBzdGFjayBwb2ludGVyIHRvIGVuZCBvZiBpbnRlcm5hbAoJbWVtb3J5IGJ5IGRlZmF1bHQuCgpUdWUgTm92IDExIDE3OjQzOjA2IDE5OTcgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckBjeWdudXMuY29tPgoKCSogZDMwdi9NYWtlZmlsZS5pbiAoT0JKUyk6IFVzZSBwcmludC5vLCBub3QgcHJpbnQuYy4gIEFkZCBzYnJrLm8uCgpNb24gTm92IDEwIDEzOjU3OjQwIDE5OTcgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckBjeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluIChkMzB2LSotKik6IEFkZCBjb25maWd1cmF0aW9uLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoJKiBkMzB2L3tjcnQwLHNpbS17cmVhZCx3cml0ZSxleGl0fX0uUzogQ29ycmVjdCB0eXBvcy4KCSogZDMwdi9NYWtlZmlsZS5pbjogRGl0dG8uCgpTYXQgTm92ICA4IDE0OjM4OjU3IDE5OTcgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckBjeWdudXMuY29tPgoKCSogZDMwdi9jcnQwLlM6IE5ldyBmaWxlIGZvciBkMzB2IHBvcnQuCgkqIGQzMHYvY29uZmlndXJleywuaW59OiBEaXR0by4KCSogZDMwdi9NYWtlZmlsZS5pbjogRGl0dG8uCgkqIGQzMHYve2luLG91dH1ieXRlLmM6IERpdHRvLgoJKiBkMzB2L3NpbS17cmVhZCx3cml0ZSxleGl0fS5jOiBEaXR0by4KClR1ZSBTZXAgMTYgMTU6MjE6MDggMTk5NyAgR2F2aW4gS29jaCAgPGdhdmluQGN5Z251cy5jb20+CgoJKiBtaXBzL01ha2VmaWxlLmluICh2cjQzMDAubyk6IFJlaW5zdGF0ZSBjb21tYW5kLCBpdCdzIHdpbGwKCWJlIG5lY2Vzc2FyeSB1bnRpbCBhbGwgaG9zdHMgcHJvcGVybHkgc2V0IEJTUCBpbiBjb25maWd1cmUuaW4uCgpNb24gU2VwIDE1IDE2OjIwOjI5IDE5OTcgIEJvYiBNYW5zb24gIDxtYW5zb25AY2hhcm1lZC5jeWdudXMuY29tPgoKCSogbTY4ay8qLmxkOiBBZGQgdW5kZXJzY29yZSB2ZXJzaW9ucyBvZiBfX0NUT1JfTElTVF9fIGFuZAoJX19EVE9SX0xJU1RfXy4KCk1vbiBTZXAgMTUgMTI6MTM6MzQgMTk5NyAgTWFyayBBbGV4YW5kZXIgIDxtYXJrYUBjeWdudXMuY29tPgoKCSogbWlwcy9jcnQwLlM6IERlY2xhcmUgZXh0ZXJuYWwgZnVuY3Rpb25zIGFzIC50ZXh0IHRvCgllbGltaW5hdGUgbGlua2VyIHdhcm5pbmdzLgoKVHVlIFNlcCAgOSAyMzozNTowNCAxOTk3ICBHYXZpbiBLb2NoICA8Z2F2aW5AY3lnbnVzLmNvbT4KCgkqIG1pcHMvTWFrZWZpbGUuaW4gKFNDUklQVFMpOiBOb3cgaXMgY29uZmlndXJhYmxlLgoJKEJTUCk6IE5vdyBpcyBjb25maWd1cmFibGUuCgkodnI0MzAwLm8pOiBSZW1vdmUgdW5uZWNlc3NhcnkgY29tbWFuZC4KCSogbWlwcy9jb25maWd1cmUuaW46IENvbmZpZ3VyZSB0aGUgbmV3bHkgY29uZmlndWFibGUKCVNDUklQVFMgYW5kIEJTUC4KCSogbWlwcy9jb25maWd1cmU6IFJlLWF1dG9jb25mLgoKCk1vbiBTZXAgIDggMTY6NTM6MTIgMTk5NyAgQm9iIE1hbnNvbiAgPG1hbnNvbkBjaGFybWVkLmN5Z251cy5jb20+CgoJKiBtaXBzL01ha2VmaWxlLmluIChwbW9uLm8pOiBBZGRlZCBjb21waWxlIGNvbW1hbmQgdGhhdCBpbmNsdWRlcwoJUEFSVF9TUEVDSUZJQ19ERUZJTkVTLiBEb24ndCBpbmNsdWRlIGNtYTEwMS5vIGJ5IGRlZmF1bHQuCgoJKiBtaXBzL2NvbmZpZ3VyZS5pbiAocGFydF9zcGVjaWZpY19kZWZpbmVzKTogTmV3IHZhcmlhYmxlCgl1c2VkIHdoZW4gYnVpbGRpbmcgcG1vbi5vLgoJKHBhcnRfc3BlY2lmaWNfb2JqKTogSW5jbHVkZSBjbWExMDEubyBhcyB3ZWxsIGFzIHZyNDMwMC5vLAoJc2luY2UgaXQgaXMgYm9hcmQtc3BlY2lmaWMgaW4gbWFueSB3YXlzIChhbmQgcmVsaWVzIG9uCglyb3V0aW5lcyBpbiB2cjQzMDAubykuCgpNb24gU2VwICA4IDE0OjQyOjQ0IDE5OTcgIEdhdmluIEtvY2ggIDxnYXZpbkBjeWdudXMuY29tPgoKCSogbWlwcy9pZHQubGQ6IEFkZCBoYW5kbGluZyBvZiBEV0FSRiBzZWN0aW9ucy4KClN1biBTZXAgIDcgMTY6NDM6MDUgMTk5NyAgR2F2aW4gS29jaCAgPGdhdmluQGN5Z251cy5jb20+CgoJKiBtaXBzL2NydDAuUywgbWlwcy9pZHRtb24uUywgbWlwcy92cjQzMDAuUzogSGFuZGxlIG1pcHMxNiBidWlsZHMuCgpUaHUgU2VwICA0IDE5OjM1OjEyIDE5OTcgIEFuZHJldyBDYWduZXkgIDxjYWduZXlAYjEuY3lnbnVzLmNvbT4KCgkqIHY4NTAvc3lzL3N5c2NhbGwuaDogTWF0Y2ggd2l0aCB3aGF0IGlzIGluIG5ld2xpYi4KCk1vbiBTZXAgIDEgMTI6NDM6NTAgMTk5NyAgQW5kcmV3IENhZ25leSAgPGNhZ25leUBiMS5jeWdudXMuY29tPgoKCSogdjg1MC9zeXMvc3lzY2FsbC5oOiBOZXcgZmlsZS4KClRodSBBdWcgMjggMTc6Mjc6MTYgMTk5NyAgU3RhbiBTaGVicyAgPHNoZWJzQGFuZHJvcy5jeWdudXMuY29tPgoKCSogcnM2MDAwL2Fkcy5sZDogRGVmaW5lIHJhbSByZWdpb24uCgkoX19zdGFjayk6IEZpeCB2YWx1ZS4KCSogcnM2MDAwL2NydDAuUzogQ2xlYXIgdGhlIHNic3MgYXJlYSBhcyB3ZWxsIGFzIGJzcy4KClR1ZSBBdWcgMjYgMTY6MjI6MzYgMTk5NyAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBjeWdudXMuY29tPgoKCSogbTY4ay9iY2MubGQ6IERvbid0IHVzZSBCTE9DSyBmb3IgdGhlIHNlY3Rpb24gYWRkcmVzc2VzLgoJSW5zdGVhZCwganVzdCBmb3JjZSAuIHRvIGJlIGFsaWduZWQgd2hlbiBuZWNlc3NhcnkuCgkqIG02OGsvaWRwLmxkLCBtNjhrL212bWUxMzUubGQsIG02OGsvbXZtZTE2Mi5sZDogTGlrZXdpc2UuCgkqIG02OGsvc2JjNTIwNC5sZCwgbTY4ay9zYmM1MjA2OiBMaWtld2lzZS4KCkZyaSBBdWcgIDggMTQ6MjA6MTYgMTk5NyAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQGN5Z251cy5jb20+CgoJKiByczYwMDAvTWFrZWZpbGUuaW4gKGluc3RhbGwte3llbGxvd2tuaWZlLGFkc30pOiBUaGUgbGlua2VyCglzY3JpcHRzIGFyZSBpbiB0aGUgc291cmNlIGRpcmVjdG9yeSwgbm90IHRoZSBvYmplY3QgZGlyZWN0b3J5LgoKRnJpIEF1ZyAgMSAxMjoyMTozMSAxOTk3ICBTdGFuIFNoZWJzICA8c2hlYnNAYW5kcm9zLmN5Z251cy5jb20+CgoJKiByczYwMDAvYWRzLmxkOiBOZXcgZmlsZSwgbGlua2VyIHNjcmlwdCBmb3IgODIxLzg2MCBBRFMgYm9hcmQuCgkqIHJzNjAwMC95ZWxsb3drbmlmZS5sZDogTmV3IGZpbGUsIGxpbmtlciBzY3JpcHQgZm9yIGVtYmVkZGVkCglZZWxsb3drbmlmZSAoQ0hSUC9QUENQKSBib3guCgkqIHJzNjAwMC9NYWtlZmlsZS5pbjogQWRkIHJ1bGVzIGZvciBBRFMgYW5kIFllbGxvd2tuaWZlIGJpdHMsCglyZW1vdmUgcmVmZXJlbmNlcyB0byBFVk0sIGRvbid0IG9wdGltaXplIHRoZSB0ZXN0IHByb2dyYW0uCgkqIHJzNjAwMC9jcnQwLlM6IFJlbmFtZWQgZnJvbSBtdm1lLWNydDAuUywgaXMgZ2VuZXJpYy4KCSogcnM2MDAwL212bWUtc3RhY2suUzogUmVtb3ZlZCwgdW5uZWNlc3NhcnkuCgpUdWUgSnVuICAzIDEyOjU0OjU5IDE5OTcgIEJvYiBNYW5zb24gIDxtYW5zb25AY2hhcm1lZC5jeWdudXMuY29tPgoKCSogbWlwcy9jcnQwLlM6IEFkZGVkIEdDUlQwICNpZmRlZiBmb3IgcHJvZmlsaW5nIHN1cHBvcnQuCgoJKiBtaXBzL01ha2VmaWxlLmluIChTQ1JJUFRTKTogQWRkZWQgaWR0ZWNvZmYuCgkoUENSVDApOiBBZGRlZC4KCgkqIG1pcHMvaWR0ZWNvZmYubGQ6IEFkZGVkLiBBZGQgY3J0MC5vIHN0YXJ0dXAgZW50cnkuCgpGcmkgQXByIDE4IDE1OjU0OjExIDE5OTcgIERvdWcgRXZhbnMgIDxkamVAY2FudWNrLmN5Z251cy5jb20+CgoJKiBtMzJyL2NydDAuUzogUmVtb3ZlIHJlZmVyZW5jZXMgdG8gLmZpbGxpbnNuLgoKTW9uIEFwciAxNCAxNjozNDoyNyAxOTk3ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGN5Z251cy5jb20+CgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuaW4gKElOU1RBTEwpOiBDaGFuZ2UgaW5zdGFsbC5zaCB0bwoJaW5zdGFsbC1zaC4KCldlZCBBcHIgIDkgMTU6NDE6MzkgMTk5NyAgTWlrZSBNZWlzc25lciAgPG1laXNzbmVyQGN5Z251cy5jb20+CgoJKiByczYwMDAvY29uZmlndXJlLmluIChBQ19QUk9HX0NDKTogY29waWVkIGZyb20gY29uZmlndXJlLmluLgoJKiByczYwMDAvY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKClNhdCBNYXIgMjkgMTI6MjE6MDggMTk5NyAgQm9iIE1hbnNvbiAgPG1hbnNvbkBjaGFybWVkLmN5Z251cy5jb20+CgoJKiBzcGFyYy8oZXg5MzAubGQsZXg5MzEubGQsZXg5MzQubGR9OiBTZXQgX19lbmQgYXMgd2VsbAoJYXMgX2VuZCBhbmQgZW5kLgoKRnJpIE1hciAyOCAyMzowMTozOCAxOTk3ICBNYXJrIEFsZXhhbmRlciAgPG1hcmthQGN5Z251cy5jb20+CgoJKiBtaXBzL2xzaS5sZDogQmVmb3JlIHNldHRpbmcgX2dwLCB1c2UgQUxJR04oOCkgaW5zdGVhZAoJb2YgQUxJR04oMTYpLiAgUmVtb3ZlIEFMSUdOIGZyb20gX2dwIGNvbXB1dGF0aW9uLgoKTW9uIE1hciAxNyAxMDowMDoyOSAxOTk3ICBHYXZpbiBLb2NoICA8Z2F2aW5AY3lnbnVzLmNvbT4KCgkqIG1pcHMvaWR0bW9uLlM6IEFkZGVkIG1hZ2ljIG51bWJlciBmb3IgX2ZsdXNoX2NhY2hlIHNsb3QuCgpGcmkgTWFyIDE0IDE0OjM2OjA2IDE5OTcgIEouVC4gQ29ua2xpbiAgPGp0Y0BiZWF1dHkuY3lnbnVzLmNvbT4KCgkqIG02OGsvTWFrZWZpbGUuaW4gKGluc3RhbGwpOiBGaXggdHlwby4KCgkqIG02OGsvY3J0MC5TOiBDaGFuZ2VkIHRvIHVzZSBjb3JyZWN0IGxvb3AgY29uZGl0aW9uIGZvciBjb2xkZmlyZS4KCldlZCBNYXIgMTIgMTY6MDA6NTEgMTk5NyAgU3R1IEdyb3NzbWFuICAoZ3Jvc3NtYW5AY3JpdHRlcnMuY3lnbnVzLmNvbSkKCgkqIHNwYXJjL01ha2VmaWxlLmluOiBBZGQgcnVsZXMgZm9yIGFib3ZlLgoJKDcwMV9PQkpTKTogQWRkIHNhbGliLTcwMS5vLCBzcGFyY2xldC1zdHViLm8uCglbQnJvdWdodCBvdmVyIGZyb20gTm92IDUgY2hhbmdlIGluIHNwYXJjbGV0IGJyYW5jaC5dCgoJKiBzcGFyYy9zYWxpYi03MDEuYyAoZmx1c2hfaV9jYWNoZSk6ICBJbXBsZW1lbnQgY2FjaGUgZmx1c2hpbmcgdG8gZml4CglpbnRlcm1pdHRlbnQgcHJvYmxlbXMgd2l0aCBnZGIgc3R1YiBhbmQgYnJlYWtwb2ludHMuICBGaXhlcyBwciAxMTc1NS4KCldlZCBNYXIgMTIgMTU6NDk6MzAgMTk5NyAgSi5ULiBDb25rbGluICA8anRjQGN5Z251cy5jb20+CgoJKiBtNjhrL3NiYzUyMDQ6IEZpeCBHUk9VUCBzcGVjaWZpZXIuCgkqIG02OGsvc2JjNTIwNjogTGlrZXdpc2UuCgpUdWUgTWFyIDExIDEzOjQzOjQ5IDE5OTcgIEouVC4gQ29ua2xpbiAgPGp0Y0BjeWdudXMuY29tPgoKCSogbTY4ay9NYWtlZmlsZS5pbiAoYWxsKTogRml4IHR5cG8uCgoJKiBtNjhrL2NydDAuUzogVXNlIGNtcGwgIzAsYVggaW5zdGVhZCBvZiBjbXB3ICMwLGFYIGFzIHRoZSBsYXR0ZXIKIAlpcyBhbiBpbnZhbGlkIGluc3RydWN0aW9uIG9uIHRoZSBjb2xkZmlyZS4KCkZyaSBNYXIgIDcgMTk6NDI6NTAgMTk5NyAgTWFyayBBbGV4YW5kZXIgIDxtYXJrYUBjeWdudXMuY29tPgoKCSogbWlwcy9sc2kubGQ6IE5ldyBmaWxlLgoJKiBtaXBzL2xzaXBtb24uUzogTmV3IGZpbGUuCgkqIE1ha2VmaWxlLmluOiBBZGQgc3VwcG9ydCBmb3IgTFNJIHZhcmlhbnQgb2YgUE1PTiAoTWluaVJJU0MgYm9hcmQpLgoJKiBwbW9uLlM6IERpdHRvLgoKRnJpIE1hciAgNyAxMDoyOToxMSAxOTk3ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGN5Z251cy5jb20+CgoJKiBtaXBzL3JlZ3MuUyAocGMpOiBEZWZpbmUuCgpUaHUgTWFyICA2IDE4OjExOjU3IDE5OTcgIEJvYiBNYW5zb24gIDxtYW5zb25AY2hhcm1lZC5jeWdudXMuY29tPgoKICAgICAgICogbWlwcy9wbW9uLlMgKElORElSRUNUKTogRm9yIGEgdGFyZ2V0IHRoYXQgdXNlcyB0aGUgNjQtYml0CiAgICAgICAgQUJJLCBzZXQgdXAgdGhlIHN0YWNrIGZvciBhIDMyLWJpdCBjYWxsIGJlZm9yZSBhY3R1YWxseSBjYWxsaW5nCiAgICAgICAgUE1PTi4KCiAgICAgICAgKiBtaXBzL3JlZ3MuUzogSzFCQVNFIG5lZWRzIHRvIGJlIGEgNjQtYml0IHZhbHVlIG9uIGEgbWFjaGluZQogICAgICAgIHdpdGggNjQtYml0IHBvaW50ZXJzLgoKICAgICAgICAqIG1pcHMvc3lzY2FsbHMuYyAoc2Jyayk6IFVzZSBzaXplX3QgaW5zdGVhZCBvZiB1bnNpZ25lZCBpbnQKICAgICAgICB3aGVuIGNvbXBhcmluZyBwb2ludGVycy4KCldlZCBNYXIgIDUgMTU6NDQ6MDQgMTk5NyAgRG91ZyBFdmFucyAgPGRqZUBzZWJhLmN5Z251cy5jb20+CgoJKiBtMzJyL2NydHN5c2MuYyAoX3NicmspOiBDaGFuZ2UgX2VuZCBkZWNsIHRvIF9fbW9kZWxfXyAoX19tZWRpdW1fXykuCgkqIG0zMnIvTWFrZWZpbGUuaW4gKG0zMnItc3R1Yi5vKTogVXNlIE1VTFRJU1JDVE9QIHRvIGZpbmQgbTMyci1zdHViLmMuCgpUdWUgTWFyICA0IDA3OjAxOjQ0IDE5OTcgIEouVC4gQ29ua2xpbiAgPGp0Y0BjeWdudXMuY29tPgoKCSogbTY4ay9jcnQwLlM6IFVzZSBjbXB3ICMwLGFYIGluc3RlYWQgb2YgdHN0bCBhWCwgYXMgdGhlIGxhdHRlciBpcwogCWFuIGludmFsaWQgYWRkcmVzc2luZyBtb2RlIG9uIHRoZSA2ODAwMCBjb3JlLgoKTW9uIE1hciAgMyAxNjozODoxOSAxOTk3ICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBtaXBzL2NydDAuUzogU3VidHJhY3QgMjQgaW5zdGVhZCBvZiA4IHdoZW4gY29tcHV0aW5nIHNwLgoKTW9uIE1hciAgMyAxMzozNToyMCAxOTk3ICBEb3VnIEV2YW5zICA8ZGplQGNhbnVjay5jeWdudXMuY29tPgoKCSogbTMyci9tMzJyLWxpYi5jOiBOZXcgZmlsZS4KCSogbTMyci97ZXZhLGV2YS1zdHVifS5sZDogTmV3IGZpbGVzLgoJKiBtMzJyL01ha2VmaWxlLmluOiBCdWlsZCBhbmQgaW5zdGFsbCB0aGVtLgoJQWxzbyBidWlsZCBhbmQgaW5zdGFsbCBtMzJyLXN0dWIuby4KClR1ZSBGZWIgMjUgMTE6NTk6MjAgMTk5NyAgR2F2aW4gS29jaCAgPGdhdmluQGN5Z251cy5jb20+CgoJKiBtaXBzL2NvbmZpZ3VyZS5pbiAoTElCX0FDX1BST0dfQ0MpOiBjb3BpZWQgZnJvbSBjb25maWd1cmUuaW4uCgkqIG1pcHMvY29uZmlndXJlLmluIChBQ19QUk9HX0NDKTogcmVwbGFjZWQgYnkgTElCX0FDX1BST0dfQ0MKCWNhbid0IGRvIGZpbmFsIGxpbmsgdW50aWwgbGlicyBpbiB0aGlzIGRpcmVjdG9yeSBhcmUgYnVpbHQuCgkqIG1pcHMvY29uZmlndXJlOiByZWdlbmVyYXRlZC4KClR1ZSBGZWIgMjUgMDA6MzE6MjcgMTk5NyAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBjeWdudXMuY29tPgoKCSogbWlwcy9jcnQwLlM6IENhbGwgaGFyZHdhcmVfaW5pdF9ob29rIGFuZCBzb2Z0d2FyZV9pbml0X2hvb2sgdmlhCglhIHJlZ2lzdGVyLCB0byBhdm9pZCByZWxvY2F0aW9uIG92ZXJmbG93IGlmIHRoZXkgYXJlIHplcm8uCgpNb24gRmViIDI0IDIyOjI1OjQ5IDE5OTcgIEdhdmluIEtvY2ggIDxnYXZpbkBjeWdudXMuY29tPgoKCSogbWlwcy9NYWtlZmlsZS5pbiAoSURUT0JKUyxQTU9OT0JKUyk6IFBhcnQgc3BlY2lmaWMgbW9kdWxlcwoJY2FuIG5vdyBiZSBjb25maWd1cmVkIGJ5IHBhcnRfc3BlY2lmaWNfb2JqLgoJKiBtaXBzL2NvbmZpZ3VyZS5pbiAocGFydF9zcGVjaWZpY19vYmopOiBhZGRlZC4KCSogbWlwcy9jb25maWd1cmU6IHJlZ2VuZXJhdGUuCgpGcmkgRmViIDIxIDE0OjI5OjU0IDE5OTcgIERvdWcgRXZhbnMgIDxkamVAY2FudWNrLmN5Z251cy5jb20+CgoJKiBtMzJyL2NydHN5c2MuYyAoX3NicmspOiBEZWNsYXJlIF9lbmQgd2l0aCBfX2F0dHJpYnV0ZSAoKF9fc3ltMzJfXykpLgoKRnJpIEZlYiAyMSAxMDoxMDo1NSAxOTk3ICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBtaXBzL2RkYi5sZDogQWxpZ24gdGhlIGxvY2F0aW9uIGNvdW50ZXIgYmVmb3JlIHNldHRpbmcgX2dwLCBhbmQKCWJlZm9yZSBzZXR0aW5nIGVkYXRhLiAgUmVtb3ZlIEFMSUdOIGZyb20gX2dwIGNvbXB1dGF0aW9uLgoJKiBtaXBzL2lkdC5sZCwgbWlwcy9wbW9uLmxkOiBCZWZvcmUgc2V0dGluZyBfZ3AsIHVzZSBBTElHTig4KSBpbnN0ZWFkCglvZiBBTElHTigxNikuICBSZW1vdmUgQUxJR04gZnJvbSBfZ3AgY29tcHV0YXRpb24uCgpUaHUgRmViIDIwIDE3OjMwOjQxIDE5OTcgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AY3lnbnVzLmNvbT4KCgkqIG1pcHMvYXJyYXkubGQ6IEFkZCBtaXBzMTYgc2VjdGlvbnMuCgkqIG1pcHMvZGRiLmxkLCBtaXBzL2lkdC5sZCwgbWlwcy9wbW9uLmxkOiBMaWtld2lzZS4KCgkqIG1pcHMvY3J0MC5TICh6ZXJvYnNzKTogVXNlIHN1YnUsIG5vdCBzdWIuCgpUdWUgRmViIDE4IDE3OjI1OjU2IDE5OTcgIE1hcmsgQWxleGFuZGVyICA8bWFya2FAY3lnbnVzLmNvbT4KCgkqIG1pcHMvY3J0MC5TOiBBZGQgLmVudCBsaW5lcyBmb3IgYWxsIGNvZGUgZnJhZ21lbnRzLCBzbwoJdGhhdCBvYmpkdW1wIC0tZGlzYXNzZW1ibGUgd2lsbCBkaXNwbGF5IHRoZW0gY29ycmVjdGx5LgoKRnJpIEZlYiAxNCAxMTowNzoyMCAxOTk3ICBKLlQuIENvbmtsaW4gIDxqdGNAY3lnbnVzLmNvbT4KCgkqIG02OGsvbXZtZS1zdHViLmM6IE5ldyBmaWxlLiAgQ29tbW9uIGRlYnVnZ2VyIHN0dWIgdXNlZCBmb3IgbXZtZS0KIAliYXNlZCB0YXJnZXRzLiAgVGhpcyBzaG91bGQgZXZlbnR1YWxseSBiZSBtZXJnZWQgd2l0aCBvciByZXBsYWNlZAogCWJ5IHRoZSBtNjhrIHN0dWIgZnJvbSBnZGIuCgkqIG02OGsve212bWUxMzUtc3R1Yi5jLCBtdm1lMTYybHgtc3R1Yi5jfTogUmVtb3ZlZC4KCSogbTY4ay9NYWtlZmlsZS5pbjogVXBkYXRlZCBmb3IgYWJvdmUgY2hhbmdlLgoKCSogbTY4ay97bXZtZTEzNS1hc20uUywgbXZtZTE2Mmx4LWFzbS5TfTogUmVtb3ZlZCBhbGwgd2hpdGVzcGFjZQogCWRpZmZlcmVuY2VzIGFuZCBjaGFuZ2VkIHRvIGNvbnNpc3RhbnRseSB1c2UgdGhlIElNTSBtYWNybyBmb3IKCWltbWVkaWF0ZSBjb25zdGFudHMuICBJdCBpcyBub3cgcG9zc2libGUgdG8gY29tcGFyZSB0aGVzZSB0d28KCWZpbGVzIHdpdGhvdXQgaGF2aW5nIHRvIGZpbHRlciBvdXQgaW5zaWduaWZpY2FudCBkaWZmZXJlbmNlcy4KCgkqIG02OGsvbXZtZTEzNS1zdHViLmMgKHNldF9kZWJ1Z190cmFwcyk6IFJlbmFtZWQgZnJvbQogCWluaXRfZGVidWdfdHJhcHMgdG8gbWF0Y2ggZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgc2FtcGxlIGRlYnVnZ2VyCglzdHVicy4KCgkqIG02OGsvc2JjNTIwNC5sZDogTmV3IGZpbGUsIGxpbmtlciBzY3JpcHQgZm9yIEFybmV3c2ggU0JDNTIwNC4KCgkqIG02OGsvc2JjNTIwNi5sZDogTmV3IGZpbGUsIGxpbmtlciBzY3JpcHQgZm9yIEFybmV3c2ggU0JDNTIwNi4KCgkqIG02OGsvTWFrZWZpbGUuaW4gKERCVUdfT0JKLCBEQlVHX0JTUCk6IE5ldyBCU1AgZm9yIGNvbGRmaXJlCgl0YXJnZXRzIHJ1bm5pbmcgdGhlIGRidWcgbW9uaXRvci4KCgkqIG02OGsve2RidWctZXhpdC5TLGRidWctaW5ieXRlLlMsZGJ1Zy1vdXRieXRlLlN9OiBOZXcgZmlsZXMuCgpUaHUgRmViICA2IDEzOjMxOjA2IDE5OTcgIEJvYiBNYW5zb24gIDxtYW5zb25AY2hhcm1lZC5jeWdudXMuY29tPgoKCSogbTY4ay9jcnQwLlM6IERvbid0IHVzZSBTWU0gdG8gcmVmZXIgdG8gc3ltYm9scyBkZWZpbmVkCglpbiB0aGUgbGlua2VyIHNjcmlwdC4KClRodSBKYW4gMTYgMTA6MzQ6MzYgMTk5NyAgSmltIFdpbHNvbiAgPHdpbHNvbkBjeWdudXMuY29tPgoKCSogbWlwcy97ZGRiLmxkLGlkdC5sZCxwbW9uLmxkfTogUmVhZGQgT1VUUFVUX0ZPUk1BVCBkZWZpbml0aW9uLgoKV2VkIEphbiAgOCAxNDo0OToyNiAxOTk3ICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBtaXBzL2NydDAuUyAoX3N0YXJ0KTogRG9uJ3QgdHJ5IHRvIHVzZSBGUFUgcmVnaXN0ZXJzIGlmCglfX21pcHNfc29mdF9mbG9hdCBpcyBkZWZpbmVkLgoKRnJpIERlYyAyNyAxNTo0MTowOCAxOTk2ICBCb2IgTWFuc29uICA8bWFuc29uQGNoYXJtZWQuY3lnbnVzLmNvbT4KCgkqIHNwYXJjL01ha2VmaWxlLmluIChzcGxldC1pbnN0YWxsKTogQWRkIHRzYzcwMS5sZC4KClRodSBEZWMgMjYgMTQ6NTk6MzQgMTk5NiAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQGNsZWF2ZXIuY3lnbnVzLmNvbT4KCgkqIHNwYXJjL3NwYXJjbGV0LXN0dWIuYzogQWRkIHN1cHBvcnQgZm9yICJQIiBwcm90b2NvbCBjb21tYW5kLgoJICBBZGQgc3VwcG9ydCBmb3IgJWNjIGNvcHJvY2Vzc29yIHJlZ2lzdGVycywgJWFzciByZWdpc3RlcnMuCgkgIFdvcmstYXJvdW5kIGJyb2tlbiBTQVZFIGluc3RydWN0aW9uIG9uIHNwYXJjbGV0LgoKVHVlIERlYyAyNCAyMjoxNTo1MyAxOTk2ICBBbmdlbGEgTWFyaWUgVGhvbWFzIChhbmdlbGFAY3lnbnVzLmNvbSkKCgkqIG1pcHMvcG1vbi5TOiBhZGQgYW4gSU5ESVJFQ1QgZm9yIF9mbHVzaF9jYWNoZSB0byBiZSB0aGUKCXNhbWUgYXMgbW9uX2ZsdXNoX2NhY2hlLiAgVGhpcyBmaXhlcyBmYWlsdXJlcyBpbiAibWFrZSBjaGVjayIKCk1vbiBEZWMgMjMgMTg6MDg6MDUgMTk5NiAgSmltIFdpbHNvbiAgPHdpbHNvbkBjeWdudXMuY29tPgoKCSogbWlwcy9zeXNjYWxscy5jIChfX2Vycm5vLCBfcmFpc2UpOiBEZWxldGUuCgpXZWQgRGVjIDE4IDE3OjI5OjI4IDE5OTYgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AY3lnbnVzLmNvbT4KCgkqIG1pcHMvaWR0LmxkOiBBbGlnbiB0aGUgbG9jYXRpb24gY291bnRlciBiZWZvcmUgc2V0dGluZyBfZ3AsIGFuZAogCWJlZm9yZSBzZXR0aW5nIGVkYXRhLgoJKiBtaXBzL3Btb24ubGQ6IExpa2V3aXNlLgoKU2F0IERlYyAxNCAyMTo1Mjo0MCAxOTk2ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW46IFVzZSBhIHNwZWNpYWwgdmVyc2lvbiBvZiBBQ19QUk9HX0NDLiAgQXV0b2NvbmYKCTIuMTIgaW50cm9kdWNlZCBhIGNoZWNrIGZvciB3aGV0aGVyIHRoZSBjb21waWxlciB3b3JrcywgYW5kIHRoYXQKCWNoZWNrIHdpbGwgZmFpbCBmb3IgYSBjcm9zcyBjb21waWxlcnMgd2l0aG91dCBhIGNvbXBsZXRlIHNldCBvZgoJbGlicmFyaWVzLgoKRnJpIERlYyAxMyAxMDo0MDoxNCAxOTk2ICBSb2IgU2F2b3llICA8cm9iQGNoaW5hZG9sbC5jeWdudXMuY29tPgoKCSogc2Jyay5jOiBTZXQgdGhlIGhlYXAgcG9pbnRlciB0byB0aGUgYWRkcmVzcyBvZiBfZW5kLCBub3QgdGhlCgl2YWx1ZS4KCldlZCBEZWMgMTEgMTU6MjY6NTAgMTk5NiAgSmltIFdpbHNvbiAgPHdpbHNvbkBjeWdudXMuY29tPgoKCSogbWlwcy97ZGRiLmxkLGlkdC5sZCxwbW9uLmxkfTogRGVsZXRlIE9VVFBVVF9GT1JNQVQgZGVmaW5pdGlvbi4KCkZyaSBEZWMgIDYgMTU6NTI6MzYgMTk5NiAgSmltIFdpbHNvbiAgPHdpbHNvbkBjeWdudXMuY29tPgoKCSogbWlwcy9jcnQwLlM6IERlbGV0ZSB1bnJlYWNoYWJsZSBpbnN0cnVjdGlvbiBhZnRlciBleGl0IGNhbGwuCglNb3ZlIGV4aXQgY2FsbCBiZWZvcmUgLmVuZCBfc3RhcnQuCgpUdWUgTm92IDI2IDE1OjA1OjI2IDE5OTYgIERvdWcgRXZhbnMgIDxkamVAcnRsLmN5Z251cy5jb20+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCBhdXRvY29uZiAyLjEyLgoKTW9uIE5vdiAxMSAxNToxMjowOCAxOTk2ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAdGlrdG9rLmN5Z251cy5jb20+CgoJKiBjb25maWcvcHBjLm1oOiBOZXcgUG93ZXJQQyBlYWJpIHRhcmdldCBzcGVjaWZpYyBjb25maWcgZmlsZS4KCUFsd2F5cyB1c2UgLW1yZWxvY2F0YWJsZS1saWIgLW1uby1lYWJpLgoKCSogcnM2MDAwL2NvbmZpZ3VyZS5pbiAoaG9zdF9tYWtlZmlsZV9mcmFnKTogVXNlIGNvbmZpZy9wcGMubWguCgkqIHJzNjAwMC9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoJKiByczYwMDAve212bWUsc2ltfS1jcnQwLm8gKF9zdGFydCk6IE1ha2UgaW5pdGlhbCBzdGFjayBmcmFtZSA2NAoJYnl0ZXMsIG5vdCA1NiBzbyB0aGF0IGl0IGlzIGFsaWduZWQgdG8gYSAxNiBieXRlIGJvdW5kYXJ5LgoKVHVlIE5vdiAgNSAxMDoyNDoyOSAxOTk2ICBEb3VnIEV2YW5zICA8ZGplQGNhbnVjay5jeWdudXMuY29tPgoKCSogc3BhcmMvTWFrZWZpbGUuaW4gKGNydDAtNzAxLm8pOiBVc2UgZGVmYXVsdCBydWxlIHRvIGJ1aWxkLgoJKiBzcGFyYy9jcnQwLTcwMS5TOiBTZWNvbmQgcGFzcyBhdCBsaXR0bGUgZW5kaWFuIHN1cHBvcnQuCgpUdWUgTm92ICA1IDEwOjA4OjQwIDE5OTYgIERhd24gUGVyY2hpayA8ZGF3bkBjcml0dGVycy5jeWdudXMuY29tPgoKCSogc3BhcmMve3NhbGliLTcwMS5jLHNwYXJjbGV0LXN0dWIuYyx0c2M3MDEubGR9OiBOZXcgZmlsZXMuCgkqIHNwYXJjL01ha2VmaWxlLmluOiBBZGQgcnVsZXMgZm9yIGFib3ZlLgoJKDcwMV9PQkpTKTogQWRkIHNhbGliLTcwMS5vLCBzcGFyY2xldC1zdHViLm8uCgpGcmkgTm92ICAxIDIxOjUwOjEyIDE5OTYgIEFuZ2VsYSBNYXJpZSBUaG9tYXMgKGFuZ2VsYUBjeWdudXMuY29tKQoKCSogbWlwcy9kZGIubGQ6IHJlbmFtZSBjYWlyby5sZCB0byBkZGIubGQKCSogbWlwcy9NYWtlZmlsZS5pbjogcmVuYW1lIGNhaXJvIHRvIGRkYgoKVGh1IE9jdCAzMSAxMzo1NDo1OCAxOTk2ICBTdGFuIFNoZWJzICA8c2hlYnNAYW5kcm9zLmN5Z251cy5jb20+CgoJKiBzaC9zaDFsY2V2Yi5sZCwgc2gvc2gybGNldmIubGQsIHNoL3NoM2xjZXZiLmxkOiBOZXcgZmlsZXMsCglsaW5rZXIgc2NyaXB0cyBmb3IgSGl0YWNoaSBldmFsIGJvYXJkcy4KClRodSBPY3QgMzEgMTI6Mzk6NTMgMTk5NiAgRG91ZyBFdmFucyAgPGRqZUBzZWJhLmN5Z251cy5jb20+CgoJKiBtMzJyL2NydDAuUzogU2V0IHVwIGZwLiAgU3BlZWQgdXAgemVyb2luZyBvZiBic3MuCgpTdW4gT2N0IDI3IDIwOjM0OjI3IDE5OTYgIE1hcmsgQWxleGFuZGVyICA8bWFya2FAY3lnbnVzLmNvbT4KCgkqIG1pcHMvY3J0MC5TOiBJbml0aWFsaXplIGdwIHJlZ2lzdGVyIGNvcnJlY3RseS4KClR1ZSBPY3QgMjIgMTI6MDI6MTkgMTk5NiAgRG91ZyBFdmFucyAgPGRqZUBjYW51Y2suY3lnbnVzLmNvbT4KCgkqIG0zMnIvc3lzL3N5c2NhbGwuaDogTmV3IGZpbGUuCgkqIG0zMnIvY3J0MC5TOiBSZXdyaXRlLgoJKiBtMzJyL2NydHN5c2MuYyAoX190cmFwKTogQWRqdXN0IGxpdGVyYWwgYW5kIGNvbW1lbnQgc3ludGF4LgoKVGh1IE9jdCAxNyAxMzo0Nzo1NCAxOTk2ICBEb3VnIEV2YW5zICA8ZGplQGNhbnVjay5jeWdudXMuY29tPgoKCSogbTMyci9zeXNjYWxscy5jOiBEZWxldGVkLCByZW5hbWVkIHRvCgkqIG0zMnIvY3J0c3lzYy5jOiB0aGlzLgoJKiBtMzJyL01ha2VmaWxlLmluOiBVcGRhdGVkLgoKTW9uIFNlcCAzMCAxMTo0MjowOCAxOTk2ICBEb3VnIEV2YW5zICA8ZGplQGNhbnVjay5jeWdudXMuY29tPgoKCSogbTMyci97TWFrZWZpbGUuaW4sY29uZmlndXJlLmluLGNvbmZpZ3VyZX06IE5ldyBmaWxlcy4KCSogbTMyci97Y3J0MC5TLHN5c2NhbGxzLmMsdHJhcC5TfTogTmV3IGZpbGVzLgoJKiBjb25maWd1cmUuaW46IFJlY29nbml6ZSBtMzJyLSotKi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KClRodSBTZXAgMjYgMTA6NTk6MjUgMTk5NiAgSmFtZXMgRy4gU21pdGggIDxqc21pdGhAY3lnbnVzLmNvLnVrPgoKCSogbWlwcy9jcnQwLlMgKF9leGl0KTogVXBkYXRlIHRlcm1pbmF0aW5nIGJyZWFrIGluc3RydWN0aW9uIHRvIHVzZQogCWFuIGV4cGxpY2l0IGhpZ2ggdmFsdWUuCgpNb24gU2VwIDIzIDE5OjAyOjMyIDE5OTYgIFN0YW4gU2hlYnMgIDxzaGVic0BhbmRyb3MuY3lnbnVzLmNvbT4KCgkqIHNoOiBOZXcgZGlyZWN0b3J5LCBIaXRhY2hpIFNIIGxpYmdsb3NzIHN1cHBvcnQuCgkqIHNoL3NoM2JiLmxkOiBOZXcgZmlsZSwgU0gzIGJpZyBib3ggbGlua2VyIHNjcmlwdC4KClRodSBTZXAgMTkgMTI6MDI6MjMgMTk5NiAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBjeWdudXMuY29tPgoKCSogbWlwcy9jcnQwLlMgKHplcm9ic3MpOiBVc2UgYmx0dSBpbiB6ZXJvYnNzIGxvb3AsIG5vdCBibmUsIGluCgljYXNlIHRoZSBlbmQgc3ltYm9sIGlzIG5vdCBhbGlnbmVkLgoKU3VuIFNlcCAxNSAxMjoyMzo0NyAxOTk2ICBKYW1lcyBHLiBTbWl0aCAgPGpzbWl0aEBjeWdudXMuY28udWs+CgoJKiBtaXBzL3ZyNDMwMC5TIChfX2NwdV9mbHVzaCk6IEZpeCBsdWkgY29uc3RhbnQuCgkqIG1pcHMvY3J0MC5TIChpbml0KTogRml4IHBhc3Npbmcgb2YgYXJnMCB0aHJvdWdoIGV4aXQoKSBhbmQKIAlfZXhpdCgpLgoJKiBtaXBzL3N5c2NhbGxzLmMgKF9fZXJybm8pOiBSZXR1cm4gYWRkcmVzcyBvZiBlcnJubywgcmF0aGVyIHRoYW4KIAlOVUxMLgoKV2VkIFNlcCAxMSAxMDo0NToxMyAxOTk2ICBTdHUgR3Jvc3NtYW4gIChncm9zc21hbkBjcml0dGVycy5jeWdudXMuY29tKQoKCSogbTY4ay9iY2MubHMsIG02OGsvaWRwLmxkLCBtNjhrL212bWUxMzUubGQsIG02OGsvbXZtZTE2Mi5sZDoKCU1lcmdlIC5pbml0IGFuZCAuZmluaSBzZWN0aW9ucyBpbnRvIC50ZXh0IHRvIGZpeCBhLm91dC4KClN1biBTZXAgIDggMDk6NTA6MDggMTk5NiAgU3R1IEdyb3NzbWFuICAoZ3Jvc3NtYW5AY3JpdHRlcnMuY3lnbnVzLmNvbSkKCgkqIG02OGsvYmNjLmxzLCBtNjhrL2lkcC5sZCwgbTY4ay9tdm1lMTM1LmxkLCBtNjhrL212bWUxNjIubGQ6CglNYW55IGZpeGVzIGZvciBwcm9ibGVtcyBkaXNjb3ZlcmVkIGR1cmluZyB0ZXN0aW5nLiAgTWFrZSBzdGFjayBlbmQKCWF0IGVuZCBvZiByYW0uICBGb3JjZSBfX0NUT1JfTElTVF9fIGFuZCBfX0RUT1JfTElTVF9fIHRvIGJlCglsb25nd29yZCBhbGlnbmVkLiAgTW92ZSAuc2hkYXRhIG91dCBvZiAudGV4dCBzZWN0aW9uLiAgUHV0IC5yb2RhdGEKCWFuZCAuZ2NjX2V4Y2VwdF90YWJsZSBpbnRvIC50ZXh0IHNlY3Rpb24uICBHZXQgcmlkIG9mIC5zaGJzcwoJc2VjdGlvbiwgbG9hZCBpdCBpbnRvIC5ic3MuICBSZW1vdmUgYm9ndXMgc3RhcnQgYWRkcmVzcwoJY2FsY3VsYXRpb24gZm9yIC5ic3MuICBGb3JjZSBhbGwgc2VjdGlvbnMgdG8gYmUgbG9uZ3dvcmQgYWxpZ25lZC4KCUNyZWF0ZSAuaW5pdCBhbmQgLmZpbmkgc2VjdGlvbnMgKGluY2x1ZGluZyBmdW5jdGlvbiBwcm9sb2d1ZXMgYW5kCgllcGlsb2d1ZXMpIGZvciBFTEYgc3VwcG9ydC4KCSogY3B1MzJidWcuUyBjcHUzMmJ1Zy5oOiAgTW92ZSBkZWZzIGZvciBjcHUzMmJ1ZyBtb25pdG9yIGludG8KCWNwdTMyYnVnLmguICBNYWtlIHN1cmUgdGhhdCBjcHUzMmJ1ZyBmdW5jdGlvbiBjb2RlcyBhcmVuJ3QgZ2xvYmFsLgoJUmVtb3ZlIGNyZWF0aW9uIG9mIHZicl90YWJsZS4gIEZpeCBmdW5jdGlvbiBwcm9sb2d1ZSBpbglfZXhpdC4KCVVzZSBmcCBpbnN0ZWFkIG9mIGE2LiAgQWRkIC50ZXh0IHBzZXVkby1vcCB0byB0aGUgYmVnaW5uaW5nIG9mCgllYWNoIGZ1bmN0aW9uLgoJKiBjcnQwLlM6ICBSZW1vdmUgZ2xvYmFsIHN5bWJvbHMgemVyb2Jvc3MsIGluaXQgYW5kIGxhdW5jaC4gIE1ha2UKCW1haW4sIGV4aXQsIGhhcmR3YXJlX2luaXRfaG9vaywgc29mdHdhcmVfaW5pdF9ob29rLCBhdGV4aXQgYW5kCglfX2RvX2dsb2JhbF9kdG9ycyBleHRlcm4sIG5vdCBnbG9iYWwuICBGaXggbG9naWMgZXJyb3Igd2hlbgoJaW5pdGlhbGl6aW5nIHN0YWNrIHBvaW50ZXIuICBJdCBub3cgbG9hZHMgc3AgaWYJX19zdGFjayBpcyBub24tCgl6ZXJvLiAgUmV2ZXJzZSBvcmRlciBvZiBzb2Z0d2FyZSBhbmQgaGFyZHdhcmUgaW5pdCBob29rcy4KCUhhcmR3YXJlIG5vdyBjb21lcyBmaXJzdC4gIEFkZCBjYWxsIHRvIF9fSU5JVF9TRUNUSU9OX18sIGFuZAoJcmVnaXN0ZXIgX19GSU5JX1NFQ1RJT05fXyB3aXRoIGF0ZXhpdC4gIFRoaXMgaXMgbmVlZGVkIHRvIG1ha2UgRUxGCglzdGF0aWMgY29uc3RydWN0b3JzIGFuZCBkZXN0cnVjdG9ycyB3b3JrIHJpZ2h0LgoKVHVlIFNlcCAgMyAxMTo1NTowMSAxOTk2ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGN5Z251cy5jb20+CgoJKiBtNjhrL2JjYy5sZDogU2V0IGFkZHJlc3Mgb2YgLnN0YWIgYW5kIC5zdGFic3RyIHRvIDAsIG5vdCBgLicuCgkqIG02OGsvaWRwLmxkLCBtNjhrL212bWUxMzUubGQsIG02OGsvbXZtZTE2Mi5sZDogTGlrZXdpc2UuCgkqIGhwNzR4L2hwcGEuYywgcnM2MDAwL2V2bS5sZCwgc3BhcmMvZXg5MzAubGQ6IExpa2V3aXNlLgoJKiBzcGFyYy9leDkzMS5sZCwgc3BhcmMvZXg5MzQubGQsIHNwYXJjL3NpbS5sZDogTGlrZXdpc2UuCgpGcmkgQXVnIDMwIDE1OjU3OjM3IDE5OTYgIEphbWVzIEcuIFNtaXRoICA8anNtaXRoQGN5Z251cy5jby51az4KCgkqIG1pcHMvTWFrZWZpbGUuaW4gKFNDUklQVFMpOiBBZGQgY2Fpcm8uCgkodnI0MzAwLm86KTogRm9yY2UgYnVpbGQgd2l0aCB0YXJnZXQgQ0ZMQUdTIHRvIGVuc3VyZSBjb3JyZWN0CiAJbXVsdGlsaWIgZW5kaWFubmVzcy4gVGhlIC1UY2Fpcm8ubGQgdGFyZ2V0IHVzZXMgbGlicG1vbi5hIGFzd2VsbAogCWFzIHRoZSAtVHBtb24ubGQgdGFyZ2V0LgoJKiBtaXBzL3tpZHQubGQscG1vbi5sZH06IFJlbW92ZSBleHBsaWNpdCBjcnQwLm8gaW5jbHVkZS4KCSogbWlwcy9jYWlyby5sZDogQWRkZWQuCgkqIG1pcHMvY3J0MC5TOiBSZXN0b3JlIGF0ZXhpdCgpIGNhbGwuIEZpeCBzdGFydHVwIHN0YWNrCiAJaW5pdGlhbGlzYXRpb24uCgkqIG1pcHMvcG1vbi5TOiBGaXggbW9uaXRvciBpbmRpcmVjdGlvbiB0byBiZSA2NGJpdCBjbGVhbi4KCSogbWlwcy92cjQzMDAuczogQWRkZWQgc2ltcGxlIGJ1cyBlcnJvciBoYW5kbGVyIHRvIGNvcGUgd2l0aAogCXNpemluZyBtZW1vcnkgdGhhdCBkb2Vzbid0IGdob3N0LCBidXQgZG9lcyBhYm9ydC4KCSogbWlwcy9jbWExMDEuYzogSW1wcm92ZSB0aGUgbWVtb3J5IHNpemVyLgoJKiBtaXBzL3JlZ3MuUzogQWRkIGRlZmluaXRpb25zIGZvciBTUl9LWCwgU1JfU1ggYW5kIFNSX1VYLgoKVGh1IEF1ZyAyOSAxNzowNzo0NSAxOTk2ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAdGlrdG9rLmN5Z251cy5jb20+CgoJKiBhMjlrL2NvbmZpZ3VyZS5pbiAoaVszNDVdODYtKi0qKTogUmVjb2duaXplIGk2ODYgZm9yIHBlbnRpdW0KCXByby4KCSogdGVzdHN1aXRlL2xpYmdsb3NzLmFsbC9jb25maWd1cmUuaW4gKGlbMzQ1XTg2LSotKik6IERpdHRvLgoJKiBhMjlrL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KClRodSBBdWcgMjIgMTA6MzE6MzggMTk5NiAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQHRpa3Rvay5jeWdudXMuY29tPgoKCSogcnM2MDAwL01ha2VmaWxlLmluIChpbnN0YWxseywtbGludXgsLXNvbGFyaXN9KTogQWRkIGluc3RhbGwgb2YKCUxpbnV4LCBTb2xhcmlzIGxpYnJhcmllcyBpZiBidWlsdC4KCkZyaSBBdWcgMTYgMTA6MTI6NDggMTk5NiAgUm9iIFNhdm95ZSAgPHJvYkBjaGluYWRvbGwuY3lnbnVzLmNvbT4KCgkqIG02OGsvTWFrZWZpbGUuaW46IEFkZCAtbm9zdGRsaWIgdG8gdGhlIHRlc3QgdGFyZ2V0cy4KCSogbTY4ay97aWRwLGJjYyxtdm1lMTM1LG12bWUxNjJ9LmxkOiBNb3ZlIHRoZSBDVE9SUyBhbmQgRFRPUlMgZnJvbQoJLmRhdGEgdG8gLnRleHQgd2hlcmUgdGhleSByZWFsbHkgYmVsb25nLgoJKiBtNjhrL2NydDAuUyhsYXVuY2gpOiBEb24ndCBwdXQgX19kb19nbG9iYWxfZHRvcnMgaW50byBhdGV4aXQsCglHQ0MgaXMgc3VwcG9zZWQgdG8gZG8gdGhpcyBpbiBfX21haW4uCgpNb24gQXVnICA1IDE1OjA0OjM0IDE5OTYgIERvdWcgRXZhbnMgIDxkamVAY2FudWNrLmN5Z251cy5jb20+CgoJKiBzcGFyYy9saWJzeXMvaXNhdHR5LmM6IE5ldyBmaWxlLgoKU3VuIEF1ZyAgNCAyMjozMjoxNCAxOTk2ICBSb2IgU2F2b3llICA8cm9iQGNoaW5hZG9sbC5jeWdudXMuY29tPgoKCSogcGEvTWFrZWZpbGUuaW46IEJ1aWxkIHRoZSB0ZXN0IGNhc2UgYXMgc2VwZXJhdGUgdGFyZ2V0cy4KCSogcGEve3c4OWssb3A1MG59LmxkOiBVc2UgR1JPVVAgcmF0aGVyIHRoYW4gSU5QVVQgdG8gZ2V0IGFsbCB0aGUKCWxpYnJhcmllcy4KCkZyaSBBdWcgIDIgMTg6MjU6MDcgMTk5NiAgSi5ULiBDb25rbGluICA8anRjQHJ0bC5jeWdudXMuY29tPgoKCSogbTY4ay9NYWtlZmlsZS5pbjogSW5zdGFsbCBjb21tb24gY3J0MC5vLCByZW1vdmUgb2xkIHJlZmVyZW5jZXMKIAl0byBwZXItYnNwIGNydDAncy4KClR1ZSBKdWwgMzAgMjE6NDg6MDUgMTk5NiAgUm9iIFNhdm95ZSAgPHJvYkBjaGluYWRvbGwuY3lnbnVzLmNvbT4KCgkqIHNwYXJjL01ha2VmaWxlLmluOiBCdWlsdCBjcnQwLlMsIG5vdCBjcnRvLnMuCgkqIHNwYXJjL2NydDAuUzogRG9uJ3QgdXNlIFJFR1MgbWFjcm8sIHVzZSAlIGFsd2F5cy4KCSogc3BhcmMvc2FsaWIuYzogQWRkIGEgcHJvdG90eXBlIGZvciBwdXREZWJ1Z0NoYXIuCgpUdWUgSnVsIDIzIDE1OjEyOjQyIDE5OTYgIERvdWcgRXZhbnMgIDxkamVAY2FudWNrLmN5Z251cy5jb20+CgoJKiBzcGFyYy97c3lzYy03MDEuYyxjcnQwLTcwMS5TfTogTmV3IGZpbGVzLgoJKiBzcGFyYy9NYWtlZmlsZS5pbiAoYWxsKTogQnVpbGQgdGhlbS4KCSgkKDcwMV9CU1ApLGNydDAtNzAxLm8pOiBOZXcgdGFyZ2V0cy4KCSgkKENSVDApLCQoU0lNX0NSVDApLGR0b3Iubyk6IERvbid0IHVzZSAkPCwgZm9yIHN1bm9zIG1ha2UuCgkoYWxsKTogRGVwZW5kIG9uICQoJChDUFUpX0FMTCkuCgkoaW5zdGFsbCk6IFVzZSAkKElOU1RBTExfREFUQSksIG5vdCAkKElOU1RBTExfUFJPR1JBTSkuCglEZXBlbmQgb24gJCgkKENQVSlfSU5TVEFMTCkuCgkqIHNwYXJjL2NvbmZpZ3VyZS5pbiAobGliZ2xvc3NfdG9wZGlyKTogRGVsZXRlIHVubmVjZXNzYXJ5ICQoc3JjZGlyKS4KCShBQ19DT05GSUdfQVVYX0RJUik6IENhbGwuCgkoQ1BVKTogRGVmaW5lLgoJKiBzcGFyYy9jb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKTW9uIEp1bCAyMiAxNDozMjozOSAxOTk2ICBEb3VnIEV2YW5zICA8ZGplQGNhbnVjay5jeWdudXMuY29tPgoKCSogY29uZmlnL3tkZWZhdWx0Lm10LG1pcHMubXR9OiBEb24ndCB1c2UgJDwsIGZvciBzdW5vcyBtYWtlLgoKTW9uIEp1bCAyMiAxNTo1NDowMiAxOTk2ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGN5Z251cy5jb20+CgoJKiBtNjhrL2NydDAuUyAoemVyb2Jzcyk6IERvbid0IHVzZSBkYnJhIGlmIF9fbWNmNTIwMF9fLgoKU3VuIEp1bCAxNCAxNjo0NzoxNCAxOTk2ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAdGlrdG9rLmN5Z251cy5jb20+CgoJKiBsc2Vlay5jIChsc2Vlayk6IERvbid0IHVzZSBTRVRfRVJSTk8uCgkqIG9wZW4uYyAob3Blbik6IERpdHRvLgoKV2VkIEp1bCAgMyAxODoxOToxMCAxOTk2ICBTdHUgR3Jvc3NtYW4gIChncm9zc21hbkBjcml0dGVycy5jeWdudXMuY29tKQoKCSogc3BhcmMvTWFrZWZpbGUuaW46ICBJbnN0YWxsIGV4OTMwLzkzMS85MzQubGQgZmlsZXMuCgkqIHNwYXJjL2NvbmZpZ3VyZSwgc3BhcmMvY29uZmlndXJlLmluOiAgVXNlIEFDX0NBTk9OSUNBTF9TWVNURU0gdG8KCWRlZmluZSB0YXJnZXRfYWxpYXMgdG8gbWFrZSBpbnN0YWxsIHdvcmsgZnJvbSB0aGlzIGRpcmVjdG9yeS4KCldlZCBKdWwgIDMgMTg6MDQ6NDkgMTk5NiAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUuaW46IE1ha2Ugc3VyZSB3ZSBhbHdheXMgaGF2ZSBhbiBhcmd1bWVudCB0byBmb3IuICBNYWtlCglzdXJlIHJvb3RwcmUgYW5kIHNyY3Jvb3RwcmUgYXJlIGFsd2F5cyBzZXQgYmVmb3JlIHVzaW5nCglGTEFHU19UT19QQVNTLgoKVHVlIEp1bCAgMiAxODowNDozMSAxOTk2ICBKLlQuIENvbmtsaW4gIDxqdGNAaGlwcG8uY3lnbnVzLmNvbT4KCgkqIGdsdWUuaCAoU0VUX0VSUk5PKTogUmVtb3ZlZC4KCSogc2Jyay5jLCBzdGF0LmMsIHVubGluay5jOiBEb24ndCB1c2UgU0VUX0VSUk5PLgoKTW9uIEp1bCAgMSAxNDoyNDo1MSAxOTk2ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAdGlrdG9rLmN5Z251cy5jb20+CgoJKiByczYwMDAvTWFrZWZpbGUuaW46IEFkZCAkKHNyY2RpcikvLi4gZGVwZW5kZW5jaWVzIGZvciBhbGwgZmlsZXMKCWluIHRoZSB0b3BsZXZlbC4KClNhdCBKdW4gMjkgMjM6MjY6MzkgMTk5NiAgSmFtZXMgRy4gU21pdGggIDxqc21pdGhAY3lnbnVzLmNvLnVrPgoKCSogbWlwcy9jbWExMDEuYyAoRE9TWU5DKTogRXhwbGljaXRseSBzZWxlY3QgLW1pcHMyIGZvciB0aGUKIAlhc3NlbWJseSBvZiB0aGUgInN5bmMiIGluc3RydWN0aW9uLgoJKiBtaXBzL01ha2VmaWxlLmluOiBSZW1vdmVkIHNwZWNpYWwgY21hMTAxLm8gYnVpbGQuIFNlcGVyYXRlCiAJaW5zdGFsbC5zaCBpbnZvY2F0aW9ucyBmb3IgdGhlIEJTUCBsaWJyYXJpZXMuCgpTYXQgSnVuIDI5IDA4OjE3OjUyIDE5OTYgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckB0aWt0b2suY3lnbnVzLmNvbT4KCgkqIGRvYy9wb3J0aW5nLnRleGkgKEdOVSByZW1vdGUgcHJvdG9jb2wpOiBGaXggYmFkIHRleGluZm8uCgpGcmkgSnVuIDI4IDIzOjE2OjM3IDE5OTYgIFJvYiBTYXZveWUgIDxyb2JAY2hpbmFkb2xsPgoKCSogc3BhcmMvdHJhcHMuUzogRG9uJ3QgdXNlIFJFR1MgbWFjcm8sIHVzZSAlIGFsd2F5cy4KCSogc3BhcmMvTWFrZWZpbGUuaW46IEFkZCAtbm9zdGRsaWIgd2hlbiBidWlsZGluZyB0aGUgdGVzdCBjYXNlcywKCWFzIGdjYyBrZWVwcyB0aGlua3MgaXQgd2FudHMgdHdvIGNydDAuby4KCSogc3BhcmMvYXNtLmg6IERvbid0IGRlZmluZSB0aGUgUkVHUyBtYWNybywgd2UnbGwgdXNlIGV4cGxpY2l0CglyZWdpc3RlciBwcmVmaXhlcy4gQWx3YXlzIGRlZmluZSBVU0VSX0xBQkVMX1BSRUZJWCBjYXVzZSBnY2MgaXMKCWJyb2tlbiwgYW5kIEkgZG91YnQgaXQnbGwgZ2V0IGZpeGVkLgoKU2F0IEp1biAyOSAwNTowNToxNSAxOTk2ICBKYW1lcyBHLiBTbWl0aCAgPGpzbWl0aEBjeWdudXMuY28udWs+CgoJKiBtaXBzL2NydDAuUyAoemVyb2Jzcyk6IEZpeCB0aGUgc3RhY2stcG9pbnRlciBjYWxjdWxhdGlvbi4KClRodSBKdW4gMjcgMTc6MjM6MzMgMTk5NiAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBjeWdudXMuY29tPgoKCSogbWlwcy9NYWtlZmlsZS5pbiAodnI0MzAwLm8pOiBQYXNzIC1taXBzMyBhZnRlciAkKEFTRkxBR1MpLgoJKGNtYTEwMS5vKTogUGFzcyAtbWlwczIgYWZ0ZXIgJChDRkxBR1MpLgoKVHVlIEp1biAyNSAyMjo0ODoxNSAxOTk2ICBKYXNvbiBNb2xlbmRhICAoY3Jhc2hAZ29kemlsbGEuY3lnbnVzLmNvLmpwKQoKCSogTWFrZWZpbGUuaW4gKGJpbmRpciwgbGliZGlyKTogVXNlIGF1dG9jb25mLXNldCB2YWx1ZXMuCgkqIGNvbmZpZ3VyZTogUmVidWlsdC4KCgkqIGRvYy9NYWtlZmlsZS5pbiAobWFuZGlyLCBpbmZvZGlyKTogVXNlIGF1dG9jb25mLXNldCB2YWx1ZXMuCgkqIGRvYy9jb25maWd1cmUuaW4gKEFDX1BSRVJFUSk6IGF1dG9jb25mIDIuNSBvciBoaWdoZXIuCgkqIGRvYy9jb25maWd1cmU6IFJlYnVpbHQuCgoJKiB7YTI5ayxocDc0eCxpOTYwLG02OGssbWlwcyxwYSxyczYwMDAsc3BhcmMsc3BhcmMvbGlic3lzfS9NYWtlZmlsZS5pbgoJKGJpbmRpciwgbGliZGlyKTogVXNlIGF1dG9jb25mLXNldCB2YWx1ZXMuCgkqIHthMjlrLGhwNzR4LGk5NjAsbTY4ayxtaXBzLHBhLHJzNjAwMCxzcGFyYyxzcGFyYy9saWJzeXN9L2NvbmZpZ3VyZS5pbgoJKEFDX1BSRVJFUSk6IGF1dG9jb25mIDIuNSBvciBoaWdoZXIuCgkqIHthMjlrLGhwNzR4LGk5NjAsbTY4ayxtaXBzLHBhLHJzNjAwMCxzcGFyYyxzcGFyYy9saWJzeXN9L2NvbmZpZ3VyZToKCVJlYnVpbHQuCgpNb24gSnVuIDI0IDIyOjAxOjExIDE5OTYgIFJvYiBTYXZveWUgIDxyb2JAY2hpbmFkb2xsLmN5Z251cy5jb20+CgoJKiBzcGFyYy9jcnQwLlM6IFNldCB0aGUgc3RhY2sgdG8gdGhlIHVwcGVyIHBhcnQgb2YgbWVtb3J5LiBFeGVjdXRlCgloYXJkd2FyZV9pbml0X2hvb2sgYW5kIHNvZnR3YXJlX2luaXRfaG9vayBpZiB0aGV5IGV4aXN0IHdpdGggYQoJbGVnaXQgYWRkcmVzcy4gRHJvcCBpbnRvIGV4aXQgYWZ0ZXIgbWFpbi4gWmVybyB0aGUgYnNzIHNlY3Rpb24uCgkqIHNwYXJjL2V4OTMwLmxkOiAgUFJPVklERSBoYXJkd2FyZV9pbml0X2hvb2sgYW5kCglzb2Z0d2FyZV9pbml0X2hvb2suCgpNb24gSnVuIDI0IDE5OjQ0OjQ1IDE5OTYgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AY3lnbnVzLmNvbT4KCgkqIG1pcHMvTWFrZWZpbGUuaW4gKGNtYTEwMS5vKTogVXNlIC1taXBzMiBvcHRpb24gd2hlbiBjb21waWxpbmcuCgpXZWQgSnVuIDE5IDEzOjU3OjM2IDE5OTYgIFJvYiBTYXZveWUgIDxyb2JAZGFya3N0YXIuY3lnbnVzLmNvbT4KCgkqIGRlYnVnLltjaF06IE5ldyBmaWxlcyBmb3IgR0RCIHN0dWIgc3VwcG9ydC4KCSogY29uZmlnL2RlZmF1bHQubXQ6IEFkZCBydWxlcyBmb3IgZGVidWcuby4KCSogY29uZmlnL2RlZmF1bHQubWg6IEFkZCBydWxlIGZvciBidWlsZGluZyBDKysgc291cmNlLiBBZGQgJHNyY2RpcgoJdG8gSU5DTFVERVMgc28gc2hhcmVkIGhlYWRlciBmaWxlcyBjYW4gYmUgZm91bmQuCgoJKiBzcGFyYy9zYWxpYi5jKGV4Y2VwdGlvbkhhbmRsZXIpOiBSYW5nZSBjaGVjayB0aGUgdmVjdG9yIG51bWJlcgoJc28gd2UgZ2V0IGEgbGVnaXQgJXRiciB2YWx1ZS4gQWRkIHdyYXBwZXJzIHNvIGluYnl0ZSBhbmQgb3V0Ynl0ZQoJd29yay4KCSogc3BhcmMvY3J0MC5zOiBIYW5kbGUgY3B1cyB0aGF0IGRvbid0IGhhdmUgRlAgc3VwcG9ydC4KCSogc3BhcmMvTWFrZWZpbGUuaW46IEFkZCBtdWx0aWxpYiBzdXBwb3J0LiBBZGQgdmFyaWFibGUgZm9yCglvYmpjb3B5IGFuZCBvYmpkdW1wLiBCdWlsZCB0aGUgQlNQcyBhcyBhcmNoaXZlIGxpYnJhcmllcywgbm90CglvYmplY3QgZmlsZXMuIEFkZCBzdXBwb3J0IGZvciB0aGUgU0lTIHNwYXJjIHNpbXVsYXRvci4gQnVpbGQgdGhlCgl0ZXN0IGNhc2Ugc3JlY29yZHMgYW5kIGRpc3Nhc2VtYmx5IGFzIHNlcGVyYXRlIG1ha2VmaWxlCgl0YXJnZXRzLiBBbHNvIG9wdGlvbmFsbHkgYnVpbGQgdGhlIEMrKyB0ZXN0IGNhc2UuIFVzZSBhIHRhcmdldAoJbWFrZWZpbGUgZnJhZ21lbnQuCgkqIHNwYXJjL2NvbmZpZ3VyZS5pbjogQWRkIG11bHRpbGliIHN1cHBvcnQuCgkqIHNwYXJjL2NvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgkqIHNwYXJjL2FzbS5oOiBNYWNyb3MgdG8gZGVhbCB3aXRoIGFvdXQgYW5kIGNvZmYgZm9ybWF0cyBwb3J0YWJseS4KCSogc3BhcmMvc2xpdGUuaDogU3BhcmNsaXRlIHNwZWNpZmljIHN0dWZmLgoJKiBzcGFyYy97c2ltLWNydDAuUyxzaW0tc3R1Yi5jLHNpbS1pby5jLHNpbS5sZH06IE5ldyBzdXBwb3J0IGZvcgoJdGhlIFNJUyBzcGFyYyBzaW11bGF0b3IuCgkqIHNwYXJjL3RyYXBzLlM6IEdlbmVyaWMgdHJhcCBoYW5kbGVycyBmb3IgU0lTIGFuZCBleDkzeCB0YXJnZXRzLgoJKiBzcGFyYy90ZXN0cy5jOiBUZXN0IGNhc2UgZm9yIGxpbmtpbmcgYW5kIEdEQiBwcm90b2NvbC4KClR1ZSBKdW4gMTggMjA6MDY6MTYgMTk5NiAgUm9iIFNhdm95ZSAgPHJvYkBjaGluYWRvbGwuY3lnbnVzLmNvbT4KCgkqIHBhL01ha2VmaWxlLmluOiBCdWlsZCB0aGUgdGVzdCBjYXNlIHNyZWNvcmRzIGFuZCBkaXNzYXNlbWJseQoJYXMgc2VwZXJhdGUgbWFrZWZpbGUgdGFyZ2V0cy4gQWxzbyBvcHRpb25hbGx5IGJ1aWxkIHRoZSBDKysgdGVzdAoJY2FzZS4KCSogcGEvY3J0MC5TOiBJZiBfX3N0YWNrIGFuZCBfX2dsb2JhbHMgaGF2ZSBhIGxlZ2l0IGFkZHJlc3MsIHVzZQoJdGhhdCBmb3IgJXNwIGFuZCAlZ3AuIEV4ZWN1dGUgaGFyZHdhcmVfaW5pdF9ob29rIGFuZAoJc29mdHdhcmVfaW5pdF9ob29rIGlmIHRoZXkgZXhpc3Qgd2l0aCBhIGxlZ2l0IGFkZHJlc3MuIEFkZAoJX19kb19nbG9iYWxfZHRvcnMoKSB0byB0aGUgYXRleGl0IGFycmF5LgoJKiBwYS97dzg5ayxvcDUwbn0ubGQ6IFVzZSBHUk9VUCByYXRoZXIgdGhhbiBJTlBVVCB0byBnZXQgdGhlCglsaWJyYXJpZXMuIEFsbG9jYXRlIHRoZSBzdGFjayBhbmQgZ2xvYmFsIHNwYWNlcyBmcm9tIHRoZSB0b3Agb2YKCW1lbW9yeS4gUFJPVklERSBoYXJkd2FyZV9pbml0X2hvb2sgYW5kIHNvZnR3YXJlX2luaXRfaG9vay4KCgkqIG02OGsvTWFrZWZpbGUuaW46IEJ1aWxkIHRoZSB0ZXN0IGNhc2Ugc3JlY29yZHMgYW5kIGRpc3Nhc2VtYmx5CglhcyBzZXBlcmF0ZSBtYWtlZmlsZSB0YXJnZXRzLiBBbHNvIG9wdGlvbmFsbHkgYnVpbGQgdGhlIEMrKyB0ZXN0CgljYXNlLgoJKiBtNjhrL2FzbS5oOiBEb24ndCBkZWZpbmUgX19VU0VSX0xBQkVMX1BSRUZJWF9fIGFuZAoJX19SRUdJU1RFUl9QUkVGSVhfXyBvdXJzZWx2ZXMgc2luY2Ugc3VwcmlzaW5nbHkgZ2NjIHNldHMgdGhlbQoJY29ycmVjdGx5IGZvciBhIGNoYW5nZS4KCSogbTY4ay97YmNjLG12bWUxMzUsbXZtZTE2MixpZHB9LmxkOiBVc2UgdGhlIHNhbWUgY3J0MCByYXRoZXIgdGhhbgoJYnVpbGRpbmcgc2VwZXJhdGUgb25lcy4gUFJPVklERSBoYXJkd2FyZV9pbml0X2hvb2sgYW5kCglzb2Z0d2FyZV9pbml0X2hvb2suIFN0aWNrIHRoZSBDb25zdHJ1Y3RvcnMgYW5kIERlc3RydWN0b3JzIGluCgkuZGF0YSBjYXVzZSB0aGV5IGRvbid0IHdvcmsgaW4gLnRleHQgKHdoaWNoIGlzIHdoZXJlIHRoZXkgc2hvdWxkCglyZWFsbHkgYmUpLgoJKiBtNjhrL2NwdTMyYnVnOiBBZGQgYSBmZXcgbW9yZSB0cmFwcyB0byBzdXBwb3J0IHRoZSBvbGRlciBBQnVnCgltb25pdG9yLgoJKiBtNjhrL2NydDAuUzogSWYgX19zdGFjayBpcyBpc24ndCBzZXQsIHNldCB0aGUgc3RhY2sgdG8gdGhlIHRvcAoJb2YgbWVtb3J5LiBFeGNlY3V0ZSBoYXJkd2FyZV9pbml0X2hvb2sgYW5kIHNvZnR3YXJlX2luaXRfaG9vayBpZgoJdGhleSBleGlzdCB3aXRoIGEgbGVnaXQgYWRkcmVzcy4gQWRkIF9fZG9fZ2xvYmFsX2R0b3JzKCkgdG8gdGhlCglhdGV4aXQgYXJyYXkuCgoJKiByczYwMDAvTWFrZWZpbGUuaW46IFVzZSB0aGUgbGlua2VyIHNjcmlwdCB0byBidWlsZCB0aGUgdGVzdAoJY2FzZS4gQWxzbyBidWlsZCBhIEMrKyB0ZXN0IGNhc2UuCgkqIHJzNjAwMC9kdG9yLkM6IFRlc3QgY29udHJ1Y3RvcnMgYW5kIGRlc3RydWN0b3JzLgoJKiByczYwMDAve3NpbSxtdm1lfS5sZDogTmV3IGxpbmtlcnMgc2NyaXB0cyBmb3IgdGhlIHNpbXVsYXRvciBhbmQKCXRoZSBtdm1lIGJvYXJkLgoJKiByczYwMDAvZXZtLmxkOiBQcm92aWRlIGhhcmR3YXJlX2luaXRfaG9vayBhbmQgc29mdHdhcmVfaW5pdF9ob29rCglzbyB3ZSBjYW4gdGVzdCBmb3IgdGhlbSBpbiB0aGUgY3J0MC5TLgoJKiByczYwMDAvY3J0by5TOiBFeGNlY3V0ZSBoYXJkd2FyZV9pbml0X2hvb2sgYW5kCglzb2Z0d2FyZV9pbml0X2hvb2sgaWYgdGhleSBleGlzdCB3aXRoIGEgbGVnaXQgYWRkcmVzcy4KCk1vbiBKdW4gMTcgMTg6Mzk6MTcgMTk5NiAgUm9iIFNhdm95ZSAgPHJvYkBjaGluYWRvbGwuY3lnbnVzLmNvbT4KCgkqIG1pcHMvTWFrZWZpbGUuaW46IFJlcGxhY2UgdGhlICJ0ZXN0IiB0YXJnZXQgd2l0aCBzZXBlcmF0ZQoJdGFyZ2V0cyBmb3IgdGhlIGRpc3Nhc2VtYmxlZCBmaWxlLCBhbmQgdGhlIHNyZWNvcmQuCgkqIG1pcHMvY29uZmlndXJlLmluOiBVc2UgYSB0YXJnZXQgbWFrZWZpbGUgZnJhZ21lbnQuCgkqIG1pcHMvY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBtaXBzL2lkdC5sZDogQWRkIGEgY29tbWVudCBvbiBwcm9kdWNpbmcgc3JlY29yZHMuIFNldHVwIGEgc3BhY2UKCWZvciB0aGUgc3RhY2suIFBST1ZJREUgaGFyZHdhcmVfaW5pdF9ob29rIGFuZCBzb2Z0d2FyZV9pbml0X2hvb2suCgkqIG1pcHMvY3J0MC5TOiBNYWtlIGEgc21hbGwgc3RhY2suIFJ1biBtZW1zaXplKCkgdXNpbmcgdGhlIHRlbXAKCXN0YWNrLCBhbmQgdGhlbiBzZXQgdGhlIHN0YWNrIHRvIHRoZSB0b3Agb2YgbWVtb3J5LiBBbHNvIGdyYWIgc29tZQoJc3BhY2UgZm9yIHRoZSBnbG9iYWxzLiBBZGQgX19kb19nbG9iYWxfZHRvcnMoKSB0byB0aGUgYXRleGl0CglhcnJheS4gQ2FsbCBfZXhpdCBmcm9tIG5ld2xpYiBzbyB0aGUgYXRleGl0IGFycmF5IGdldHMgcnVuLCB0aGVuCglleGl0cy4KClRodSBKdW4gMTMgMTU6NDQ6NDYgMTk5NiAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBjeWdudXMuY29tPgoKCSogbWlwcy9NYWtlZmlsZS5pbiAodnI0MzAwLm8pOiBVc2UgLW1pcHMzIG9wdGlvbiB3aGVuIGFzc2VtYmxpbmcuCgpTYXQgSnVuICAxIDE2OjI3OjUzIDE5OTYgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckB3b2dnbGVidWcudGlhYy5uZXQ+CgoJKiByczYwMDAvc2ltdWxhdG9yLlMgKG9wZW4sIGNsb3NlLCBsc2Vlayk6IEFkZCBzeXN0ZW0gY2FsbHMuCgkqIHJzNjAwMC9NYWtlZmlsZS5pbiAoT0JKUyk6IERvbid0IHB1dCBvcGVuLm8sIGNsb3NlLm8sIGxzZWVrLm8KCWhlcmUuCgkoU0lNX09CSlMpOiBQdXQgdGhlbSBoZXJlIGluc3RlYWQuCgpUdWUgQXByIDMwIDIwOjAxOjA4IDE5OTYgIFJvYiBTYXZveWUgIDxyb2JAY2hpbmFkb2xsLmN5Z251cy5jb20+CgoJKiBtNjhrL2NydDAuUzogRG9uJ3QgYWxsb2NhdGUgX19zdGFjayBpbiB0aGUgLmJzcyBzZWN0aW9uLgoJKiBtNjhrL3tpZHAsbXZtZTEzNSxtdm1lMTYyLGJjY30ubGQ6IFNldCBfX3N0YWNrIHRvIGEgd29yZCBiZWxvdwoJdGhlIHRvcCBvZiBtZW1vcnkuIFVzZSAiLWwiIGluIEdST1VQIHJhdGhlciB0aGFuIHRoZSBmdWxsIG5hbWUgc28KCWl0J2xsIGdldCBmb3VuZCB1c2luZyB0aGUgcGF0aCBsb29rdXAgaW4gTEQuIEFsc28gbGluayBpbiBsaWJnY2MKCXRvby4gRG9uJ3Qgc2V0IF9fbHN0YWNrIGFueW1vcmUuCgkqIG02OGsvTWFrZWZpbGUuaW46IEJ1aWxkIHRlc3QgYXMgYSBzZXJpZXMgb2YgTWFrZWZpbGUgdGFyZ2V0cywKCXJhdGhlciB0aGFuIGFzIGEgYmlnIGxvb3AuCgpUaHUgQXByIDI1IDA4OjM4OjE1IDE5OTYgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckB0aWt0b2suY3lnbnVzLmNvbT4KCgkqIHJzNjAwMC9tdm1lLXN0YWNrLlM6IE5ldyBmaWxlLCBkZWZpbmUgX19zdGFjay4KCSogcnM2MDAwL212bWUtY3J0MC5TIChfc3RhcnQpOiBJZiBfX3N0YWNrIGlzIG5vdCAwLCB1c2UgdGhhdCBmb3IKCXRoZSBzdGFjayBhZGRyZXNzLgoKVGh1IEFwciAyNSAwNjo0MjowMiAxOTk2ICBSb2IgU2F2b3llIDxyb2JAY2hpbmFkb2xsLmN5Z251cy5jb20+CgoJKiByczYwMDAvTWFrZWZpbGUuaW46IEFkZCBzdXBwb3J0IGZvciBtdWx0aWxpYi4KCSogcnM2MDAwL2NvbmZpZ3VyZS5pbjogRGl0dG8uCgkqIHJzNjAwMC9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgpXZWQgQXByIDI0IDExOjAyOjMzIDE5OTYgIERvdWcgRXZhbnMgIDxkamVAYmx1ZXMuY3lnbnVzLmNvbT4KCgkqIHNwYXJjL2xpYnN5cy9NYWtlZmlsZS5pbiAoaXNhdHR5Lm8pOiBBZGQgcnVsZSBmb3IgU3VuT1MgVlBBVEguCgpGcmkgQXByIDE5IDEzOjIzOjMxIDE5OTYgIFJvYiBTYXZveWUgIDxyb2JAY2hpbmFkb2xsLmN5Z251cy5jb20+CgoJKiB7bWlwcyxhMjlrLHBhfS9jb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBtdWx0aWxpYnMKCWJ5IHVzaW5nIGNvbmZpZy1tbC5pbi4KCSoge21pcHMsYTI5ayxwYX0vY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiB7bWlwcyxhMjlrLHBhfS9NYWtlZmlsZS5pbjogQnVpbGQgYXJjaGl2ZSBsaWJyYXJpZXMsCglub3Qgb2JqZWN0cyBmb3IgdGhlIEJTUHMuCgpGcmkgQXByIDE5IDEyOjMzOjI1IDE5OTYgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckB0aWt0b2suY3lnbnVzLmNvbT4KCgkqIHJzNjAwMC9zb2wtY3J0MC5jOiBEZWxldGUsIGZpbGUgbW92ZWQgaW50byBnY2MgZGlyZWN0b3J5LgoKTW9uIEFwciAxNSAxNDowOToyNiAxOTk2ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAdGlrdG9rLmN5Z251cy5jb20+CgoJKiByczYwMDAvc2ltdWxhdG9yLlM6IENhbGwgX2NlcnJvciB0byBzYXZlIGVycm5vIGlmIGFuIGVycm9yCglvY2N1cnJlZC4KCSogcnM2MDAwL3NpbS1lcnJuby5jIChfY2Vycm5vKTogTmV3IGZ1bmN0aW9uIHRvIHNldCBlcnJuby4KClRodSBBcHIgMTEgMTQ6MTk6MDEgMTk5NiAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQHRpa3Rvay5jeWdudXMuY29tPgoKCSogcnM2MDAwL3NvbC17Y3J0MC5jLHN5c2NhbGwuUyxjZnVuY3MuY306IE5ldyBmaWxlcyB0byBzdXBwb3J0CglsaWJnbG9zcyBvbiBQb3dlclBDIFNvbGFyaXMuCgoJKiByczYwMDAvTWFrZWZpbGUuaW46IEFkZCBTb2xhcmlzIHN1cHBvcnQuCgpUdWUgQXByIDE2IDE3OjQzOjA2IDE5OTYgIFJvYiBTYXZveWUgIDxyb2JAY2hpbmFkb2xsLmN5Z251cy5jb20+CgoJKiBNYWtlZmlsZS5pbjogRG9uJ3QgZG8gYW55dGhpbmcgaWYgU1VCRElSUyBpcyBlbXB0eS4KCk1vbiBBcHIgMTUgMTU6Mzc6NTIgMTk5NiAgUm9iIFNhdm95ZSAgPHJvYkBjaGluYWRvbGwuY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiwgbTY4ay9jb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBtdWx0aWxpYnMgYnkKCXVzaW5nIGNvbmZpZy1tbC5pbi4KCSogbTY4ay9jcnQwLlM6IElmIGEgdmFsdWUgZm9yIF9fc3RhY2sgaGFzbid0IGJlZW4gc3BlY2lmaWVkLAoJaW5pdGlhbGl6ZSAlc3AgdG8gc29tZSBtZW1vcnkgaW4gLmJzcy4KCSogbTY4ay9NYWtlZmlsZS5pbjogQnVpbGQgYXJjaGl2ZSBsaWJyYXJpZXMsIG5vdCBvYmplY3RzIGZvciB0aGUKCUJTUHMuIEJ1aWxkIG11bHRpcGxlIGNvcGllcyBvZiB0aGUgY3J0MC5vLCBvbmUgZm9yIGVhY2ggdGFyZ2V0LiBBZGQKCXN1cHBvcnQgdG8gYnVpbGQgbXVsdGlsaWJzLgoJKiBpZHAubGQsIGJjYy5sZCwgbXZtZTEzNS5sZCwgbXZtZTE2Mi5sZDogVXNlIEdST1VQIHRvIGxvb2sgZm9yCglsaWJjLmEgYW5kIHRoZSBCU1AgcmF0aGVyIHRoYW4gSU5QVVQgYW4gb2JqZWN0LiBHZXQgdGhlIHJpZ2h0CgljcnQwLm8uCgpUdWUgQXByICA5IDIzOjMxOjUzIDE5OTYgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AY3lnbnVzLmNvbT4KCgkqIG02OGsvY3B1MzJidWcuUyAoZ2V0RGVidWdDaGFyKTogVXNlIGV4dHcvZXh0bCByYXRoZXIgdGhhbgoJZXh0YmwsIHNvIGl0IGNhbiBiZSB1c2VkIG9uIGEgNjgwMDAuCgpXZWQgTWFyIDI3IDE3OjE4OjAxIDE5OTYgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckB0aWt0b2suY3lnbnVzLmNvbT4KCgkqIHJzNjAwMC97bXZtZS1leGl0LHNpbXVsYXRvcn0uUyAoX2V4aXQpOiBMb29wIG9uIGEgdHJhcAoJaW5zdHJ1Y3Rpb24gZm9sbG93aW5nIHRoZSBfZXhpdCBzeXN0ZW0gY2FsbC4gIFRoaXMgYWxzbyBtYWtlcyBzdXJlCgl0aGF0IHRoZSBkZWJ1Z2dlciByZXBvcnRzIHRoZSBhZGRyZXNzIGFzIGJlaW5nIGluIF9leGl0LCByYXRoZXIKCXRoYW4gd2hhdGV2ZXIgZnVuY3Rpb24gZm9sbG93cyBfZXhpdC4KCkZyaSBNYXIgMTUgMTI6MzA6MDIgMTk5NiAgSi5ULiBDb25rbGluICA8anRjQHJ0bC5jeWdudXMuY29tPgoKCSogaTk2MC97TWFrZWZpbGUuaW4sYXNtLmgsY29uZmlndXJlLGNvbmZpZ3VyZS5pbixtb24tcmVhZC5jLAoJbW9uLXN5c2NhbGxzLlMsbW9uLXdyaXRlLmN9OiBJbml0aWFsIHN1cHBvcnQgZm9yIE1PTjk2MC4KCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgaTk2MC4KCSogY29uZmlndXJlOiBSZWJ1aWxkIHdpdGggYXV0b2NvbmYgMi44LgoKRnJpIE1hciAgOCAxODoxMjo1MiAxOTk2ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGN5Z251cy5jb20+CgoJKiBhMjlrL2NvbmZpZ3VyZS5pbjogQ2FsbCBBQ19DT05GSUdfQVVYX0RJUi4KCSogYTI5ay9jb25maWd1cmU6IFJlYnVpbGQgd2l0aCBhdXRvY29uZiAyLjcuCgkqIG02OGsvY29uZmlndXJlLmluOiBDYWxsIEFDX0NPTkZJR19BVVhfRElSIGJlZm9yZQoJQUNfQ0FOT05JQ0FMX1NZU1RFTS4KCSogbWlwcy9jb25maWd1cmUuaW4sIHBhL2NvbmZpZ3VyZS5pbjogTGlrZXdpc2UuCgkqIHJzNjAwMC9jb25maWd1cmUuaW46IExpa2V3aXNlLgoJKiBtNjhrL2NvbmZpZ3VyZSwgbWlwcy9jb25maWd1cmUsIHBhL2NvbmZpZ3VyZTogUmVidWlsZC4KCSogcnM2MDAwL2NvbmZpZ3VyZTogUmVidWlsZC4KCkZyaSBNYXIgIDggMDg6MTE6MTQgMTk5NiAgRG91ZyBFdmFucyAgPGRqZUBjaGFybWVkLmN5Z251cy5jb20+CgoJKiBzcGFyYy9saWJzeXMvc2Jyay5TIChjdXJicmspOiBNb3ZlZCBmcm9tIGhlcmUsCgkqIHNwYXJjL2xpYnN5cy9jZXJyb3IuUyAoY3VyYnJrKTogVG8gaGVyZS4KClRodSBNYXIgIDcgMTE6Mzk6MDkgMTk5NiAgSmFtZXMgRy4gU21pdGggIDxqc21pdGhAY3lnbnVzLmNvLnVrPgoKCSogbWlwcy9jcnQwLlMgKGJzc2xvb3ApOiBVcGRhdGVkIGNvbW1lbnQgdG8gcmVmbGVjdCB0aGUgc291cmNlLgoKV2VkIE1hciAgNiAxODoxMjoyNSAxOTk2ICBEb3VnIEV2YW5zICA8ZGplQGNoYXJtZWQuY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoc3BhcmNsZXQtKi1hb3V0Kik6IEFkZCBlbnRyeS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCSogc3BhcmMvbGlic3lzL3tNYWtlZmlsZS5pbixjb25maWd1cmUuaW4sY29uZmlndXJlLGlzYXR0eS5jLAoJbGlic3lzLWNydDAuUyxzYnJrLlMsc3lzY2FsbC5oLHN5c2NhbGxhc20uaCx0ZW1wbGF0ZS5TLHRlbXBsYXRlX3IuU306CglOZXcgZmlsZXMuCgpGcmkgRmViIDIzIDIyOjIxOjA3IDE5OTYgIFJvYiBTYXZveWUgIDxyb2JAY2hpbmFkb2xsLmN5Z251cy5jb20+CgoJKiBhMjlrOiBOZXcgZGlyIGZvciBhMjlrLWNvZmYgc3VwcG9ydCBmb3IgdGhlIEFNU0FUIFBoYXNlLTNECglzYXRlbGxpdGUuIChkb2Vzbid0IHVzZSB1ZGkpCgkqIGEyOWsvezI5MjAwLWlvLmMsTWFrZWZpbGUuaW4sY29uZmlndXJlLGNvbmZpZ3VyZS5pbixSRUFETUUsY3J0MC5zLAoJcDNkZ3BzLmxkLHNhMjkyMDAubGQsc2EyOTIwMGIubGQsdGVzdC5jOiBOZXcgZmlsZXMgZm9yIGEyOWsKCXN1cHBvcnQuCgkqIGEyOWsvc3lzL3tjcHVkZWYuaCxpbnRyaW5zaS5oLG1hY3Jvcy5oLHJvbWRjbC5oLHN5c21hYy5oLAoJZnBzeW1ib2wuaCxsaWJjb25maWcuaCxwcm9yZWcuaCxzbWFydG1hYy5ofTogTmV3IGZpbGVzIGZvciBhMjlrCglzdXBwb3J0LgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciBhMjlrLgoJKiBjb25maWd1cmU6IFJlYnVpbGQuCgpUaHUgRmViIDIyIDEzOjMyOjI4IDE5OTYgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckB0aWt0b2suY3lnbnVzLmNvbT4KCgkqIHJzNjAwMC9tdm1lLXJlYWQuYyAocmVhZCk6IE5ldyBmaWxlLCBpZiBsYXJnZSByZWFkLCBkbyBhIC5JTkxOCglzeXN0ZW0gY2FsbCwgaW5zdGVhZCBvZiBzdWNlc3NpdmUgLklOQ0hSIHN5c3RlbSBjYWxscy4gIE1hcCBcciBvbgoJaW5wdXQgdG8gXG4uCgoJKiByczYwMDAvbXZtZS1pbmJ5dGUuUzogQWRkIHN0dWIgZm9yIG5ldyBpbnB1dCBzeXN0ZW0gY2FsbHMuCgoJKiByczYwMDAvTWFrZWZpbGUuaW4gKE1WTUVfT0JKUyk6IEFkZCBtdm1lLXJlYWQubywgZGVsZXRlIHJlYWQubwoKV2VkIEZlYiAyMSAxNjo0NToxOSAxOTk2ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAdGlrdG9rLmN5Z251cy5jb20+CgoJKiByczYwMDAvbXZtZS1wcmludC5jOiBOZXcgZmlsZSwgbWFwIHdyaXRlIGludG8gc2VxdWVuY2VzIG9mCgkuT1VUTE4vLk9VVENIUi8uUENSTEYgcmF0aGVyIHRoYW4ganVzdCB1c2luZyAuT1VUQ0hSLgoKCSogcnM2MDAwL212bWUtb3V0Ynl0ZS5TOiBBZGQgc3R1YnMgZm9yIG5ldyBvdXRwdXQgc3lzdGVtIGNhbGxzLgoKCSogcnM2MDAwL01ha2VmaWxlLmluIChNVk1FX09CSlMpOiBBZGQgbXZtZS1wcmludC5vLCBkZWxldGUgcHJpbnQubwoJYW5kIHdyaXRlLm8uCgpUaHUgRmViIDE1IDExOjM3OjAyIDE5OTYgIEphbWVzIEcuIFNtaXRoICA8anNtaXRoQGN5Z251cy5jby51az4KCgkqIG1pcHMve21pcHNpZHQsbWlwc3Btb259LmxkOiBBZGRlZCBPVVRQVVRfQVJDSCBkZWZpbml0aW9uLgoJKiBtaXBzL2NtYTEwMS5jICh0aW1lKTogQWRkZWQgdGltZSgpIGZ1bmN0aW9uLgoKVHVlIEZlYiAxMyAxMDozNjowNyAxOTk2ICBKYW1lcyBHLiBTbWl0aCAgPGpzbWl0aEBjeWdudXMuY28udWs+CgoJKiBtaXBzL3ZyNDMwMC5TIChfX2NwdV9mbHVzaCk6IEZpeCBsb29wIGNvdW50ZXIuCgpUdWUgSmFuIDMwIDE1OjQxOjE5IDE5OTYgIEphbWVzIEcuIFNtaXRoICA8anNtaXRoQGN5Z251cy5jby51az4KCgkqIG1pcHMvc3lzY2FsbHMuYzogVXNlZCBpbmNsdWRlIGZpbGUsIHJhdGhlciB0aGFuIGxvY2FsIG1hbmlmZXN0CiAJZGVmaW5pdGlvbnMuCgkqIG1pcHMvY3J0MC5TOiBSZW1vdmVkIElEVCBtb25pdG9yIGVudHJ5IHBvaW50cy4KCSogbWlwcy9NYWtlZmlsZS5pbjogQ29uc3RydWN0IG1pcHNpZHQgYW5kIG1pcHNwbW9uIEJTUCBmaWxlcy4KCSogbWlwcy97Y21hMTAxLmMsaWR0bW9uLlMscG1vbi5TLHJlZ3MuUyx2cjQzMDAuU306IEFkZGVkLgoJKiBtaXBzL3ttaXBzcG1vbi5sZH06IEFkZGVkLgoKU3VuIEphbiAyOCAwODowMTozMSAxOTk2ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAdGlrdG9rLmN5Z251cy5jb20+CgoJKiByczYwMDAvY29uZmlndXJlLmluIChBQ19JTklUKTogVXNlIHNpbS1jcnQwLlMsIG5vdCBjcnQwLnMuCgkqIHJzNjAwMC9jb25maWd1cmU6IFJlZ2VuZXJhdGUuCgpXZWQgSmFuIDI0IDE0OjI2OjAxIDE5OTYgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckB0aWt0b2suY3lnbnVzLmNvbT4KCgkqIHJzNjAwMC97bXZtZSxzaW19LWNydDAuUyAoX19hdGV4aXQpOiBQdXQgdGhlIF9fYXRleGl0IHZhcmlhYmxlCglpbiB0aGUgLnNkYXRhIHNlY3Rpb24sIGFuZCBwcm92aWRlIGEgZml4dXAgZm9yIHRoZSBhZGRyZXNzLCBpbgoJb3JkZXIgdG8gc3VwcG9ydCB0aGUgbmV3IC1tc2RhdGEgY29tcGlsZXIgZmxhZy4KClRodSBKYW4gMTEgMTE6MjQ6MjUgMTk5NiAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQHRpa3Rvay5jeWdudXMuY29tPgoKCSogcnM2MDAwL3ttdm1lLHNpbX0tY3J0MC5TIChfX2F0ZXhpdCk6IFByb3ZpZGUgYWRkcmVzcyBvZiBhdGV4aXQsCglzbyBlYWJpLWN0b3JzIGluIGxpYmdjYy5hIGNhbiBrbm93IHRvIHJlZ2lzdGVyIHRoZSBmdW5jdGlvbiB0bwoJY2FsbCBhbGwgb2YgdGhlIGRlc3RydWN0b3JzLgoKU2F0IERlYyAzMCAxNDozMTozNyAxOTk1ICBEb3VnIEV2YW5zICA8ZGplQGNhbnVjay5jeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluIChBQ19DT05GSUdfQVVYX0RJUik6IEFkanVzdCB0byBuZXcgYnVpbGQgdHJlZSBsYXlvdXQuCgkqIHtkb2MsaHA3NHgsbTY4ayxtaXBzLHBhLHJzNjAwMCxzcGFyY30vY29uZmlndXJlLmluCgkoQUNfQ09ORklHX0FVWF9ESVIpOiBEZWZpbmUKCSogeyxkb2MsaHA3NHgsbTY4ayxtaXBzLHBhLHJzNjAwMCxzcGFyY30vY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCk1vbiBEZWMgMTEgMTI6MjA6MjQgMTk5NSAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUuaW4gKEZMQUdTX1RPX1BBU1MpOiBBZGQgSU5TVEFMTCwgSU5TVEFMTF9QUk9HUkFNLAoJYW5kIElOU1RBTExfREFUQS4KCkZyaSBEZWMgIDEgMTY6NTQ6MTUgMTk5NSAgSmFtZXMgRy4gU21pdGggIDxqc21pdGhAY3lnbnVzLmNvLnVrPgoKCSogbWlwcy9zeXNjYWxscy5jIChzYnJrKTogRml4ZWQgbWVtb3J5IGFkZHJlc3NpbmcuIFN5c3RlbSBjYWxsCiAJcmV0dXJucyBzaXplLCBub3QgKGxhc3QgYWRkcmVzcyArIDEpLgoKVGh1IE5vdiAxNiAxMzo0Nzo1NyAxOTk1ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGN5Z251cy5jb20+CgoJKiBjb25maWcvZGVmYXVsdC5taDogRG9uJ3QgZGVmaW5lIENDX0ZPUl9UQVJHRVQsIEFTX0ZPUl9UQVJHRVQsCglBUl9GT1JfVEFSR0VULCBMRF9GT1JfVEFSR0VULCBSQU5MSUJfRk9SX1RBUkdFVCwgTk1fRk9SX1RBUkdFVCwKCU9CSkRVTVBfRk9SX1RBUkdFVCwgb3IgT0JKQ09QWV9GT1JfVEFSR0VULiAgQ2hhbmdlIHRoZSBidWlsZCBydWxlcwoJdG8gdXNlIENDLCBldGMuLCBpbnN0ZWFkIG9mIENDX0ZPUl9UQVJHRVQsIGV0Yy4KCSogY29uZmlndXJlLmluLCAqL2NvbmZpZ3VyZS5pbjogR2V0IHZhbHVlcyBmb3IgQ0MsIEFTLCBBUiwgTEQsIGFuZAoJUkFOTElCLiAgQWx3YXlzIHVzZSBkZWZhdWx0Lm1oLgoJKiBNYWtlZmlsZS5pbiAoRkxBR1NfVE9fUEFTUyk6IFBhc3MgZG93biBMRC4KCSogTWFrZWZpbGUuaW4sICovTWFrZWZpbGUuaW46IExldCBDQywgQVMsIEFSLCBMRCwgYW5kIFJBTkxJQiBieQoJc3Vic3RpdHV0ZWQgYnkgdGhlIGF1dG9jb25mIGNvbmZpZ3VyZSBzY3JpcHQuICBVc2UgdGhlbSBpbnN0ZWFkIG9mCgl0aGUgKl9GT1JfVEFSR0VUIHZhcmlhbnRzLgoJKiBocDc0eC9jb25maWd1cmUuaW46IERvbid0IGNhbGwgQUNfQ0FOT05JQ0FMX1NZU1RFTS4KCSogbTY4ay9jb25maWd1cmUuaW46IENhbGwgQUNfQVJHX1BST0dSQU0uCgkqIG1pcHMvY29uZmlndXJlLmluLCBwYS9jb25maWd1cmUuaW46IExpa2V3aXNlLgoJKiByczYwMDAvY29uZmlndXJlLmluOiBMaWtld2lzZS4KCSogbTY4ay9NYWtlZmlsZS5pbjogU2V0IHByb2dyYW1fdHJhbnNmb3JtX25hbWUsIE9CSkRVTVAsIGFuZAoJT0JKQ09QWS4KCSogbWlwcy9NYWtlZmlsZS5pbiwgcGEvTWFrZWZpbGUuaW4sIHJzNjAwMC9NYWtlZmlsZS5pbjogTGlrZXdpc2UuCgkqIG1pcHMvTWFrZWZpbGUuaW46IFNwbGl0IG5ldyB0ZXN0IHRhcmdldCBmcm9tIGFsbCB0YXJnZXQuCgkqIGNvbmZpZ3VyZSwgKi9jb25maWd1cmU6IFJlYnVpbGQuCgpUdWUgTm92IDE0IDEyOjA0OjM2IDE5OTUgIEFuZ2VsYSBNYXJpZSBUaG9tYXMgKGFuZ2VsYUBjeWdudXMuY29tKQoKCSogTWFrZWZpbGUuaW46IEFkZGVkIHByZWZpeCwgZXhlYy1wcmVmaXggYW5kIHRvb2xkaXIgdG8KCUZMQUdTX1RPX1BBU1Mgc28gdmF1bHRpbmcgd29ya3MgY29ycmVjdGx5LgoKVHVlIE5vdiAxNCAxODozMjo0MSAxOTk1ICBKYW1lcyBHLiBTbWl0aCAgPGpzbWl0aEBjeWdudXMuY28udWs+CgoJKiBtaXBzL21pcHNpZHQubGQ6IEFkZGVkLgoJKiBtaXBzL3N5c2NhbGxzLmM6IEFkZGVkLgoJKiBtaXBzL2NydDAuUzogQWRkZWQgRlBVIHByZXNlbmNlIGNoZWNrLCBhbmQgZW50cnkgcG9pbnRzIGludG8gSURUCgltb25pdG9yLgoJKiBtaXBzL01ha2VmaWxlLmluIChhbGwpOiBVcGRhdGVkIHRvIGJ1aWxkIGdlbmVyaWMgSURUIG1vbml0b3IKIAljcnQwLm8gZmlsZS4KCSogbWlwcy90ZXN0LmMgKG1haW4pOiBSZW1vdmVkIHVubmVjZXNzYXJ5IHByb3RvdHlwZXMuCgkqIGNvbmZpZ3VyZS5pbiAoY29uZmlnZGlycyk6IFJlbW92ZWQgbWlwczY0dnI0MzAwIHRhcmdldC4KCSogY29uZmlndXJlOiBSZS1nZW5lcmF0ZWQuCgkqIGNvbmZpZy9kZWZhdWx0Lm1oIChPQkpEVU1QX0ZPUl9UQVJHRVQpOiBBZGRlZCBtaXNzaW5nIHBhcmVudAogCWRpcmVjdG9yeSBwYXRoIGVsZW1lbnQuCgkqIG1pcHNpZHQ6IERpcmVjdG9yeSByZW1vdmVkLgoKRnJpIE5vdiAxMCAxMjo1MDowMyAxOTk1ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW4sICovY29uZmlndXJlLmluOiBEb24ndCBjYWxsIEFDX0FSR19QUk9HUkFNLgoJKiBjb25maWd1cmUsICovY29uZmlndXJlOiBSZWJ1aWxkLgoJKiBNYWtlZmlsZS5pbiwgKi9NYWtlZmlsZS5pbjogRG9uJ3Qgc2V0IHByb2dyYW1fdHJhbnNmb3JtX25hbWUuCgpXZWQgTm92ICA4IDE2OjE5OjMxIDE5OTUgIEphbWVzIEcuIFNtaXRoICA8anNtaXRoQHBhc2FuZGEuY3lnbnVzLmNvLnVrPgoKCSogY29uZmlndXJlLmluIChjb25maWdkaXJzKTogQWRkIG1pcHMqdnI0MzAwKi0qLSogdGFyZ2V0LgoKCSogY29uZmlndXJlOiBSZS1nZW5lcmF0ZWQuCgoJKiBtaXBzaWR0L2NydDAuUzogQ2hlY2sgZm9yIEZQVSBwcmVzZW5jZS4KCgkqIG1pcHNpZHQvbWlwc2lkdC5sZDogUmVtb3ZlZCBleHBsaWNpdCBjcnQwLm8gZnJvbSBsaW5rLgoKCSogbWlwc2lkdC9NYWtlZmlsZS5pbjogRXhwbGljaXRseSBsaW5rIGFnYWluc3QgY3J0MC5vIGZpbGUuCgpUaHUgTm92ICAyIDIzOjI3OjI4IDE5OTUgIFJvYiBTYXZveWUgIDxyb2JAY2hpbmFkb2xsLmN5Z251cy5jb20+CgoJKiBjb25maWcvZGVmYXVsdC5taDogQWRkIGFkZGl0aW9uYWwgIi4uLyIgdG8gcGF0aCB1c2VkIHRvIGZpbmQKCWNvbXAtdG9vbHMgYmluYXJpZXMgaW4gYW4gb2JqZWN0IHRyZWUuCgpNb24gT2N0IDMwIDE4OjEwOjQ3IDE5OTUgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckB0aWt0b2suY3lnbnVzLmNvbT4KCgkqIHJzNjAwMC9tdm1lLWNydDAuUyAoX3N0YXJ0KTogWmVybyBvdXQgYnNzIGJlZm9yZSB0aGUgdGhlIHByb2dyYW0KCXN0YXJ0cy4KClR1ZSBPY3QgMjQgMTA6MDc6NTAgMTk5NSAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQHRpa3Rvay5jeWdudXMuY29tPgoKCSogcnM2MDAwL212bWUte2V4aXQsb3V0Ynl0ZSxpbmJ5dGV9LlM6IFVzZSBoZXggZm9yIHRoZSBzeXN0ZW0KCWNhbGxzLCBub3QgZGVjaW1hbCwgc2luY2UgZm9ybWF0dGluZyB0aGUgZGlzayB3aGVuIHlvdSBpbnRlbmQgdG8KCXdyaXRlIG91dCBhIGNoYXJhY3RlciBpcyBub3QgbmljZS4KCk1vbiBPY3QgMjMgMjI6MTc6MTIgMTk5NSAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQHRpa3Rvay5jeWdudXMuY29tPgoKCSogcnM2MDAwL212bWUtY3J0MC5TIChfc3RhcnQpOiBCdW1wIHNwIGJ5IC00IGJlZm9yZSBzdG9yaW5nIGVuZCBvZgoJc3RhY2sgY2hhaW4gdG8gYXZvaWQgbGFzdCB3b3JkIGluZGVidWdnZXIncyBtZW1vcnkuCgoJKiByczYwMDAvbXZtZS17ZXhpdCxpbmJ5dGUsb3V0Ynl0ZX0uUzogU3lzdGVtIGNhbGwgbnVtYmVyIGdvZXMgaW4KCXIxMCwgbm90IHIwLgoKTW9uIE9jdCAyMyAxNzo1NzoyMyAxOTk1ICBKYW1lcyBHLiBTbWl0aCAgPGpzbWl0aEBqYWFsZnJlemkuY3lnbnVzLmNvLnVrPgoKCSogbWlwc2lkdC9NYWtlZmlsZS5pbjogUmVtb3ZlZCB0aGUgTERGTEFHU19GT1JfVEFSR0VUIGluIHRoZSB0ZXN0CiAJcHJvZ3JhbSBsaW5rLgoKCSogbWlwc2lkdC9jcnQwLlM6IENoYW5nZWQgbW9uaXRvciBlbnRyeSBzZXF1ZW5jZS4KCgkqIG1pcHNpZHQvc3lzY2FsbHMuYzogQWRkZWQgbG9jYWwgc2JyaygpIGZ1bmN0aW9uLCBkZXJpdmVkIGZyb20KIAkobGliZ2xvc3Mvc2Jyay5jKSwgYnV0IHVzaW5nIHRoZSBtb25pdG9yIHJvdXRpbmUgdG8gYXNjZXJ0YWluIHRoZQogCWFtb3VudCBvZiBtZW1vcnkgYXZhaWxhYmxlLgoKTW9uIE9jdCAyMyAxMTo1ODowNCAxOTk1ICBKYW1lcyBHLiBTbWl0aCAgPGpzbWl0aEBwYXNhbmRhLmN5Z251cy5jby51az4KCgkqIG1pcHNpZHQ6IEFkZGVkIChkaXJlY3RvcnkpLiBUaGlzIGlzIGEgc2ltcGxlIGNydDAgbW9kdWxlIGZvciB0aGUKIAlJRFQgTUlQUyBtb25pdG9yLiBUaGUgZXhpc3RpbmcgImxpYmdsb3NzL21pcHMiIGRpcmVjdG9yeSBpcyBmb3IgYQogCXNwZWNpZmljIFIzMDAwIGJvYXJkLCBzbyBpdCB3YXMgc2FmZXIgY3JlYXRpbmcgYSBuZXcgdGFyZ2V0CiAJZGlyZWN0b3J5LgoJKiBtaXBzaWR0L01ha2VmaWxlLmluOiBBZGRlZC4KCSogbWlwc2lkdC9jb25maWd1cmU6IEFkZGVkLgoJKiBtaXBzaWR0L2NvbmZpZ3VyZS5pbjogQWRkZWQuCgkqIG1pcHNpZHQvY3J0MC5TOiBBZGRlZC4KCgkqIG1pcHNpZHQvc3lzY2FsbHMuYzogQWRkZWQuCgkqIG1pcHNpZHQvdGVzdC5jOiBBZGRlZC4KCgkqIGNvbmZpZ3VyZSAobWlwcyp2cjQzMDAqLSotKik6IFVzZSBuZXcgbWlwc2lkdCB0YXJnZXQgZGlyZWN0b3J5LgoKTW9uIE9jdCAgOSAyMTowNzowOCAxOTk1ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAY3lnbnVzLmNvbT4KCgkqIHJzNjAwMC9NYWtlZmlsZSAoYWxsIGFzbSBydWxlcyk6IFJlbW92ZSBhc20uaCBkZXBlbmRlbmN5LgoJKiByczYwMDAvYXNtLmg6IEZpbGUgZGVsZXRlZCwgbW92ZWQgdG8gZ2NjIGRpcmVjdG9yeSBhcyBwcGMtYXNtLmguCgkqIHJzNjAwMC9tdm1lLXtjcnQwLGV4aXQsaW5ieXRlLG91dGJ5dGV9LlM6IEluY2x1ZGUgcHBjLWFzbS5oLCBub3QKCWFzbS5oLgoJKiByczYwMDAvc2ltey1jcnQwLHVsYXRvcn0uUzogRGl0dG8uCgoJKiByczYwMDAve212bWUsc2ltfS1jcnQwLlMgKF9zdGFydCk6IERvbid0IHVzZSBGVU5DX1NUQVJUL0ZVTkNfRU5ECglmb3IgX3N0YXJ0LCBzaW5jZSB0aGUgbGlua2VyIG5lZWRzIHRvIHNlZSB0aGlzLgoKTW9uIE9jdCAgOSAxMjowODoxMiAxOTk1ICBTdHUgR3Jvc3NtYW4gIChncm9zc21hbkBjeWdudXMuY29tKQoKCSogc3BhcmMvc3BhcmMtc3R1Yi5jOiAgaW5jbHVkZSBzcGFyY2xpdGUuaCB0byBnZXQgYWNjZXNzIHRvIHJlZ2lzdGVyCglmb25kbGluZyBtYWNyb3MuCgkqICh0cmFwX2xvdyk6ICBTYXZlIGFuZCByZXN0b3JlIEZQIHJlZ3MgaWYgbmVjZXNzYXJ5LiAgQWxzbywgY2xlYW4KCXVwIHNhdmUgYW5kIHJlc3RvcmUgb2YgZGVidWcgdW5pdCByZWdzLgoJKiAoaGFyZF90cmFwX2luZm8pOiAgQWRkIG1vcmUgYXJjaGl0ZWN0dXJhbGx5IGRlZmluZWQgdHJhcHMuCgkqIChzZXRfZGVidWdfdHJhcHMpOiAgT25seSBzZXQgRlAgZGlzYWJsZWQgdHJhcCBpZiBGUCBpcyBkaXNhYmxlZC4KCSogKGdldF9pbl9icmVha19tb2RlKTogIENsZWFuIHVwLiAgR2V0IHJpZCBvZiBjYWxscyB0bwoJc2V0X2h3X2JyZWFrcG9pbnRfdHJhcCgpLiAgQWxzbywgdXNlIHdyaXRlX2FzaSBtYWNybwoJKiAoaGFuZGxlX2V4Y2VwdGlvbik6ICBDbGVhbiB1cCBgZycgYW5kIGBHJyBjb21tYW5kcy4gIEFkZCBgUCcKCWNvbW1hbmQuCgkqIChod19icmVha3BvaW50KTogIFdoeSB3YXMgdGhpcyBoZXJlIT8gIEl0J3MgZ29uZSBub3cuLi4KCSogc3BhcmMvY3J0MC5zOiAgU3BlZWQgdXAgcHJvbSBjb3B5IGxvb3AuICBDbGVhbiB1cCB3aW5kb3cgb3Zlci91bmRlcgoJZmxvdyBzZXR1cC4gIENhbGwgbWFpbiBpbnN0ZWFkIG9mIGp1bXBpbmcgdG8gaXQuCgkqIHNwYXJjL3NhbGliLmMgKGdldF91YXJ0X3N0YXR1cyByY3ZfY2hhciBmbHVzaF9pX2NhY2hlKTogIFVzZSBuZXcKCWFuZCBpbXByb3ZlZCByZWFkX2FzaSBtYWNyby4KCSogKHdpbl9vdmYgd2luX3VuZik6ICBQYXJhbWV0ZXJpemUgd2luZG93IHNpemUuCgkqIHNwYXJjbGl0ZS5oIChyZWFkX2FzaSk6ICBSZXdyaXRlIHNvIHRoYXQgbWFjcm8gcmV0dXJucyBhbiBydmFsLgoJKiAocmVhZF9wc3Igd3JpdGVfcHNyKTogIE5ldyBtYWNyb3MgdG8gZG8gdGhlIG9idmlvdXMuCgkqIEFkZCBjb25kaXRpb25hbGl6ZWQgY29kZSBmb3IgOTMzIHdpbmRvdyBzaXplLgoKRnJpIE9jdCAgNiAxNTozNTowMSAxOTk1ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAdGlrdG9rLmN5Z251cy5jb20+CgoJKiByczYwMDAvc2ltdWxhdG9yLlMgKGFib3J0KTogRGVsZXRlIGFib3J0LgoJKiByczYwMDAvc2ltLWFib3J0LmM6IE5ldyBmaWxlLCB0byBwcmludCBtZXNzYWdlIHRoYXQgYWJvcnQgd2FzCgljYWxsZWQuCgkqIHJzNjAwMC9NYWtlZmlsZS5pbiAoU0lNX09CSlMpOiBBZGQgc2ltLWFib3J0Lm8uCgoJKiByczYwMDAvYXNtLmggKEZVTkNfTkFNRSwgRlVOQ19TVEFSVCwgRlVOQ19FTkQpOiBOZXcgbWFjcm9zIHRoYXQKCWdpdmUgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgYSBmdW5jdGlvbiB3cml0dGVuIGluIGFzc2VtYmxlci4gIElmCgktbWNhbGwtYWl4ZGVzYyBvciAtbWNhbGwtbnQsIGNyZWF0ZSBhIGZ1bmN0aW9uIGRlc2NyaXB0b3IgYW5kIG5hbWUKCXRoZSByZWFsIGZ1bmN0aW9uIHdpdGggb25lIG9yIHR3byBsZWFkaW5nIHBlcmlvZHMuCgoJKiByczYwMDAve3NpbXVsYXRvcixzaW0tY3J0MH0uUzogVXNlIG5ldyBmdW5jdGlvbiBtYWNyb3MuCgkqIHJzNjAwMC9tdm1lLXtjcnQwLGV4aXQsaW5ieXRlLG91dGJ5dGV9LlM6IERpdHRvLgoKCSogcnM2MDAwL01ha2VmaWxlLmluOiBBZGQgYXNtLmggYXMgYSBkZXBlbmRlbnQgZm9yIGFsbCAuUyBmaWxlcy4KCUNvbXBpbGUgdGhlIC5TIGZpbGVzIHdpdGggZ2NjLCBzbyB0aGF0IC1tY2FsbC0qIGZsYWdzIGRlZmluZSB0aGUKCWFwcHJvcHJpYXRlIG1hY3Jvcy4KClRodSBTZXAgMjggMTM6NDk6NDUgMTk5NSAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBjeWdudXMuY29tPgoKCSogc3BhcmMvZXg5M3gubGQ6IFJlbW92ZSBjcnQwLm8gZnJvbSBJTlBVVDsgZ2NjIHdpbGwgbm9ybWFsbHkgcGFzcwoJY3J0MC5vIGFueWhvdy4gIEFkZCBsZWFkaW5nIHVuZGVyc2NvcmUgdG8gX19DVE9SX0xJU1RfXywgZXQuIGFsLgoJKiBzcGFyYy9zYWxpYi5jIChfX21haW4pOiBDb21tZW50IG91dCBlbXB0eSBmdW5jdGlvbi4KCldlZCBTZXAgMjAgMTQ6MzY6MTIgMTk5NSAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBjeWdudXMuY29tPgoKCSogTWFrZWZpbGUuaW4gKG1haW50YWluZXItY2xlYW4pOiBOZXcgc3lub255bSBmb3IgcmVhbGNsZWFuLgoJKiBocDc0eC9NYWtlZmlsZS5pbiAobWFpbnRhaW5lci1jbGVhbik6IExpa2V3aXNlLgoJKiBtNjhrL01ha2VmaWxlLmluIChtYWludGFpbmVyLWNsZWFuKTogTGlrZXdpc2UuCgkqIHBhL01ha2VmaWxlLmluIChtYWludGFpbmVyLWNsZWFuKTogTGlrZXdpc2UuCgkqIG1pcHMvTWFrZWZpbGUuaW4gKG1haW50YWluZXItY2xlYW4pOiBMaWtld2lzZS4KCSogcnM2MDAwL01ha2VmaWxlLmluIChtYWludGFpbmVyLWNsZWFuKTogTGlrZXdpc2UuCgkqIHNwYXJjL01ha2VmaWxlLmluIChtYWludGFpbmVyLWNsZWFuKTogTGlrZXdpc2UuCgkqIGRvYy9NYWtlZmlsZS5pbiAobWFpbnRhaW5lci1jbGVhbik6IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuaW4gKG1haW50YWluZXItY2xlYW4pOiBMaWtld2lzZS4KCSogdGVzdHN1aXRlL2xpYmdsb3NzLmFsbC9NYWtlZmlsZS5pbiAobWFpbnRhaW5lci1jbGVhbik6IExpa2V3aXNlLgoKU2F0IFNlcCAxNiAyMzowNDoxMSAxOTk1ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAdGlrdG9rLmN5Z251cy5jb20+CgoJKiByczYwMDAvTWFrZWZpbGUuaW4gKGFsbCk6IEZpeCB0eXBvIHByZXZlbnRpbmcgc2ltdWxhdG9yIGZyb20KCWJlaW5nIGJ1aWx0LgoKVHVlIFNlcCAxMiAxMDo0Mzo0MSAxOTk1ICBKLlQuIENvbmtsaW4gIDxqdGNAcnRsLmN5Z251cy5jb20+CgoJKiByczYwMDAvTWFrZWZpbGUuaW46IE1pc2MgbXZtZSBzdXBwb3J0IGZpeGVzLgoKCSogcnM2MDAwL3ttdm1lLWV4aXQuUywgbXZtZS1pbmJ5dGUuUywgbXZtZS1vdXRieXRlLlN9OiBTdHJpcAoJbGVhZGluZyB1bmRlcnNjb3JlcyBmcm9tIGlkZW50aWZpZXJzLgoKCSogbTY4ay9hc20uaDogTmV3IGZpbGUsIG1hY3JvIGRlZmluaXRpb25zIGhlbHBmdWwgZm9yIGFzc2VtYmx5CglsYW5ndWFnZSBwcm9ncmFtbWluZy4KCSogbTY4ay97Y3B1MzJidWcuUywgY3J0MC5TLCBtdm1lLlMsIG12bWUxMzUtYXNtLlMsIG12bWUxNjJseC1hc20uU306CiAJVXNlIGFzbS5oLgoKCSogcnM2MDAwL3ttdm1lLWNydDAuUywgbXZtZS1leGl0LlMsIG12bWUtaW5ieXRlLlMsIG12bWUtb3V0Ynl0ZS5TfToKCU5ldyBmaWxlcywgcHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgbW90b3JvbGEgbXZtZSB0YXJnZXRzIHJ1bm5pbmcKCXRoZSBwcGNidWcgbW9uaXRvci4KCSogcnM2MDAwL01ha2VmaWxlLmluOiBCdWlsZCBtdm1lIHN1cHBvcnQuCgoJKiByczYwMDAvYXNtLmg6IE5ldyBmaWxlLCBtYWNybyBkZWZpbml0aW9ucyBoZWxwZnVsIGZvciBhc3NlbWJseQogICAgICAgIGxhbmd1YWdlIHByb2dyYW1taW5nLgoJKiByczYwMDAve3NpbS1jcnQwLlMsIHNpbXVsYXRvci5TfTogVXNlIGFzbS5oLgoKRnJpIFNlcCAgOCAxODo1MToyOSAxOTk1ICBNaWNoYWVsIE1laXNzbmVyICA8bWVpc3NuZXJAd29nZ2xlYnVnLnRpYWMubmV0PgoKCSogcnM2MDAwL3NpbS1zYnJrLmMgKHNicmspOiBBZGQgY2FzdCB0byBzaWxlbmNlIHdhcm5pbmcuCgpGcmkgU2VwICA4IDEzOjAzOjEyIDE5OTUgIEJyZW5kYW4gS2Vob2UgIDxicmVuZGFuQGxpc2EuY3lnbnVzLmNvbT4KCgkqIG02OGsvaWRwLWluYnl0ZS5jIChSRUFEUkVHKTogQWRkIHZvbGF0aWxlIHRvIHRoZSBjYXN0LCB0byBhdm9pZAoJcmVvcmRlcmVkIGluc25zIHRoYXQgY2FuIGVuZCB1cCBiZWluZyBhbiBpbmZpbml0ZSBsb29wLgoJKiBtNjhrL2lkcC1vdXRieXRlLmMgKFJFQURSRUcpOiBMaWtld2lzZS4KCldlZCBTZXAgIDYgMTA6MDE6MzMgMTk5NSAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQHRpa3Rvay5jeWdudXMuY29tPgoKCSogcnM2MDAwL3NpbS1zYnJrLmMgKHNicmspOiBVc2UgdGhlIGJyayBzeXN0ZW0gY2FsbCwgaW5zdGVhZCBvZgoJdXNpbmcgYSBsYXJnZSBzdGF0aWMgYXJlYSBmb3IgdGhlIGJyZWFrIGFyZWEuCgpUaHUgQXVnIDI0IDE0OjU3OjI4IDE5OTUgIE1pY2hhZWwgTWVpc3NuZXIgIDxtZWlzc25lckB0aWt0b2suY3lnbnVzLmNvbT4KCgkqIHJzNjAwMC9NYWtlZmlsZS5pbiAoaW5zdGFsbCopOiBBZGQgc2VwYXJhdGUgaW5zdGFsbGF0aW9uIHJ1bGVzCglmb3Igc2ltIGFuZCBldm0gdGFyZ2V0cy4KCldlZCBBdWcgMjMgMTY6NDk6MDIgMTk5NSAgTWljaGFlbCBNZWlzc25lciAgPG1laXNzbmVyQHRpa3Rvay5jeWdudXMuY29tPgoKCSogcnM2MDAwL3NpbSo6IEFkZCBQb3dlclBDIHNpbXVsYXRvciBzdXBwb3J0LgoKVHVlIEF1ZyAyMiAxMTo1Mjo0MCAxOTk1ICBKZWZmIExhdyAgKGxhd0BzbmFrZS5jcy51dGFoLmVkdSkKCgkqIHBhL2hwLW1pbGxpLnM6IEFkZCBlbnRyeS9leGl0IHBzZXVkby1vcHMgYXJvdW5kIGFsbCBleHBvcnRlZAoJY29kZS4gIEZpeCBjYWxsaW5mbyBkaXJlY3RpdmVzIHRvIGluY2x1ZGUgIm1pbGxpY29kZSIgYXR0cmlidXRlLgoKCSogcGEvaHAtbWlsbGkucyAoZGl2VSk6IEZpeCBidWcgZm91bmQgYnkgYXJpdGgtcmFuZDEuYyB0ZXN0aW5nLgoKTW9uIEF1ZyAyMSAyMzozMTo0MiAxOTk1ICBKZWZmIExhdyAgKGxhd0BzbmFrZS5jcy51dGFoLmVkdSkKCgkqIHBhL2NydDAuUyAoJFNUQVJUJCk6IFVzZSBsb2NhbCBsYWJlbCBwcmVmaXggZm9yIGxvY2FsIGxhYmVsCgkiYnNzbG9vcCIuCgpNb24gQXVnIDE0IDExOjU3OjQ2IDE5OTUgIEt1bmcgSHN1ICA8a3VuZ0BtZXhpY2FuLmN5Z251cy5jb20+CgoJKiBleDkzeC9zcGFyY2xpdGUuaDogYWRkIF9fV0lOU0laRS4KCSogZXg5M3gvc2FsaWIuYzogVXNlIF9fV0lOU0laRSwgaW1wbGVtZW50cyB3cml0ZSB3aXRoICRPIGNvbW1hbmQgb2YKCXN0dWIgcHJvdG9jb2wuCgpUaHUgQXVnICAzIDE0OjQwOjEyIDE5OTUgIEouVC4gQ29ua2xpbiAgPGp0Y0BydGwuY3lnbnVzLmNvbT4KCgkqIE1ha2VmaWxlLmluOiBVcGRhdGVkIHRvIHJlZmxlY3QgZmlsZW5hbWUgY2hhbmdlcy4KCgkqIG02OGsvbWM2ODY4MS1kdWFydC5oOiBSZW5hbWVkIHRvIG02ODY4MXJlZy5oLgoJKiBtNjhrL21jNjg2ODEtZHVhcnQuYzogU3BsaXQgdXAgYW5kIHJlbmFtZWQgdG8gaWRwLWluYnl0ZS5jIGFuZAoJaWRwLW91dGJ5dGUuYwoKRnJpIEp1bCAyOCAxMToyMzoyNCAxOTk1ICBKLlQuIENvbmtsaW4gIDxqdGNAcnRsLmN5Z251cy5jb20+CgoJKiBtNjhrL21jNjg2ODEtZHVhcnQuaDogUmVtb3ZlZCBldmVyeXRoaW5nIGV4Y2VwdCByZWdpc3RlciBvZmZzZXRzLgoJQ2hhbmdlZCBvZmZzZXRzIHNvIHRoZXkgcmVmbGVjdCBhY3R1YWwgY2hpcCBpbnN0ZWFkIG9mIGhvdyBkZXZpY2UKCWlzIG1hcHBlZCBpbnRvIHRoZSBJRFAgYWRkcmVzcyBzcGFjZS4KCSogbTY4ay9tYzY4NjgxLWR1YXJ0LmMgKERVQVJUX0FERFIpOiBOZXcgbWFjcm8sIGJhc2UgYWRkcmVzcy4KCShSRUFEUkVHLCBXUklURVJFRyk6IENoYW5nZWQgdG8gY29ycmVzcG9uZCB0byB1bnVzdWFsIHdheSB0aGUKCWRldmljZSBpcyBtYXBwZWQgKGllLiBiYXNlIGFkZHJlc3MgKyAocmVnIG9mZnNldCAqIDQpICsgMykpLgoJKGR1YXJ0X3N0YXR1cywgZHVhcnRfbW9kZSwgZHVhcnRfaW5pdCwgZHVhcnRfcmVzdG9yZSk6IFJlbW92ZWQsCgl0aGVzZSBpbnRlcmZhY2VzIHdlcmUgbmV2ZXIgdXNlZCBhbmQgZGlkbid0IHdvcmsuCgkob3V0Ynl0ZSk6IFJlbW92ZWQgdW5jb25kaXRpb25hbCBkZWxheS4KCgkqIG02OGsvY3J0MC5TOiBVc2UgU1lNKF9lbmQpIGluc3RlYWQgb2YgZW5kLiAgVGhpcyBjb21wbGV0ZXMgbXkKCWNoYW5nZSBvZiBBcHJpbCAxOHRoIHdoaWNoIG1ha2VzIHRoZSAiX2VuZCIgc3ltYm9sIGNvbXBhdGlibGUKCXdpdGggYm90aCBhLm91dCBhbmQgY29mZiB0b29sY2hhaW5zLgoJKHplcm9ic3MpOiBIYW5kbGUgemVyby1sZW5ndGggYnNzLgoKVGh1IEp1bCAyNyAxNTozNTozNyAxOTk1ICBKLlQuIENvbmtsaW4gIDxqdGNAcnRsLmN5Z251cy5jb20+CgoJKiBjb25maWd1cmUsIHtkb2MsIGhwNzR4LCBtNjhrLCBtaXBzLCBwYSwgc3BhcmN9L2NvbmZpZ3VyZToKCXJlZ2VuZXJhdGVkIHdpdGggYXV0b2NvbmYgMi40LjIuCgpXZWQgSnVsIDI2IDEzOjQyOjI3IDE5OTUgIEouVC4gQ29ua2xpbiAgPGp0Y0BydGwuY3lnbnVzLmNvbT4KCgkqIGRvYy9wb3J0aW5nLnRleGk6IEZpeCB0eXBvcyBhbmQgc3BlbGxpbmcgZXJyb3JzLgoKTW9uIEp1biAyNiAwOToyMzoyMyAxOTk1ICBKZWZmcmV5IEEuIExhdyAgPGxhd0BydGwuY3lnbnVzLmNvbT4KCgkqIHBhL01ha2VmaWxlLmluOiBFbmFibGUgSFAgc3VwcGxpZWQgbWlsbGljb2RlIHJvdXRpbmVzLgoJKiBwYS9ocC1taWxsaS5zOiAgTWFrZSBzdXJlIGNvcHlyaWdodCBub3RpY2UgZ2V0cyBpbmNsdWRlZAoJaW4gb2JqZWN0cyBmaWxlcy4KCgkqIHBhL2NydDAuUyAoJFNUQVJUJCk6IFVzZSAiJSIgaW5zdGVhZCBvZiAiJyIgdG8gYXZvaWQgbG9zaW5nIHdoZQoJcnVuIHRocm91Z2ggY3BwLgoKRnJpIEp1biAxNiAxODo0MDoyMiAxOTk1ICBKZWZmcmV5IEEuIExhdyAgPGxhd0BydGwuY3lnbnVzLmNvbT4KCgkqIHBhL2NydDAuUyAoJFNUQVJUJCk6IFVzZSBsb25nLWNhbGxzIHRvIGNhbGwgbWFpbiBhbmQgZXhpdC4KClR1ZSBKdW4gMTMgMTY6MDU6MTMgMTk5NSAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSogcGEvY3J0MC5TOiBDYWxsIGV4aXQoKSBhZnRlciByZXR1cm5pbmcgZnJvbSBtYWluLgoKVHVlIEp1biAxMyAxMDo0MzoxNCAxOTk1ICBKLlQuIENvbmtsaW4gIDxqdGNAcnRsLmN5Z251cy5jb20+CgoJKiBNYWtlZmlsZS5pbiwge2RvYywgaHA3NHgsIG02OGssIG1pcHMsIHBhLCBzcGFyY30vTWFrZWZpbGUuaW4KCSAgKGRpc3RjbGVhbiwgcmVhbGNsZWFuKTogUmVtb3ZlIGF1dG9jb25mLWdlbmVyYXRlZCBjb25maWcuY2FjaGUKCSAgYW5kIGNvbmZpZy5sb2cgZmlsZXMuCgpNb24gSnVuICA1IDE1OjU2OjIyIDE5OTUgIEouVC4gQ29ua2xpbiAgPGp0Y0BydGwuY3lnbnVzLmNvbT4KCgkqIGNvbmZpZy97ZGVmYXVsdC5taCwgZG9zLm1ofSAoQ0ZMQUdTX0ZPUl9UQVJHRVQpOiBBZGRlZCAtTzIuCgkgICguYy5vLCAucy5vLCAuUy5vLCBldGMuKTogRG9uJ3QgdXNlIEAgdG8gaGlkZSBob3cgdGhlIGNvbXBpbGVyCgkgIGlzIGludm9rZWQsIGl0IG1ha2VzIGl0IG11Y2ggbW9yZSBkaWZmaWN1bHQgdG8gZGVidWcuCgpUdWUgTWF5IDMwIDE5OjA3OjU5IDE5OTUgIFJvYiBTYXZveWUgIDxyb2JAZGFya3N0YXIuY3lnbnVzLmNvbT4KCgkqIHRlc3RzdWl0ZS9saWJnbG9zcy5hbGwvbWF0aC5jOiBBZGQgYWRkaXRpb25hbCB0ZXN0cyBmb3IgbW9kdWxvLgoKTW9uIE1heSAyOSAxMzowMzozOSAxOTk1ICBSb2IgU2F2b3llICA8cm9iQGRhcmtzdGFyLmN5Z251cy5jb20+CgoJKiBzdGF0LmM6IEFkZCBjb25zdCBzbyBpdCB3b3JrcyB3aXRoIG5ld2xpYidzIHN0YXQuaC4KClRodSBNYXkgMjUgMTY6Mjg6NDIgMTk5NSAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSogbTY4ay9tdm1lLlM6IEV4dGVuZCBzaWduIHVzaW5nIHR3byBpbnN0cnVjdGlvbnMgcmF0aGVyIHRoYW4gb25lCglzbyBpdCdsbCB3b3JrIG9uIGEgc3RvY2sgbWM2ODAwMC4KClR1ZSBNYXkgMjMgMTg6MTI6MTkgMTk5NSAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSogY2xvc2UuYywgc3RhdC5jLCBmc3RhdC5jLCBvcGVuLmMsIGxzZWVrLmMsIHByaW50LmMsIHB1dG51bS5jLAoJdW5saW5rLmMgcmVhZC5jLCBzYnJrLmMsIGdldHBpZC54LCBraWxsLmM6IE5ldyBmaWxlcyB0aGF0IHVzZWQgdG8KCWJlIGdsdWUuYy4KCSoge202OGsscGEsbWlwc30vTWFrZWZpbGUuaW46IEJ1aWxkIHVzaW5nIGJyb2tlbiB1cCBnbHVlLmMuCgkqIHBhL01ha2VmaWxlLmluOiBNYWtlIGFsbCBqdXN0IGJ1aWxkIEJTUCwgYWRkIHNlcGVyYXRlIHRlc3QKCXRhcmdldC4KCSogbW9zdCBmaWxlczogYWRkIEN5Z251cyBCU0Qtc3R5bGUgY29weXJpZ2h0IG1lc3NhZ2UuCgpUdWUgTWF5IDIzIDEyOjU4OjAzIDE5OTUgIEouVC4gQ29ua2xpbiAgPGp0Y0BydGwuY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiwge2hwNzR4LCBtNjhrLCBtaXBzLCBwYSwgc3BhcmN9L2NvbmZpZ3VyZS5pbjoKCSAgVXNlIGNoYW5nZXF1b3RlKCkgdG8gdGVtcG9yYXJpbHkgdHVybiBvZmYgbTQgcXVvdGluZyBzbyB0aGF0CgkgIGlbMzQ1XTg2LSotZ28zMiBwYXR0ZXJuIGluIGNhc2Ugc3RhdGVtZW50IHJlbWFpbnMgdW5jaGFuZ2VkLgoJKiBjb25maWd1cmUsIHtocDc0eCwgbTY4aywgbWlwcywgcGEsIHNwYXJjfS9jb25maWd1cmU6CgkgIHJlZ2VuZXJhdGVkLgoKVHVlIE1heSAyMyAxMToxNTo1MiAxOTk1ICBBbmdlbGEgTWFyaWUgVGhvbWFzICA8YW5nZWxhQGNpcmRhbi5jeWdudXMuY29tPgoKCSogbWlwcy9NYWtlZmlsZS5pbiAoU0NSSVBUKTogYWRkZWQgIlNDUklQVCA9IGFycmF5LmxkIiBzbyBpbnN0YWxscwoJd29yayBjb3JyZWN0bHkuCgpNb24gTWF5IDIyIDIxOjMzOjQ5IDE5OTUgIFJvYiBTYXZveWUgIDxyb2JAZGFya3N0YXIuY3lnbnVzLmNvbT4KCgkqIGV4OTN4OiByZW5hbWVkIHRvIHNwYXJjLgoJKiByMzAwMDogcmVuYW1lZCB0byBtaXBzLgoJKiBocHBybzogcmVuYW1lZCB0byBwYS4KCSogY29uZmlndXJlLmluLCBjb25maWd1cmU6IFVzZSBuZXcgZGlyZWN0b3J5IG5hbWVzLgoJKiBjb25maWcvZGVmYXVsdC5taDogUmVtb3ZlICcnIGluIHNlZCBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIHNvCglpdCBhY3R1YWxseSB3b3Jrcy4KCSogZG9jL3BvcnRpbmcudGV4aTogdXBkYXRlIGRvYy4KCldlZCBNYXkgMTcgMTc6MjU6NTMgMTk5NSAgSi5ULiBDb25rbGluICA8anRjQHJ0bC5jeWdudXMuY29tPgoKCSogZG9jL2NvbmZpZ3VyZS5pbjogY29udmVydGVkIHRvIGF1dG9jb25mLgoJKiBkb2MvY29uZmlndXJlOiBOZXcgZmlsZSwgZ2VuZXJhdGVkIHdpdGggYXV0b2NvbmYgMi4zLgoKCSogTWFrZWZpbGUuaW4sIGNvbmZpZy97ZXg5M3gsIGhwNzR4LCBocHBybywgbTY4aywKCSAgcjMwMDB9L01ha2VmaWxlLmluIChNYWtlZmlsZS5pbik6IEFkZGVkIGNvbmZpZy5zdGF0dXMgdG8KCSAgZGVwZW5kZW5jeSBsaXN0LgoJICAoY29uZmlnLnN0YXR1cyk6IE5ldyB0YXJnZXQuCgoJKiBtNjhrL01ha2VmaWxlLmluOiBCdWlsZCBNNjgzMzJCQ0MgQlNQLgoKV2VkIE1heSAxMCAxODo0MzoyMSAxOTk1ICBTdHUgR3Jvc3NtYW4gIChncm9zc21hbkBhbmRyb3MuY3lnbnVzLmNvbSkKCgkqIGdsdWUuYzogIENoYW5nZSBkZWNsIG9mIGVuZCB0byBjaGFyW10gZm9yIHNvbWUgcmVhc29uLgoJKiAoc2Jyayk6ICBSZXdyaXRlIHNicmsgc28gdGhhdCBpdCB3b3Jrcy4KCSogKGZzdGF0KTogIFJldHVybiBzdGF0dXMgaW5kaWNhdGluZyBmZCBpcyBmb3IgYSB0dHkuICBNYWtlcyBzdGRpbwoJd29yayBiZXR0ZXIuCgkqIGhwcHJvL2NydDAuUyAoX3NyNGV4cG9ydCk6ICBSZXRyaWV2ZSBycCBmcm9tIC0yNChzcCksIG5vdAoJLTE4KHNwKS4gIE5vdGUgdGhhdCAtMjQgZGVjaW1hbCA9PSAtMTggaGV4Li4uCgkqIGhwcHJvL29wNTBuLWlvLlM6ICBBZGQgcmVhZCBhbmQgd3JpdGUgaW50ZXJmYWNlcyB0byB0aGUgcm9tCgltb25pdG9yLiAgVW5mb3J0dW5hdGVseSwgdGhlIG1vbml0b3IgZG9lc24ndCBzZWVtIHRvIHdvcmsuLi4KCSogaHBwcm8vb3A1MG4ubGQ6ICBDbGVhbiB1cCBsb3RzIG9mIHN0dWZmLiAgRGVmaW5lIG1lbW9yeSBpbiBhCgluaWNlIHdheS4gIERlZmluZSBzdGFjayBhbmQgcmVzZXJ2ZSBzcGFjZS4gIFB1dCBoZWFwIGFmdGVyIHN0YWNrLgoKVGh1IE1heSAgNCAxMDoyODowMSAxOTk1ICBKLlQuIENvbmtsaW4gIDxqdGNAcnRsLmN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW4gKEFDX1BSRVJFUSk6IENoYW5nZWQgdG8gMi4zLCBzaW5jZSBhdXRvY29uZgoJICB2ZXJzaW9ucyBwcmlvciB0byB0aGlzIGdlbmVyYXRlIGNvZGUgdGhhdCBBSVggNC5YJ3Mgc2ggY2FuJ3QKCSAgaGFjay4KCgkqIG02OGsvTWFrZWZpbGUuaW4gKEJDQ19CU1AsIEJDQ19PQkpTKTogTmV3IEJTUCBmb3IgTTY4MzMyQkNDLgoJKiBtNjhrL2NwdTMyYnVnLlM6IE5ldyBmaWxlLCBzdXBwb3J0IGZvciBjcHUzMmJ1ZyBtb25pdG9yIHVzZWQgYnkKCSAgYmNjLgoJKiBtNjhrL2JjYy5sZDogTGluayB3aXRoIGJjYy5vCgpGcmkgQXByIDIxIDE2OjE3OjE3IDE5OTUgIFRvcmJqb3JuIEdyYW5sdW5kICA8dGVnZUBydGwuY3lnbnVzLmNvbT4KCgkqIGhwcHJvL3ttaWxsaS5TLGRpdmlkZS5TLGRpdkkuUyxkaXZVLlMsbXVsdGlwbHkuUyx0ZXN0LWRpdi5jLAoJdGVzdC1keW5jYWxsLmMsdGVzdC1tdWwuYyxyZW1JLlMscmVtVS5TLGR5bmNhbGwuU306IERlbGV0ZS4KCSogaHBwcm8vZGl2Y25zdC1nZW5lcmljLyo6IERlbGV0ZS4KCSogaHBwcm8vZGl2Y25zdC1mYXN0Lyo6IERlbGV0ZS4KCSogaHBwcm8vTWFrZWZpbGUuaW46IERlbGV0ZSBqdW5rLgoKVHVlIEFwciAxOCAxMToyMjo0NyAxOTk1ICBKLlQuIENvbmtsaW4gIDxqdGNAcnRsLmN5Z251cy5jb20+CgoJKiBtNjhrL3tiY2MubGQgaWRwLmxkLCBtdm1lMTM1LmxkLCBtdm1lMTYybHgubGR9OiBSZW1vdmVkIHN0YWNrCgkgIHNlY3Rpb24sIG1vdmVkIF9fc3RhY2sgZGVmaW5pdGlvbiB0byB0aGUgdG9wIGxldmVsIGFuZCBzZXQgaXQKCSAgZXhwbGljaXRseSB0byB0aGUgdmFsdWUgYXBwcm9wcmlhdGUgdG8gdGhlIHRhcmdldCBib2FyZC4KCSAgQWRkZWQgX19lbmQgc3ltYm9sIChuZWVkZWQgZm9yIGEub3V0IHRvb2xjaGFpbnMpLgoKTW9uIEFwciAxNyAxMjo0ODo0OCAxOTk1ICBTdHUgR3Jvc3NtYW4gIChncm9zc21hbkBhbmRyb3MuY3lnbnVzLmNvbSkKCgkqIGhwcHJvL3c4OWsubGQ6ICBNb3ZlIF9zdGFjayB0byBiZWZvcmUgYGVuZCcgYW5kIGBfZW5kJyBzbyB0aGF0CgltYWxsb2MgZG9lc24ndCB0cmFzaCB0aGUgc3RhY2suCgkqIGhwcHJvL3c4OWstaW8uYyAob3V0Ynl0ZSk6ICBNYWtlIHRoaXMgYmUgdm9pZCwgYW5kIHJlbW92ZSByZXR1cm4KCXZhbHVlLCB3aGljaCBpcyB1c2VsZXNzIGFueXdheS4KCk1vbiBBcHIgMTcgMDY6MTM6NTUgMTk5NSAgSi5ULiBDb25rbGluICA8anRjQHJ0bC5jeWdudXMuY29tPgoKCSogbTY4ay9iY2MubGQ6IE5ldyBmaWxlLCBsaW5rZXIgc2NyaXB0IGZvciBNNjgzMzJCQ0MgQnVzaW5lc3MgQ2FyZAoJICBDb21wdXRlci4KCSogbTY4ay9NYWtlZmlsZS5pbjogSW5zdGFsbCBCQ0MgbGlua2VyIHNjcmlwdC4KCgkqIE1ha2VmaWxlLmluOiBGaXhlZCB0eXBvLgoKCSogaHBwcm8vY29uZmlndXJlLmluOiBDaGFuZ2VkIEFDX0lOSVQgZmlsZSBmcm9tIGNydDAucyB0byBjcnQwLlMuCgkqIGhwcHJvL2NvbmZpZ3VyZTogcmVnZW5lcmF0ZWQuCgpNb24gQXByIDE3IDAwOjAyOjE1IDE5OTUgIFN0dSBHcm9zc21hbiAgKGdyb3NzbWFuQGFuZHJvcy5jeWdudXMuY29tKQoKCSogaHBwcm8vb3A1MG4ubGQ6ICBEZWZpbmUgX3N0YWNrIGV4cGxpY2l0bHkgaW5zdGVhZCBvZiBpbXBsaWNpdGx5Cgl2aWEgY29tbW9uLgoJKiBocHByby97dzg5ay1pby5jIHc4OWsuaH06ICBVc2UgcG9pbnRlcnMgdG8gdm9sYXRpbGUgZm9yIGlucCBhbmQKCW91dHAuICBVc2UgY29ycmVjdCBwb3J0IG51bWJlcnMgZm9yIENPTTEgc2VyaWFsIHBvcnQuCgpGcmkgQXByIDE0IDE2OjU2OjM1IDE5OTUgIEtlbiBSYWVidXJuICA8cmFlYnVybkBjdWpvLmN5Z251cy5jb20+CgoJKiBtNjhrL21jNjhlYy5jIChfZXhpdCk6IFVzZSBleHRlbmRlZCBhc20gY29uc3RydWN0IHRvIGdldCB0aGUKCXByb3BlciBpbW1lZGlhdGUtb3BlcmFuZCBzeW50YXggZm9yIHdoYXRldmVyIHRoZSB0YXJnZXQgYXNzZW1ibGVyCgljb25maWd1cmF0aW9uIGlzLgoJKiBtNjhrL212bWUuUyAoX19JTU1FRElBVEVfUFJFRklYX18sIElNTSk6IENvcHkgYW5kIHVzZSBtYWNybwoJZGVmaW5pdGlvbnMgYXMgaW4gbTY4ay9jcnQwLlMuCgpUaHUgQXByIDEzIDE2OjQ4OjQ2IDE5OTUgIEFuZ2VsYSBNYXJpZSBUaG9tYXMgIDxhbmdlbGFAY2lyZGFuLmN5Z251cy5jb20+CgoJKiBNYWtlZmlsZS5pbjogZml4ZWQgY2xlYW4gcnVsZXMgc3VjaCB0aGF0IHRoZXkgZG8gbm90IHRyeSB0bwoJICBjbGVhbiAke1NVQkRJUlN9IGlmIGxpYmdsb3NzIG5vdCBzdXBwb3J0ZWQgb24gdGhhdCB0YXJnZXQuCgpUaHUgQXByIDEzIDEzOjM5OjQ2IDE5OTUgIEouVC4gQ29ua2xpbiAgPGp0Y0BydGwuY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQXBwZW5kIG5ldyBzdWJkaXJlY3RvcmllcyB0byAke2NvbmZpZ2RpcnN9LgoJICAoZ28zMi0qLSopOiBSZW1vdmVkLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKCSogbTY4ay9tdm1lMTYybHgubGQ6IFB1dCBfX3N0YWNrIGluIHJhbSwgZXZlbiB0aG91Z2ggaXQncyBub3QKCSAgbG9hZGVkLgoKCSogbTY4ay9NYWtlZmlsZS5pbjogRG9uJ3QgaGlkZSBob3cgQlNQIG9iamVjdHMgYXJlIGJ1aWx0LgoKCSogZ2x1ZS5jIChwcmludCwgcHV0bnVtKTogZGVjbGFyZWQgdm9pZC4KCgkqIHtocHBybyxtNjhrfS9NYWtlZmlsZS5pbjogVXNlICR7Q0NfRk9SX1RBUkdFVH0gdG8gbGluayBleGVjdXRhYmxlcy4KCSAgKExJQlNfRk9SX1RBUkdFVCk6IFJlbW92ZWQuCgoJKiBjb25maWcve2RlZmF1bHQubWgsIGRvcy5taH0gKE5FV0xJQl9DRkxBR1MsIE5FV0xJQl9MREZMQUdTKTogTmV3CgkgIG1ha2UgdmFyaWFibGVzLCBleHBhbmRzIHRvIGNvbXBpbGVyIGZsYWdzIHRvIGZpbmQgaGVhZGVycyBhbmQKCSAgbGlicmFyaWVzIGlmICR7b2Jqcm9vdH0vbmV3bGliIGlzIHByZXNlbnQuCgkgIChDRkxBR1NfRk9SX1RBUkdFVCk6IEFkZGVkICR7TkVXTElCX0NGTEFHU30uCgkgIChMREZMQUdTX0ZPUl9UQVJHRVQpOiBBZGRlZCAke05FV0xJQl9MREZMQUdTfS4KCSAgKExJQkNfRk9SX1RBUkdFVCwgTElCTV9GT1JfVEFSR0VULCBMSUJHQ0NfRk9SX1RBUkdFVCwKCSAgTElCU19GT1JfVEFSR0VUKTogUmVtb3ZlZC4KClRodSBBcHIgMTMgMTE6NTE6MTcgMTk5NSAgVG9yYmpvcm4gR3Jhbmx1bmQgIDx0ZWdlQGFkZGVyLmN5Z251cy5jb20+CgoJKiBtNjhrL01ha2VmaWxlLmluIChpbnN0YWxsKTogVXNlIGNvcnJlY3QgbmFtZXMgZm9yIE1WTUUqIHZhcmlhYmxlcy4KCSogY29uZmlndXJlLmluOiBEZWxldGUgYHVua25vd24nIGZyb20gbTY4KiBjYXNlLgoKVGh1IEFwciAxMyAxMTo0NzowMSAxOTk1ICBKLlQuIENvbmtsaW4gIDxqdGNAcnRsLmN5Z251cy5jb20+CgoJKiBtNjhrL2NydDAuUzogaW5pdGlhbGl6ZSBzdGFjayBwb2ludGVyIHRvIF9fc3RhY2sgYmVmb3JlIGNyZWF0aW5nCgkgIGluaXRhbCBzdGFjayBmcmFtZS4KCgkqIG02OGsve2lkcC5sZCwgbXZtZTEzNS5sZCwgbXZtZTE2Mmx4LmxkfTogTW92ZSBfX3N0YWNrIG91dCBvZgoJICBic3MsIGFuZCBpbnRvIGl0cyBvd24gc2VnbWVudCB3aXRoIGFuIGFkZHJlc3MgYXQgdG9wIG9mIFJBTS4KCldlZCBBcHIgMTIgMTI6MzY6MjggMTk5NSAgSi5ULiBDb25rbGluICA8anRjQHJ0bC5jeWdudXMuY29tPgoKCSogey4sZXg5M3gsaHA3NHgsaHBwcm8sbTY4ayxyMzAwMH0ve01ha2VmaWxlLGNvbmZpZ3VyZX0uaW46CgkgIGNvbnZlcnRlZCB0byBhdXRvY29uZi4KCSogey4sZXg5M3gsaHA3NHgsaHBwcm8sbTY4ayxyMzAwMH0vY29uZmlndXJlOiBOZXcgZmlsZXMsIGdlbmVyYXRlZAoJICBmcm9tIGNvbmZpZ3VyZS5pbiB3aXRoIGF1dG9jb25mIDIuMy4KCk1vbiBBcHIgMTAgMjI6NTA6NDggMTk5NSAgSi5ULiBDb25rbGluICAoanRjQHJ0bC5jeWdudXMuY29tKQoKCSogbTY4ay97aWRwLmxkLCBtdm1lMTM1LmxkLCBtdm1lMTYybHgubGR9OiBSZXZlcnQgbGFzdCBjaGFuZ2UsCgkgIENPTlNUUlVDVElORyBhbmQgUkVMT0NBVElORyBvbmx5IHdvcmsgZm9yIGxpbmtlciBzY3JpcHRzIGJ1aWx0CgkgIGZyb20gbGQvc2NyaXB0dG1wbC8qLgoKCSogbTY4ay97aWRwLmxkLCBtdm1lMTM1LmxkLCBtdm1lMTYybHgubGR9OiBDaGFuZ2VkIHRvIHVzZQoJICBDT05TVFJVQ1RJTkcgYW5kIFJFTE9DQVRJTkcgZXhwcmVzc2lvbnMgc28gdGhhdCB0aGUgY3Rvci9kdG9yCgkgIHRhYmxlcyBhbmQgZXRleHQsIGVkYXRhLCBhbmQgZW5kIHZhcmlhYmxlcyBhcmUgb25seSBkb25lIHdoZW4KCSAgYXBwcm9wcmlhdGUuCgpGcmkgQXByICA3IDE3OjMwOjM1IDE5OTUgIFN0dSBHcm9zc21hbiAgKGdyb3NzbWFuQGFuZHJvcy5jeWdudXMuY29tKQoKCSogY29uZmlnL2RlZmF1bHQubWg6ICBVc2UgJCR7c3Jjcm9vdH0gaW5zdGVhZCBvZiAke1NSQ1JPT1R9IHRvIGdldAoJaW5oZXJpdGVkIHZhbHVlLgoJKiBocHByby9jcnQwLlM6ICBSZW1vdmUgc3RhdGljIGRlZmluaXRpb25zIG9mIF9zdGFjayBhbmQgJGdsb2JhbCQuCglMZXQgdGhlIGxpbmtlciBzY3JpcHQgZGVmaW5lIHRoZW0gaW4gdGhlIEJTUyBzZWdtZW50LgoJKiBocHByby93ODlrLmxkOiAgVXNlIE1FTU9SWSB0byBkZWZpbmUgbWVtb3J5IHJlZ2lvbnMuICBBZGQgZGVmcwoJZm9yICRnbG9iYWwkIGFuZCBfc3RhY2sgaW4gdGhlIGFwcHJvcHJpYXRlIHNlZ21lbnRzLgoKVHVlIEFwciAgNCAxODoyNzozNyAxOTk1ICBKYXNvbiBNb2xlbmRhICAocGh5ZGVhdXhAY3lnbnVzLmNvbSkKCgkqIE1ha2VmaWxlLmluIChGTEFHU19UT19QQVNTKTogcGFzcyBkb3duIE1BS0VJTkZPLgoKVGh1IE1hciAzMCAxODoxMDo1MyAxOTk1ICBLdW5nIEhzdSAgPGt1bmdAbWV4aWNhbi5jeWdudXMuY29tPgoKCSogZXg5M3gvZXg5M3gubGQ6IEFkZCBjcnQwLm8gaW4gSU5QVVQuCgkqIGV4OTN4L3NwYXJjbC1zdHViLmM6IEFkZCBub3AgYWZ0ZXIgYmcgaW5zbi4KCSogZXg5M3gvc3BhcmMtc3R1Yi5jOiBBZGQgJiAweDdmIG1hc2sgdG8gYWxsIGNoYXJhY3RlciBpbnB1dC4KClRodSBNYXIgMzAgMTU6MjI6MzEgMTk5NSAgUm9iIFNhdm95ZSAgPHJvYkBydGwuY3lnbnVzLmNvbT4KCgkqIHtocHBybyxtNjhrLGV4OTN4LHRlc3RzdWl0ZS9saWJnbG9zc30vY29uZmlndXJlLmluOiBBZGQgU1JDUk9PVAoJdmFyaWFibGUuCgkqIHtocHBybyxtNjhrLGV4OTN4LHRlc3RzdWl0ZS9saWJnbG9zc30vTWFrZWZpbGUuaW46IEFkZCBTUkNST09UCgl2YXJpYWJsZS4KCSogY29uZmlnL2RlZmF1bHQubWg6IFVzZSBTUkNST09UIHRvIGZpbmQgdGhlIG5ld2xpYiBpbmNsdWRlcy4KClR1ZSBNYXIgMjggMTk6NTQ6MjYgMTk5NSAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluLCB0ZXN0c3VpdGUvY29uZmlndXJlLmluOiBBZGQgU1JDUk9PVCB2YXJpYWJsZS4KCSogZ2x1ZS5jOiBDaGFuZ2UgImNoYXIgKnBhdGgiIHRvICJjb25zdCBjaGFyICpwYXRoIiBzbyBpdCB3b3JrcwoJd2l0aCB0aGUgY2hhbmdlcyBzdGF0LmguCgpGcmkgTWFyIDI0IDE3OjI5OjA4IDE5OTUgIEt1bmcgSHN1ICA8a3VuZ0BtZXhpY2FuLmN5Z251cy5jb20+CgoJKiBleDkzeC9leDkzeC5sZDogVGhlIHN0dWJzIG1vZHVsZSBub3cgY2FuIGhhdmUgZGlmZmVyZW50IG5hbWVzIGZvcgoJZGlmZmVyZW50IFNQQVJDbGl0ZSBjaGlwcy4gVXNlIGRlZmF1bHQgb25lIHdoaWNoIGlzIHNsaXRlOTMwLm8uCgpNb24gTWFyIDIwIDE1OjQ5OjQ2IDE5OTUgIEouVC4gQ29ua2xpbiAgPGp0Y0BydGwuY3lnbnVzLmNvbT4KCgkqIG02OGsvbWM2OGVjLmMgKF9leGl0KTogQ2hhbmdlZCB0byB0YWtlIGludGVnZXIgc3RhdHVzIGFyZ3VtZW50LgoKRnJpIE1hciAxNyAxNzo0ODo0MiAxOTk1ICBLdW5nIEhzdSAgPGt1bmdAbWV4aWNhbi5jeWdudXMuY29tPgoKICAgICAgICAqIGNvbmZpZy9kZWZhdWx0Lmg6IGFkZCAtSS4gdG8gSU5DTFVERVMuCgkqIGV4OTN4L3NhbGliLmM6IHRvIGluY2x1ZGUgc3BhcmNsaXRlLmguCgkqIGV4OTN4L3NwYXJjbGl0ZS5oOiBuZXcgZmlsZSBjb3BpZWQgZnJvbSBnZGIvc3BhcmNsaXRlLgoKCSogY29uZmlnL2RlZmF1bHQubWg6IEZpeCBJTkNMVURFUyB0byBvbmUgbGV2ZWwgbGVzcyAnLi4vJy4KCk1vbiBNYXIgMTMgMTc6MDU6MzUgMTk5NSAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSogdGVzdHN1aXRlL2xpYmdsb3NzLmFsbC9taXNjLmM6IE1pc2MgYnVnIHJlcG9ydHMsIG1vc3RseQoJc29mdC1mbG9hdCB0ZXN0cy4KCldlZCBNYXIgIDggMTk6MDA6MTggMTk5NSAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSogbTY4ay97Y3J0MC5TLCBtdmVtMTM1LmxkLCBtdm1lMTYybHgubGQsIGlkcC5sZH06IFNldHVwIHRoZSBzdGFjawoJaW4gdGhlIGxpbmtlciBzY3JpcHQuIFVzZSBhIG1hY3JvIHRvIGNvdmVyIHVzaW5nICcjJyBvciAnJicgZm9yCglpbW1lZGlhdGUgdmFsdWVzLgoJKiBtNjhrL3ttdm1lMTM1LWFzbS5TLCBtdm1lMTYybHgtYXNtLlN9OiBVc2UgYSBtYWNybyB0byBjb3ZlcgoJdXNpbmcgJyMnIG9yICcmJyBmb3IgaW1tZWRpYXRlIHZhbHVlcy4KCSogdGVzdHN1aXRlL2xpYmdsb3NzLmFsbC9pby5jOiBBZGQgYSB0ZXN0IGZvciByZWFkKCkuCgpUaHUgRmViIDE2IDIxOjEzOjM0IDE5OTUgIFJvYiBTYXZveWUgIDxyb2JAZGFya3N0YXIuY3lnbnVzLmNvbT4KCgkqIGdsdWUuYzogTWFrZSB1c2UgX2Fuc2kuaCwgbW92ZSB0byB0b3AgbGV2ZWwgbGliZ2xvc3MgZGlyZWN0b3J5Cglmb3JtIGFsbCBvdGhlciBkaXJlY3Rvcmllcy4KCSogTWFrZWZpbGUuaW46IEFsbCBNYWtlZmlsZXMgaGFkIFNDUklQVFMgYW5kIE9CSlJPT1QgYWRkZWQuCgkqIHttNjhrLGhwcHJvLHIzMDAwKS9NYWtlZmlsZS5pbjogQWxsIGJ1aWxkIHRoZSB0ZXN0IHRoZSBzYW1lIHdheQoJdXNpbmcgT0JKUk9PVC4KCSogY29uZmlndXJlLmluOiBBbGwgY29uZmlndXJlLmluIG5vdyBlZGl0IHRoZSB2YWx1ZSB0byBPQkpST09UIGluCgl0aGUgTWFrZWZpbGVzIHRoZXkgcHJvZHVjZS4KCSogY29uZmlnL2RlZmF1bHQubWg6IFVzZSBPQkpST09UIGZvciBwYXRocyB0byB0ZXN0IGZvciBmcmVzaAoJYmluYXJpZXMuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHRoZSB0ZXN0c3VpdGUgZGlyZWN0b3J5LgoJKiB0ZXN0c3VpdGUvY29uZmlnL3ttNjhrLm10LG1pcHMubXR9OiBOZXcgdGFyZ2V0IHN1cHBvcnQgZm9yCglNVk1FMTM1LCBJRFAsIGFuZCBBcnJheSB0YXJnZXRzLgoKVGh1IEZlYiAgOSAyMTo0NTozMyAxOTk1ICBSb2IgU2F2b3llICA8cm9iQGRhcmtzdGFyLmN5Z251cy5jb20+CgoJKiB0ZXN0c3VpdGUvbGliZ2xvc3MuYWxse3ZhcmFyZ3MuYyx2YXJhcmdzMi5jfTogVGVzdCBjYXNlcyBmb3IKCXRyYWRpdGlvbmFsIGFuZCBBTlNJIHZhcmFyZ3MuICh3aGljaCBjdXJyZW50bHkgZmFpbCkKCSogTWFrZWZpbGUuaW46IEJ1aWxkIGludGVsbGlnZW50bHkgYW5kIHVzZSBkZXBlbmRhbmNpZXMgc28gd2UKCWRvbid0IHJlYnVpbGQgdGhlIHdvcmxkIGZvciBlYWNoIHRlc3QgcnVuLgoJKiBjb25maWd1cmUuaW46IE1ha2UgYSAuZ2RiaW5pdCBmaWxlIHRvIHJ1biB0aGUgdGVzdHMgYW5kIGxvYWQgdmlhCglnZGIuCgpXZWQgTWFyICA4IDIyOjM1OjI5IDE5OTUgIEtlbiBSYWVidXJuICA8cmFlYnVybkBjdWpvLmN5Z251cy5jb20+CgoJKiBtNjhrL2lkcC5sZDogT21pdCBTVEFSVFVQIGxpbmUsIHNpbmNlIGNydDAubyBpcyBiZWluZyBzdXBwbGllZAoJYnkgZ2NjLgoKVGh1IEZlYiAyMyAxMjowODoxOSAxOTk1ICBLZW4gUmFlYnVybiAgPHJhZWJ1cm5AY3Vqby5jeWdudXMuY29tPgoKCSogbTY4ay9jcnQwLlM6IFVzZSAnJicgaW5zdGVhZCBvZiAnIycgZm9yIGltbWVkaWF0ZSBvcGVyYW5kcy4KCSogbTY4ay9tYzY4ZWMuYzogRGl0dG8sIGluIGFzbSBzdGF0ZW1lbnRzLgoJKiBtNjhrL212bWUuUzogRGl0dG8uCgpXZWQgRmViICAxIDIzOjU1OjM5IDE5OTUgIEFuZ2VsYSBNYXJpZSBUaG9tYXMgIDxhbmdlbGFAY2lyZGFuLmN5Z251cy5jb20+CgoJKiBNYWtlZmlsZS5pbiAoYWxsKTogYWRkZWQgImVsc2UiIHN0YXRlbWVudHMgZm9yIFVsdHJpeCB0byB3b3JrCgpGcmkgSmFuIDI3IDEwOjQ4OjIwIDE5OTUgIFJvYiBTYXZveWUgIDxyb2JAZGFya3N0YXIuY3lnbnVzLmNvbT4KCgkqIHRlc3R1aXRlL3tjb25maWcsbGliLGxpYmdsb3NzLmFsbH06IERlamFHbnUgdGVzdGluZyBzdXBwb3J0LgoJKiB0ZXN0c3VpdGUvY29uZmlnL3N1cHBvcnQuYzogQSBtaW5pbWFsIHRlc3RpbmcgQVBJIGZvciBtaW5pbWFsCgl0YXJnZXRzLgoJKiB0ZXN0c3VpdGUvY29uZmlnL2hwcGEubXQ6IFNldCBidWlsZCBmbGFncyBmb3IgUFJPIHRhcmdldHMuCgkqIGxpYmdsb3NzLmFsbC97ZmxvYXQuYyxtZW1vcnkuYyxpby5jLGRvdWJsZS5jLG1hdGguYyxhcnJheS5jfToKCVRlc3QgY2FzZXMgZm9yIGxpYmdsb3NzIGFuZCBzb2Z0LWZsb2F0LgoKCSogaHBwcm8ve3c4OWsubGQsb3A1MG4ubGR9OiBTZXQgLnRleHQgaGVyZSBub3cuCgpXZWQgSmFuIDI1IDIxOjE2OjM4IDE5OTUgIFJvYiBTYXZveWUgIDxyb2JAZGFya3N0YXIuY3lnbnVzLmNvbT4KCgkqIHRlc3RzdWl0ZS97Y29uZmlnLGxpYixsaWJnbG9zcy5hbGx9OiBUaGUgYmVnaW5uaW5ncyBvZiBhIHRlc3QKCXN1aXRlIGZvciBsb3cgbGV2ZWwgc3R1ZmYuIEEgZmV3IHRlc3QgY2FzZXMgbm93IGFsbCBidWlsZC4KClRodSBKYW4gMTIgMTM6MDI6MTIgMTk5NSAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSogY29uZmlnL2RlZmF1bHQubWg6IENoYW5nZSBkZWZhdWx0IHBhdGggZm9yIGxpbmtpbmcgaW4gYSBmcmVzaGx5CglidWlsdCBsaWJjLmEsIGxpYm0uYSwgbGliZ2NjLmEgdG8gd29yayB3aXRoIC1tc2lmdC1mbG9hdC4KCgkqIGhwcHJvL01ha2VmaWxlLmluOiBTZXQgTVVMVElMSUIgc28gdGhlIC1tc29mdC1mbG9hdCBzYWZlCglsaWJyYXJpZXMgZ2V0IHVzZWQuCgoJKiBtNjhrL01ha2VmaWxlLmluOiBVc2UgZXhwbGljaXQgcnVsZXMsIHJhdGhlciB0aGFuIHJlZGVmaW5pbmcKCS5jLm8uIFRoaXMgaXMgdG8gZm9yY2UgY29tcGlsaW5nIHdpdGggLW02ODAwMC4KCk1vbiBKYW4gIDkgMTU6Mjg6MTAgMTk5NSAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSoge2hwcHJvLG02OGsscjMwMDB9L2dsdWUuYzogUmV0dXJuIGNvcnJlY3QgdmFsdWUgb24gcmVjZWl2aW5nIGEKCSdcbicgb3IgJ1xyJy4KCkZyaSBEZWMgMzAgMTU6MDU6MDMgMTk5NCAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSogZG9jLCBkb2MvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbjogTmV3IGRpcmVjdG9yeS4KCSogZG9jL3BvcnRpbmcudGV4aTogTmV3IG1hbnVhbCB0aGF0IGV4cGxhaW5zIHBvcnRpbmcgdGhlIEdOVSB0b29scwoJdG8gZW1iZWRkZWQgc3lzdGVtcy4KCk1vbiBEZWMgMTkgMTY6MDU6MzcgMTk5NCAgS3VuZyBIc3UgIDxrdW5nQG1leGljYW4uY3lnbnVzLmNvbT4KCgkqIGV4OTN4L01ha2VmaWxlLmluOiBVc2Ugc3BhcmNsLXN0dWIuYyBpbnN0YWVkIG9mIHNwYXJjLXN0dWIuYywKCXdoaWNoIGhhcyBoYXJkd2FyZSBicmVha3BvaW50IHN1cHBvcnQuCgkqIGV4OTN4L01ha2VmaWxlLmluOiBBbHNvIGdlbmVyYXRlIHNsaXRlOTMwLm8gYW5kIHNsaXRlOTMxLm8sIGluc3RlYWQKCXNsaXRlLm8uCgkqIGV4OTN4L3NwYXJjbC1zdHViLmM6IE5ldyBmaWxlLgoJKiBleDkzeC9zcGFyYy1zdHViLmM6IFVzZSBsYXRlc3QgZnJvbSBnZGIvc3BhcmNsaXRlIGRpcmVjdG9yeS4KCkZyaSBEZWMgMTYgMTU6MTc6MTQgMTk5NCAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSogcjMwMDAvY3J0MC5TOiBaZXJvIHRoZSBic3Mgc2VjdGlvbiBieSB3b3Jkcy4KCgkqIHIzMDAwL01ha2VmaWxlLmluOiBBZGQgaW4gdGhlIHJlc3Qgb2YgdGhlIHN1cHBvcnQgY29kZSBmb3IgdGhlCglBcnJheSBUZWNoIGJvYXJkLgoKCSogcjMwMDAvYXJyYXkubGQ6IFNldCB0aGUgbWVtb3J5IG1hcCBmb3IgdGhlIEFycmF5IFRlY2ggTFNJCglwcm90b3R5cGUuCgoJKiByMzAwMC9hcnJheS1pby5jOiBMb3dlc3QgbGV2ZWwgSS9PIGNvZGUgZm9yIEFycmF5IFRlY2ggTFNJCglwcm90b3R5cGUgdXNpbmcgUk9NIGVudHJ5IHBvaW50cy4KCldlZCBEZWMgMTQgMTA6MjM6NDEgMTk5NCAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSogaHBwcm8vY3J0MC5TOiBBZGQgX3NyNGV4cG9ydCBmdW5jdGlvbiBzbyBHREIgY2FsbHMgd29yay4KCgkqIGhwcHJvL01ha2VmaWxlLmluOiBMaW5rIGluIGxpYmMuYSB0d2ljZSBzbyBhdGV4aXQgd29ya3MoKS4KCgkqIGhwcHJvL2dsdWUuYzogRG9uJ3Qgc3R1YiBvdXQgX19tYWluIGFueW1vcmUuCgpUdWUgRGVjIDEzIDE1OjQyOjIzIDE5OTQgIFJvYiBTYXZveWUgIDxyb2JAZGFya3N0YXIuY3lnbnVzLmNvbT4KCgkqIHIzMDAwL01ha2VmaWxlLmluOiBMb29rIGZvciBib3RoIGxpYmdjYzIgYW5kIGxpYmdjYy4KCgkqIHIzMDAwL2dsdWUuYyxjcnQwLlMsdGVzdC5jOiBOZXcgc3VwcG9ydCBmb3IgZm9yIG1pcHMuCgoJKiBjb25maWd1cmUuaW46IENvbmZpZ3VyZSByMzAwMCBkaXIgZm9yIGEgbWlwcyBjaGlwLgoKVHVlIERlYyAgNiAxNToyNDo0MSAxOTk0ICBSb2IgU2F2b3llICA8cm9iQGRhcmtzdGFyLmN5Z251cy5jb20+CgoJKiBocHByby9kaXZjbnN0LWdlbmVyaWMvKi5TLiBBZGQgLmV4aXQgYW5kIC5wcm9jZW5kIHNvIGl0J2xsCgljb21waWxlLgoKCSogaHBwcm8vTWFrZWZpbGUuaW46IExpbmsgaW4gdGhlIHJlc3Qgb2YgdGhlIG1pbGxpY29kZSByb3V0aW5lcy4KCk1vbiBOb3YgMjEgMjA6MjE6NDggMTk5NCAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSogaHBwcm8vY29uZmlndXJlLmluLGNvbmZpZy9kb3MubWg6IFdvcmsgZm9yIGEgY2FuYWRpYW4gY3Jvc3MsCgkgc2luY2UgeGdjYyBpcyBmb3IgdGhlIHdyb25nIGFyY2hpdGVjdHVyZS4KClRodSBOb3YgMTcgMjE6MDc6NTIgMTk5NCAgUm9iIFNhdm95ZSAgPHJvYkBkYXJrc3Rhci5jeWdudXMuY29tPgoKCSogY29uZmlnL2RlZmF1bHQubWg6IEZpbmQgdGhlIGNvcnJyZWN0IGxpYmdjYzIuYS4KCgkqIE1ha2VmaWxlLmluOiBMaW5rIGluIGxpYmdjYzIuYSBieSBkZWZhdWx0LiBCdWlsZCBuZXcgbWlsbGljb2RlCglyb3V0aW5lcy4KCgkqIGRpdkkuUywgZGl2VS5TLCBtdWx0aXBseS5TLCByZW1JLlMsIHJlbVUuUywgdGVzdC1kaXYuYywKCXRlc3QtZHluY2FsbC5jLCB0ZXN0LW11bC5jOiBOZXcgbWlsbGljb2RlIGZpbGVzIGZvciBsb3cgbGV2ZWwgbWF0aAoJc3VwcG9ydC4KCgkqIHRlc3QuYzogVXNlIHByaW50ZiBzbyBtaWxsaWNvZGUgZ2V0cyBleGVyY2lzZWQuCgoJKiBkaXZjbnN0LWZhc3QvZGl2VV8xMC5TLCBkaXZVXzEyLlMsIGRpdlVfMy5TLCBkaXZVXzUuUywgZGl2VV82LlMsCglkaXZVXzkuUzogRmFzdCB2ZXJzaW9ucyBvZiBzb21lIGRpdmlzaW9uIHJvdXRpbmVzLgoKCSogZGl2Y25zdC1nZW5lcmljL2RpdklfMTQuUywgZGl2SV81LlMsIGRpdklfOS5TLCBkaXZVXzE0LlMKCWRpdlVfNS5TLCBkaXZVXzkuUyBkaXZJXzEwLlMsIGRpdklfMTUuUywgZGl2SV82LlMsIGRpdlVfMTAuUywKCWRpdlVfMTUuUywgZGl2VV82LlMgZGl2SV8xMi5TLCBkaXZJXzMuUywgZGl2SV83LlMsIGRpdlVfMTIuUywKCWRpdlVfMy5TLCBkaXZVXzcuUzogWWV0IG1vcmUgbWlsbGljb2RlIHJvdXRpbmVzLgoKV2VkIE5vdiAxNiAxNToyNTowMyAxOTk0ICBSb2IgU2F2b3llICAocm9iQGN5Z251cy5jb20pCgoJKiBjb25maWcvZGVmYXVsdC5taDogQWRkIGRlZmF1bHQgc2VhcmNoZXMgZm9yIHRoZSBjb3JyZWN0IGxpYmMgYW5kCglsaWJtLgoKCSogTWFrZWZpbGUuaW46IFVzZSAke0xJQkNfRk9SX1RBUkdFVH0gYW5kICR7TElCTV9GT1JfVEFSR0VUfQoKCSogaHBwcm8vdzg5ay5sZCxvcDUwbi5sZCxNYWtlZmlsZS5pbjogRG9uJ3QgdHJ5IHRvIGxpbmsgaW4gbGliYwoJZm9yIHRoZSB0ZXN0IHByb2dyYW0uCgpUdWUgTm92ICA4IDE3OjEyOjM1IDE5OTQgIFJvYiBTYXZveWUgIDxyb2JAcnRsLmN5Z251cy5jb20+CgoJKiBtNjhrL2dsdWUuYzogUmVtb3ZlIGVycm5vIHNvIHRoZXJlJ3Mgbm8gbGliYyBkZXBlbmRhbmNpZXMuCgoJKiBtNjhrL212bWUxMzUtYXNtLlM6IE1vdmVkIHNldHVwX3ZlY3RvcnMgYW5kIGV4Y2VwdGlvbkhhbmRsZXIKCWZyb20gbXZtZS5TIHNvIHRoZSBsaWJyYXJ5IGNhbiBsaW5rIHdpdGhvdXQgdGhlIHN0dWIuCgoJKiBtNjhrOiBOZXcgZGlyZWN0b3J5LiBNZXJnZSB0aGUgaWRwLCBzaGFyZWQsIGFuZCBtdm1lMTM1CglkaXJlY3RvcmllcyBpbnRvIG9uZSBwbGFjZS4KCgkqIGNvbmZpZy9kZWZhdWx0Lm1oOiBVc2UgQ0NfRk9SX1RBUkdFVCBmb3IgLlMgZmlsZXMgc28gdGhlCglwcmVwcm9jZXNzb3IgYWN0dWFsbHkgZ2V0cyBydW4uCgoJKiBleDkzeC9jcnQwLnMsIGV4OTN4L3NhbGliLmM6IE1pZ3JhdGUgY2hhbmdlcyBmcm9tIGdkYi9zcGFyY2xpdGUuCgpGcmkgU2VwIDE2IDIxOjIyOjU3IDE5OTQgIFJvYiBTYXZveWUgIChyb2JAZGFya3N0YXIuY3lnbnVzLmNvbSkKCgkqIHNoYXJlZCwgaWRwLCBtdm1lMTM1OiBTdXBwb3J0IGZvciBNb3Rvcm9sYSBJRFAgYW5kIE1WTUUxMzUgbTY4awoJYmFzZWQgdGFyZ2V0IGJvYXJkcy4gTW92ZWQgZnJvbSBuZXdsaWIvc3R1Yi4KCgkqIGV4OTN4OiBNb3ZlIGZyb20gbmV3bGliL3N0dWIvZXg5M3guIFNwYXJjbGl0ZSBleDkzeAoJYm9hcmQgc3VwcG9ydC4KCgkqIGhwNzR4LCBocHBybzogQWRkIEhQIDc0MiAmIGhwNzQzIGNvZGUgImFzIGlzIiB3aXRoIGEgd29ya2luZyBidXQKCXVuZmluaXNoZWQgZ2RiIHN0dWIuIEFkZCBocHBybyBmb3IgdGhlIFdpbkJpbmQgYW5kIE9raSBQYSB0YXJnZXQKCWJvYXJkcy4KCgkqIGxpYmdsb3NzOiBDcmVhdGlvbi4gQSBsaWJyYXJ5IGZvciBib2FyZCBzdXBwb3J0IHBhY2thZ2VzLiBUaGUKCUdudSBsb3ctbGV2ZWwgT1MgU3VwcG9ydC4gTW92ZSBtdm1lMTM1L0NoYW5nZUxvZyB0byBoZXJlLgoKV2VkIFNlcCAyOSAyMDo0MjozNCAxOTkzICBSb2IgU2F2b3llICAocm9iQGRhcmtzdGFyLmN5Z251cy5jb20pCgogICAgICAgICogbXZtZTEzNS9jcnQwLlMsIG12bWUxMzUvZ2x1ZS5jOiBNb3ZlZCB0byAuLi9zaGFyZWQuCgpUaHUgQXByICAxIDEzOjE4OjE1IDE5OTMgIElhbiBMYW5jZSBUYXlsb3IgIChpYW5AY3lnbnVzLmNvbSkKCiAgICAgICAgKiBtdm1lMTM1L212bWUuUzogUmVuYW1lZCBleGNlcHRpb25oYW5kbGVyIHRvIGV4Y2VwdGlvbkhhbmRsZXIsIHdoaWNoIGlzCiAgICAgICAgd2hhdCBtdm1lMTM1LXN0dWIuYyBleHBlY3RzLgoKVHVlIE1hciAzMCAxODo0NDo0MyAxOTkzICBEb3VnIEV2YW5zICAoZGplQHBvc2VpZG9uLmN5Z251cy5jb20pCgogICAgICAgICogbXZtZTEzNS9tdm1lMTM1LXN0dWIuYyAoaW5pdGlhbGl6ZVJlbWNvbUVycm9yRnJhbWUpOiBSZW1vdmUgcmVmZXJlbmNlIHRvCiAgICAgICAgX19TVERDX18uCgpUdWUgRGVjIDI5IDEwOjE1OjMzIDE5OTIgIElhbiBMYW5jZSBUYXlsb3IgIChpYW5AY3lnbnVzLmNvbSkKCiAgICAgICAgKiBtdm1lMTM1L212bWUxMzUtYXNtLlM6IG5ldyBmaWxlLgogICAgICAgIG12bWUxMzUtc3R1Yi5jOiBtb3ZlZCBhbGwgYXNzZW1ibGVyIHJvdXRpbmVzIGludG8gbXZtZTEzNS1hc20uUy4KICAgICAgICBNYWtlZmlsZS5pbjogYnVpbGQgbXZtZTEzNS1zdHViLm8uCgogICAgICAgICogQ2hhbmdlTG9nOiBjcmVhdGVkLgo=