dHJlZSA3MDkzMzkwNDFjOGQxMGQ4MzFhN2MwY2E2YzRlYWQxMjFlZjdiZjM1CnBhcmVudCAwNjIzYTZmM2NmYTA5MzgyODhmMzI5Mzk2NjYyYTk3ZWNkMTRjZTlmCmF1dGhvciBBbGV4YW5kcmUgSnVsbGlhcmQgPGp1bGxpYXJkQHdpbmVocS5vcmc+IDg4NjM1ODAwNyArMDAwMApjb21taXR0ZXIgQWxleGFuZHJlIEp1bGxpYXJkIDxqdWxsaWFyZEB3aW5laHEub3JnPiA4ODYzNTgwMDcgKzAwMDAKClJlbGVhc2UgOTgwMjAxCgpTdW4gRmViICAxIDEzOjI0OjU0IDE5OTggIEFsZXhhbmRyZSBKdWxsaWFyZCAgPGp1bGxpYXJkQGxyYy5lcGZsLmNoPgoKCSogW2ZpbGVzL2RyaXZlLmNdCglBZGRlZCBEZXZpY2U9IHBhcmFtZXRlciB0byBkcml2ZSBjb25maWd1cmF0aW9uLgoKCSogW2lmMTYzMi9yZWxheS5jXQoJVGhyb3coKSBhbmQgQ2F0Y2goKSBub3cgdXNlIHRoZSBjb3JyZWN0IENBVENIQlVGIGxheW91dCAodW50ZXN0ZWQpLgoKCSogW3Rvb2xzL2J1aWxkLmNdIFtpbmNsdWRlL3N0YWNrZnJhbWUuaF0gW2xvYWRlci90YXNrLmNdCglNb3ZlZCAxNi1iaXQgc3RhY2sgcG9pbnRlciBpbnRvIHRocmVhZCBkYXRhYmFzZS4KCVNhdmUgY3VycmVudCAlZnMgd2hpbGUgcnVubmluZyAxNi1iaXQgY29kZS4KCkZyaSBKYW4gMzAgMDk6MjU6NDkgMTk5OCAgTWFydGluIEJvZWhtZSAgPGJvZWhtZUBpbmZvcm1hdGlrLm11LWx1ZWJlY2suZGU+CgoJKiBbZ3JhcGhpY3MvbWFwcGluZy5jXQoJTWFkZSBEUHRvTFAzMiBhbmQgTFB0b0RQMzIgcmVzcGVjdCB3b3JsZCB0cmFuc2Zvcm1zLgoKCSogW2dyYXBoaWNzL3BhdGguY10gW2dyYXBoaWNzL3BhaW50aW5nLmNdIFtpZjE2MzIvZ2RpLnNwZWNdCgkgIFtpbmNsdWRlL3BhdGguaF0KCU1vcmUgcGF0aCBzdXBwb3J0LgoKCSogW2luY2x1ZGUvZ2RpLmhdIFtpbmNsdWRlL3dpbmRvd3MuaF0gW29iamVjdHMvZGMuY10KCSAgW3JlbGF5L2dkaTMyLnNwZWNdCglTdXBwb3J0IGZvciBHZXQvU2V0QXJjRGlyZWN0aW9uIGFuZCBHZXQvU2V0V29ybGRUcmFuc2Zvcm0KCgkqIFt3aW5kb3dzL2hvb2suY10KCUZpeGVkIGEgYnVnIGluIEhPT0tfTWFwMTZUbzMyQ29tbW9uLgoKVGh1IEphbiAyOSAyMzo0MzoxOCAxOTk4ICBEb3VnbGFzIFJpZGd3YXkgPHJpZGd3YXlAdGFpZ2EuZ21jbC5jb20+CgoJKiBbZ3JhcGhpY3MvbWV0YWZpbGVkcnYvaW5pdC5jXSBbb2JqZWN0cy9tZXRhZmlsZS5jXQoJRG9jdW1lbnRhdGlvbiBmb3IgbWV0YWZpbGUgcmVsYXRlZCBBUEkgY2FsbHMuIEZpeGVkIGEgYnVnIHRvIGF2b2lkCglkb2N1bWVudGluZyBpdC4KCgkqIFtpbmNsdWRlL3dpbmRvd3MuaF0KCURlY2xhcmF0aW9uIGZvciBMb2FkSW1hZ2UuCgpUaHUgSmFuIDI5IDIxOjQ0OjQ1IDE5OTggIEh1dyBEIE0gRGF2aWVzIDxoLmRhdmllczFAcGh5c2ljcy5veGZvcmQuYWMudWs+CgoJKiBbZ3JhcGhpY3Mvd2luMTZkcnYvKl0KCUNoYW5nZXMgdG8gcHJpbnRpbmcgY29kZSB0byBlbmFibGUgdXNlIG9mIHByaW50ZXIgZm9udHMgd2l0aCB0aGUKCXdpbjMuMSBwb3N0c2NyaXB0IGRyaXZlci4gUmVtZW1iZXIgdG8gYWRkIHByaW50ZXI9b24gdG8gW3dpbmVdCglzZWN0aW9uIG9mIHdpbmUuY29uZiAuIFlvdSB3aWxsIGFsc28gbmVlZCB0byBkaXNhYmxlIHRydWV0eXBlCglmb250cyBmcm9tIGNvbnRyb2wgcGFuZWwuIFdpbndvcmQgNi4wIGFuZCBXcml0ZSBzZWVtIHRvIGJlIGhhcHB5Cgl3aXRoIHRoaXMuLi4KCgkqIFtpbmNsdWRlL2JpdG1hcC5oXQoJRml4IFdpZHRoYnl0ZXMgZm9yIDE1YnBwIGRpc3BsYXlzLgoKVHVlIEphbiAyNyAyMDo1NDowOCAxOTk4ICBLcmlzdGlhbiBOaWVsc2VuIDxrcmlzdGlhbi5uaWVsc2VuQHJpc29lLmRrPgoKCSogW3RzeDExLypdIFtpbmNsdWRlL3RzKl0gW3Rvb2xzL21ha2VfWDExd3JhcHBlcnNdCglJbXBsZW1lbnRlZCB0aHJlYWQtc2FmZSBYMTEgd3JhcHBlcnMuCgpUdWUgSmFuIDI3IDEzOjU0OjA5IDE5OTggIENvbnN0YW50aW5lIFNhcHVudHpha2lzICA8Y3NhcHVudHpAdG1hLTEubGNzLm1pdC5lZHU+CgoJKiBbd2luZG93cy9xdWV1ZS5jXQoJRm9yZ290IHRvIGNvbnZlcnQgdGhkYiB0byB0aHJlYWRfaWQuCgoJKiBbbWlzYy9yZWdpc3RyeS5jXQoJU3BlZCB1cCBXaW5kb3dzIDk1IHJlZ2lzdHJ5IHJlYWRpbmcuIENoYW5nZWQgY29kZSB0byB0cmF2ZXJzZQoJcmVnaXN0cnkgYXMgYSB0cmVlIHJhdGhlciB0aGFuIHJlYWQgaW4gYWxsIHBvc3NpYmxlIGtleXMKCShpbmNsdWRpbmcgZGVhZCBvbmVzKS4gCgpUdWUgSmFuIDI3IDEyOjQ2OjA5IDE5OTggIE1hcmN1cyBNZWlzc25lciA8bXNtZWlzc25AY2lwLmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlPgoKCSogW2xvYWRlci9wZV9pbWFnZS5jXVtNYWtlZmlsZS5pbl1bc2NoZWR1bGVyL3RocmVhZC5jXQoJICBbbGlidGVzdC9oZWxsbzUuY10KCURvbid0IGV4aXQoKSBvbiBmYWlsZWQgdG8gbG9hZCByZWZlcmVuY2VkIGRsbHMuCglGaXhlZCBzdGF0aWMgdGxzIGFsbG9jYXRpb24gZm9yIG11bHRpcGxlIHRocmVhZHMuCglXSU5FTElCIHNob3VsZCBub3cgYmUgYWJsZSB0byBsb2FkIFBFIGRsbHMuIEEgc2FtcGxlCgl3aW5lbGliIHByb2dyYW0sIHRoYXQgZHluYW1pY2FsbHkgbG9hZHMgYSBpbnRlcm5hbCBkbGwKCWlzIGluY2x1ZGVkLgoKCSogW2dyYXBoaWNzL2RkcmF3LmNdW2luY2x1ZGUvZGRyYXcuaF1baW5jbHVkZS9kM2QuaF0KCUNsZWFuZWQgdXAgYW5kIGVuaGFuY2VkIGZ1cnRoZXIuIEFkZGVkIHNldmVyYWwgRGlyZWN0WDUKCWludGVyZmFjZSBkZWZpbml0aW9ucyBhbmQgRGlyZWN0U3VyZmFjZTMgaW1wbGVtZW50YXRpb24uCglTdHVicyBmb3IgRDNEIChOT1QgY29taW5nIHNvb24sIGp1c3QgdGhlcmUgc28gaXQgZmFpbHMgc2FmZWx5KS4KCgkqIFttdWx0aW1lZGlhL2Rzb3VuZC5jXVtpbmNsdWRlL2Rzb3VuZC5oXQoJQWN0dWFsbHkgd29ya3Mgbm93IGZvciBhIGxvdCBvZiBjYXNlcy4gU29tZSBEaXJlY3RYNSBzdHVmZgoJYWRkZWQuIFN0aWxsIGxhY2tpbmcgc2V2ZXJhbCBmZWF0dXJlcy4KCgkqIFt3aW5kb3dzL2RpbnB1dC5jXVtpbmNsdWRlL2RpbnB1dC5oXQoJU3RhcnRlZCBpbXBsZW1lbnRpbmcgRGlyZWN0SW5wdXQuIERvZXNuJ3Qgd29yayB5ZXQsIGRvbid0IAoJa25vdyB3aHkuCgoJKiBbaWYxNjMyL3RodW5rLmNdW21pc2MvY2FsbGJhY2tzLmNdCgkgIFt3aW4zMi9rZXJuZWwuY11baW5jbHVkZS9jYWxsYmFja3MuaF0KCUFkZGVkIFdPV0NhbGxiYWNrMTZFeCwgV09XSGFuZGxlMzIuCgoJKiBbbWlzYy9jcHUuY10KCUZpeGVkIEdldFN5c3RlbUluZm8sIElzUHJvY2Vzc29yRmVhdHVyZVByZXNlbnQuCgoJKiBbbXVsdGltZWRpYS9qb3lzdGljay5jXVttdWx0aW1lZGlhL3RpbWUuY10KCVNldmVyYWwgZml4ZXMuIFNtYWxsIGhhY2sgdG8gZ2V0IHRpbWVyZXZlbnRzIGluIHRpbWVHZXRUaW1lKCkgbG9vcHMuCgpUdWUgSmFuIDIwIDExOjI2OjI3IDE5OTggIFNsYXZlbiBSZXppYyAgPGVzZXJ0ZUBjcy50dS1iZXJsaW4uZGU+CgoJKiBbY29uZmlndXJlLmluXQoJRml4ZWQgY2hlY2sgZm9yIHVuaW9uIHNlbXVuIG9uIEZyZWVCU0Qgc3lzdGVtcy4KClN1biBKYW4gMTggMjM6MDU6MDQgMTk5OCAgS2FybCBCYWNrc3Ry9m0gPGthcmxfYkBnZW9jaXRpZXMuY29tPgoKCSogW21pc2Mvb2xlMm5scy5jXSBbcHJvZ3JhbXMvcHJvZ21hbi9Tdy5yY10gW3Byb2dyYW1zL3dpbmhlbHAvU3cucmNdCgkgIFtyZXNvdXJjZXMvc3lzcmVzX1N3LnJjXQoJQWRkZWQvdXBkYXRlZCBTd2VkaXNoIGxhbmd1YWdlIHN1cHBvcnQuCgpTdW4gSmFuIDE4IDE4OjQ5OjAxIDE5OTggIEFsZXggS29yb2JrYSA8YWxleEB0cmFudG9yLnBoYXJtLnN1bnlzYi5lZHU+CgoJKiBbbWlzYy93aW5zb2NrLmNdIFttaXNjL3dpbnNvY2tfZG5zLmNdIFt3aW5kb3dzL2V2ZW50LmNdCgkgIFt3aW5kb3dzL3dpbi5jXSBbd2luZG93cy9kY2UuY10gW3dpbmRvd3Mvd2lucG9zLmNdCglCdWcgZml4ZXMuCgpTdW4gSmFuIDE4IDEyOjQ1OjIzIDE5OTcgIEFuZHJlYXMgTW9ociA8MTAwLjMwOTM2QGdlcm1hbnkubmV0PgoKCSogW21zZG9zL2ludDI1LmNdIFttc2Rvcy9pbnQyNi5jXQogICAgICAgIEltcGxlbWVudGVkICJuYXRpdmUiIGFic29sdXRlIGRpc2sgcmVhZC93cml0ZSBhY2Nlc3MuCgoJKiBbbXNkb3MvaW50MTMuY10gW21zZG9zL2lvcG9ydHMuY10KCUVuaGFuY2VkIEdFVCBEUklWRSBQQVJBTUVURVJTIChpbnQxMyBBSD0wOCkuCgoJKiBbZ3JhcGhpY3Mvd2luMTZkcnYvcHJ0ZHJ2LmNdIFtpZjE2MzIvZ2RpLnNwZWNdCglGaXhlZCB0eXBvcywgaW1wbGVtZW50ZWQgZG1FbnVtREZvbnRzLAoJU3RhcnRlZCBpbXBsZW1lbnRhdGlvbiBvZiBkbVJlYWxpemVPYmplY3QuCgoJKiBbaWYxNjMyL2NvbXBvYmouc3BlY10gW29sZS9jb21wb2JqLmNdIFtyZWxheTMyL29sZTMyLnNwZWNdCglTdHVicyBDb0NyZWF0ZUluc3RhbmNlLCBDb0ZyZWVVbnVzZWRMaWJyYXJpZXMsIGltcGxlbWVudGVkCglDb0ZpbGVUaW1lTm93LgoKCSogW2lmMTYzMi9rZXJuZWwuc3BlY10gW2luY2x1ZGUvd2luZG93cy5oXSBbbWVtb3J5L2dsb2JhbC5jXQoJICBbbWVtb3J5L3N0cmluZy5jXSBbbWlzYy9rZXJuZWwuY10gW21pc2MvTWFrZWZpbGUuaW5dCgkgIFttaXNjL3Rvb2xoZWxwLmNdIFttc2Rvcy9pbnQyMS5jXQoJSW1wbGVtZW50ZWQgR2xvYmFsSGFuZGxlTm9SSVAsIEdldEZyZWVNZW1JbmZvLCBEZWJ1Z0ZpbGxCdWZmZXIsIAoJc3R1YnMgR2V0U2V0S2VybmVsRE9TUHJvYywgRGlhZ1F1ZXJ5LCBEaWFnT3V0cHV0LCBUb29sSGVscEhvb2sKCShVbmRvY3VtZW50ZWQgV2luZG93cykuCgoJKiBbaWYxNjMyL3VzZXIuc3BlY10gW2lmMTYzMi93aW4zMnMxNi5zcGVjXSBbbWlzYy93aW4zMnMxNi5jXQoJTWlzYyBzdHVicy4KCgkqIFtpZjE2MzIvd2luYXNwaS5zcGVjXSBbbWlzYy9hc3BpLmNdCglJbXBsZW1lbnRlZCBHZXRBU1BJRExMVmVyc2lvbi4KCgkqIFtpZjE2MzIvd3Byb2NzLnNwZWNdIFttc2Rvcy9pbnQyMC5jXSBbbXNkb3MvTWFrZWZpbGUuaW5dCglBZGRlZCBoYW5kbGVyIGZvciBJbnQgMHgyMCAodGVybWluYXRlIHByb2dyYW0sIF92ZXJ5XyBvbGQtZmFzaGlvbmVkKS4KCgkqIFttaXNjL3czMnNjb21iLmNdCglJbXBsZW1lbnRlZCBHZXQxNkRMTEFkZHJlc3MoKSBwYXJ0aWFsbHkKCShiaWcgdGhhbmtzIHRvIE1hcmN1cyBhbmQgQWxleGFuZHJlKS4KCgkqIFtyZWxheTMyL01ha2VmaWxlLmluXSBbcmVsYXkzMi9idWlsdGluMzIuY10gW3JlbGF5MzIvZHBsYXkuc3BlY10KCUFkZGVkIGJ1aWx0LWluIERQTEFZLkRMTC4KCgkqIFtyZWxheTMyL3dpbm1tLnNwZWNdIFttdWx0aW1lZGlhL2pveXN0aWNrLmNdCglBZGRlZCBqb3lTZXRUaHJlc2hvbGQuCgoJKiBbbWlzYy93aW5kZWJ1Zy5jXQoJQWRkZWQgV2luTm90aWZ5LgoKCSogW3dpbjMyL2NvbnNvbGUuY10KCVN0dWJzIENyZWF0ZUNvbnNvbGVTY3JlZW5CdWZmZXIsIFNldENvbnNvbGVBY3RpdmVTY3JlZW5CdWZmZXIsCglXcml0ZUNvbnNvbGVPdXRwdXQzMkEuCgoJKiBbd2luZG93cy91c2VyLmNdCglTdHViIFNldEV2ZW50SG9vay4KClNhdCBKYW4gMTcgMTk6MzA6MzUgMTk5OCAgTWF0dGhldyBUb3NlbGFuZCAgPFBhdWwuVG9zZWxhbmRAYnRpbnRlcm5ldC5jb20+CgoJKiBbd2luZG93cy9wYWludGluZy5jXQoJRml4ZWQgYnJva2VuIHJlc3RvcmUtdG8tbWF4aW1pemVkLgoKTW9uIEphbiAxMiAyMToyNTozMiAxOTk4ICBQZXJjZXZhbCAtIE1hcmMgSHVndWV0IFB1aWcgPG1ocEB0aW5ldC5mdXQuZXM+CgoJKiBbZG9jdW1lbnRhdGlvbi93aW5lLm1hbl0gW2luY2x1ZGUvb3B0aW9ucy5oXQoJICBbbWlzYy9tYWluLmNdIFtvbGUvb2xlMm5scy5jXSBbcmVzb3VyY2VzL3N5c3Jlcy5jXQoJICBbcmVzb3VyY2VzL3N5c3Jlc19DYS5yY10gW3Jlc291cmNlcy9NYWtlZmlsZS5pbl0KCUFkZGVkIGxhbmd1YWdlIGNhdGFsYW4uIChBZmVnaXQgbCdpZGlvbWEgY2F0YWzgKS4K