MjAwMS0xMi0xMiAgTWF0dGhpYXMgS2xvc2UgIDxkb2tvQGRlYmlhbi5vcmc+CgoJKiB0ZXhpMnBvZC5wbDogTWVyZ2UgY2hhbmdlcyBmcm9tIGJpbnV0aWxzJyB0ZXhpMnBvZC5wbC4gQWxsb3dzCglnZW5lcmF0aW9uIG9mIG1vcmUgdGhhbiBvbmUgbWFuIHBhZ2UgZnJvbSBvbmUgc291cmNlLgoJQWRkICctJyB0byBzZXQgb2YgdmFsaWQgY2hhcnMgZm9yIGFuIGlkZW50aWZpZXIuCglMZXQgLUQgb3B0aW9uIGFjY2VwdCBmbGFncyBvZiB0aGUgZm9ybSA8ZmxhZz49PHZhbHVlPi4KCVVzZSBccysgZm9yIHdoaXRlc3BhY2UgZGV0ZWN0aW9uIGluICdAYyBtYW4nIGxpbmVzLgoJSGFuZGxlIEBzZXQgYW5kIEBjbGVhciBpbmRlcGVuZGVudCBvZiAkb3V0cHV0LgoJU3Vic3RpdHV0ZSBhbGwgQHZhbHVle30ncyBpbiBhIGxpbmUuCgoyMDAxLTExLTE0ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0ZXhpMnBvZC5wbDogSGFuZGxlIEBpZm5vdHRleCwgQGlmdGV4IGFuZCBAZGlzcGxheS4gIEhhbmRsZSBAdmFyCglpbiB2ZXJiYXRpbSBibG9ja3Mgc3BlY2lhbGx5LiAgSGFuZGxlIEB1bm51bWJlcmVkLCBAdW5udW1iZXJlZHNlYwoJYW5kIEBjZW50ZXIuICBBbGxvdyBbYS16XSBhZnRlciBAZW51bWVyYXRlLiAgSGFuZGxlIDAgYW5kIG51bWJlcnMKCWdyZWF0ZXIgdGhhbiA5IGluIGVudW1lcmF0aW9ucy4KCjIwMDEtMTEtMDcgIExhdXJlbnQgR3VlcmJ5IDxndWVyYnlAYWNtLm9yZz4KCgkqIGdjY191cGRhdGUgKGZpbGVzX2FuZF9kZXBlbmRlbmNpZXMpOiBBZGQgQWRhIGRlcGVuZGVuY2llcy4KCjIwMDEtMTAtMDggIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIHNuYXBzaG90OiBSZW1vdmUuCgoyMDAxLTA5LTA3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJUmV2ZXJ0OgoJKiBnY2NfdXBkYXRlOiAoZmlsZXNfYW5kX2RlcGVuZGVuY2llcykgQWRkIGdjYy9qYXZhL3BhcnNlLmMKCWdjYy9qYXZhL3BhcnNlLXNjYW4uYyBhbmQgZ2NjL2phdmEva2V5d29yZC5oIHRvIGxpc3Qgb2YgZmlsZXMgdG8KCXRvdWNoLgoKMjAwMS0wOS0wNCAgRGF2aWQuQmlsbGluZ2h1cnN0IDxEYXZpZC5CaWxsaW5naHVyc3RAcmlvdGludG8uY29tPgoKCSogZ2NjX3VwZGF0ZTogKGZpbGVzX2FuZF9kZXBlbmRlbmNpZXMpIEFkZCBnY2MvamF2YS9wYXJzZS5jCglnY2MvamF2YS9wYXJzZS1zY2FuLmMgYW5kIGdjYy9qYXZhL2tleXdvcmQuaCB0byBsaXN0IG9mIGZpbGVzIHRvCgl0b3VjaC4KCk1vbiBBdWcgMTMgMDI6Mjk6MDggQ0VTVCAyMDAxICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBhbmFseXplX2JycHJvYjogVXBkYXRlIGZvciBjaGFuZ2VzIGluIGdjYyBkZWJ1ZyBvdXRwdXQuCgpTYXQgSnVsIDI4IDIyOjM3OjQ5IENFU1QgMjAwMSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogYW5hbHl6ZV9icnByb2I6IEF2b2lkIG1vcmUgb3ZlcmZsb3dzLgoKMjAwMS0wNy0yNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRlc3Rfc3VtbWFyeTogQ29weSBMQVNUX1VQREFURUQgVVRDIHRpbWUgdG8gaGVhZCBvZiBzdW1tYXJ5LgoKRnJpIEp1bCAyNyAxODowMToyMSBDRVNUIDIwMDEgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGFuYWx5emVfYnJwcm9iOiBBdm9pZCBvdmVyZmxvd3MuCgoyMDAxLTA3LTI3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZ2NjX3VwZGF0ZTogRHVtcCB0aW1lc3RhbXAgaW4gTEFTVF9VUERBVEVELgoKMjAwMS0wNy0yNiAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPiwKCSAgICBIYW5zLVBldGVyIE5pbHNzb24gPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGFuYWx5emVfYnJwcm9iOiBGaXggZG9jdW1lbnRhdGlvbi4KCk1vbiBKdWwgMjMgMTU6NDc6MTkgQ0VTVCAyMDAxICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBhbmFseXplX2JycHJvYjogRml4IGF3ayBjb21wYXRpYmlsaXR5IHByb2JsZW1zOyB1cGRhdGUgY29tbWVudC4KCjIwMDEtMDctMjMgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGFuYWx5emVfYnJwcm9iOiBGaXggbW9yZSB0eXBvcy4KCjIwMDEtMDctMjMgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGFuYWx5emVfYnJwcm9iOiBGaXggdHlwb3MuCgoyMDAxLTA3LTAzICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0ZXhpMnBvZC5wbDogSGFuZGxlIEByIGluc2lkZSBAaXRlbS4KCjIwMDEtMDctMDIgIFphY2sgV2VpbmJlcmcgIDx6YWNrd0BzdGFuZm9yZC5lZHU+CgoJKiBnY2NfdXBkYXRlOiBSZW1vdmUgZW50cmllcyBmb3IgZ2NjLjEsIGNwcC4xLCBnY292LjEuCgoyMDAxLTA3LTAxICBab2x0YW4gRmVsbGVnIDx6ZmVsbGVnQHRlbG5ldC5odT4KCgkqIHdhcm5fc3VtbWFyeTogRml4IHR5cG8gaW4gYSBjb21tZW50LgoKMjAwMS0wNi0xNCAgQWxiZXJ0IENoaW4tQS1Zb3VuZyAgPGNoaW5hQHRoZXdyaXR0ZW53b3JkLmNvbT4KCiAgICAgICAgKiBjb250cmliL2djY191cGRhdGU6IEZpeCB0aW1lc3RhbXAgb24gZ2NjL2YvaW50ZG9jLnRleGkuCgoyMDAxLTA2LTEzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ2VubmV3czogU2V0IFRFUk0gdG8gdnQxMDAgZm9yIEx5bnguCgoyMDAxLTA2LTEzICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CgoJKiByZWxlYXNlOiBSZW1vdmUuCgpUdWUgSnVuIDEyIDEyOjIxOjQwIENFU1QgMjAwMSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogYW5hbHl6ZV9icnByb2I6IE5ldyBmaWxlLgoKMjAwMS0wNi0xMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdjY19idWlsZDogT3V0cHV0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21tYW5kcyB1c2VkIHRvCgljb25maWd1cmUgdGhlIGNvbXBpbGVyLgoKMjAwMS0wNi0wNyAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZ2VubmV3czogVXBkYXRlIGZvciBHQ0MgMy4wLgoKMjAwMS0wNi0wMiAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZ2NjX3VwZGF0ZTogVXBkYXRlIGZvciBtb3ZlIG9mIGRvY3VtZW50YXRpb24gdG8gZ2NjL2RvYy4KCjIwMDEtMDUtMjggIFJhaW5lciBPcnRoICA8cm9AVGVjaEZhay5VbmktQmllbGVmZWxkLkRFPgoKCSogY29udHJpYi90ZXN0X3N1bW1hcnkgKGZpbGVzKTogU29ydCBiZWZvcmUgZXZhbHVhdGluZy4KCjIwMDEtMDUtMjMgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIGdjY191cGRhdGUgKFVQREFURV9PUFRJT05TKTogQWRkIC1kIHRvIHRoZSBkZWZhdWx0IHNldHRpbmdzLgoKMjAwMS0wNS0yMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdjY19idWlsZDogVXNlIC1kIHdoZW4gaW52b2tpbmcgZ2NjX3VwZGF0ZS4KCjIwMDEtMDUtMTggIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGdjY191cGRhdGU6IEFkZCBydWxlcyBmb3IgbGliZjJjL2xpYkk3Ny4KCjIwMDEtMDUtMTcgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZ2NjX3VwZGF0ZSAodG91Y2hfZmlsZXMpOiBVc2Ugc2ltcGxlciwgeWV0IGFzIHBvcnRhYmxlLCBzeW50YXguCgoyMDAxLTA1LTE0ICBMb3JlbiBKLiBSaXR0bGUgIDxsanJpdHRsZUBhY20ub3JnPgoKCSogZ2NjX3VwZGF0ZSAodG91Y2hfZmlsZXMpOiBFbmhhbmNlIG1ha2UgcG9ydGFiaWxpdHkuCgoyMDAxLTA1LTE0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGdjY191cGRhdGUgKHRvdWNoX2ZpbGVzKTogVXNlIGEgTWFrZWZpbGUgdG8gdG91Y2ggZmlsZXMuCgoyMDAxLTA1LTAzICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0ZXhpMnBvZC5wbDogQWRkIGNvcHlyaWdodCBhbmQgR1BMIG5vdGljZXMuCgoyMDAxLTAxLTI0ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0ZXhpMnBvZC5wbDogSGFuZGxlICJcLCIuCgoyMDAxLTAxLTE1ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0ZXhpMnBvZC5wbDogRml4IHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgQHIgdG8gYXZvaWQgZXhwb25lbnRpYWwKCXJlY3Vyc2lvbi4gIEZyb20gUnVzcyBBbGxiZXJ5IDxycmFAc3RhbmZvcmQuZWR1Pi4gIFJlbW92ZSBwZXJsCgl2ZXJzaW9uIGNoZWNrLgoKMjAwMS0wMS0xNSAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogd2Fybl9zdW1tYXJ5IChzdGFnZU5maWx0ZXIpOiBVcGRhdGUgZm9yIHJlY2VudCBjaGFuZ2VzIGluCglib290c3RyYXAgbG9naWMuCgoyMDAxLTAxLTE0ICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0ZXhpMnBvZC5wbDogUmVxdWlyZSBhdCBsZWFzdCBwZXJsIDUuNi4wLgoKMjAwMS0wMS0xMyAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZ2NjX3VwZGF0ZTogQWRkIGdjYy9nY2MuMSB0byBnZW5lcmF0ZWQgZmlsZXMuCgkqIHRleGkycG9kLnBsOiBIYW5kbGUgQHIgYW5kIEBnY2NvcHRsaXN0LiAgSGFuZGxlIEBnb2wuICBIYW5kbGUKCWRpc2NhcmRpbmcgdG8gZW5kIG9mIHNlbnRlbmNlIHdpdGggQHhyZWYgd2hlcmUgdGhlIHNlbnRlbmNlIGhhcyBhbgoJaW50ZXJpb3IgIi4iIGluIG1hcmt1cCwgYW5kIGhhbmRsZSBkaXNjYXJkaW5nIHBhcmVudGhlc2VzIGFyb3VuZAoJc3VjaCBhIHNlbnRlbmNlLgoKMjAwMS0wMS0xMSAgQmVybmQgU2NobWlkdCAgPGJlcm5kc0ByZWRoYXQuY29tPgoKCSogZ2VubmV3czogQWRkIGdjYy0yLjk1LjMuCgoyMDAxLTAxLTEwICBKb3NlcGggUy4gTXllcnMgIDxqc20yOEBjYW0uYWMudWs+CgoJKiB0ZXhpMnBvZC5wbDogSGFuZGxlIEBnY2N0YWJvcHQgYW5kIEBlbnYgaW4gdGFibGVzLiAgSGFuZGxlCglAY29tbWFuZC4gIEZvcm1hdCBVUkxzIGFuZCBlbWFpbCBhZGRyZXNzZXMgaW4gYm9sZC4KCjIwMDEtMDEtMDMgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGdjY191cGRhdGU6IEFkZCBjcHAuMSB0byB0aGUgbGlzdCBvZiBnZW5lcmF0ZWQgZmlsZXMuCgoJKiB0ZXhpMnBvZC5wbDogSGFuZGxlIEBvcHRpb24gYW5kIEBlbnYuCgoyMDAxLTAxLTAzICBNaWtlIFN0dW1wICA8bXJzQHdycy5jb20+CgoJKiBzbmFwc2hvdDogVXBkYXRlIHRvIGFjY291bnQgZm9yIGphdmEgbGlicmFyaWVzLgoKMjAwMC0xMi0yOCAgSmVmZnJleSBPbGRoYW0gIDxvbGRoYW1AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRlc3Rfc3VtbWFyeTogRXhwb3J0IGZpbGVzdWZmaXgsIG5vdCBmaWxlcHJlZml4LgoKMjAwMC0xMi0yMiAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogcmVsZWFzZTogQ2hhbmdlIHNvbWUgRUdDUyByZWZlcmVuY2VzIHRvIEdDQy4KCjIwMDAtMTItMTQgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIHdhcm5fc3VtbWFyeTogRml4IHN1YmRpcmVjdG9yeSBmaWx0ZXJpbmcuICBBZGQgLWludGwgYW5kIC1maXhpbmMKCXN1YmRpcmVjdG9yeSBmbGFncy4gIEFkZCBzb3VyY2UgZGlyZWN0b3J5IHByZWZpeCBmaWx0ZXJpbmcuCglSZWRpcmVjdCBkaWFnbm9zdGljIG91dHB1dCB0byBzdGRlcnIuCgoyMDAwLTEyLTA3ICBaYWNrIFdlaW5iZXJnICA8emFja0B3b2xlcnkuc3RhbmZvcmQuZWR1PgoKCSogdGV4aTJwb2QucGw6IElmIG11bHRpcGxlIEBjIG1hbiBzZWN0aW9ucyB3aXRoIHRoZSBzYW1lIHRhZwoJYXBwZWFyLCBjb25jYXRlbmF0ZSB0aGVtIGluIHRoZSBmaW5hbCBvdXRwdXQuICBXaGVuIHNraXBwaW5nLAoJaWdub3JlIGJsb2NrIGNvbW1hbmRzIHRoYXQgY2FuJ3QgY2F1c2Ugc2tpcHBpbmcsIGFuZCBob25vcgoJdGhvc2UgdGhhdCBjYW4uICBFbnN1cmUgdGhhdCB2ZXJiYXRpbSBibG9ja3MgYXJlIHNlcGFyYXRlCglwYXJhZ3JhcGhzLgoKMjAwMC0xMi0wNyAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZ2NjX3VwZGF0ZTogRG9uJ3QgdG91Y2ggdHJhZGNpZi5jIG9yIGphdmEvcGFyc2UuaC4KCjIwMDAtMTItMDUgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5zdGFuZm9yZC5lZHU+CgoJKiB0ZXhpMnBvZC5wbDogUmVzdHJ1Y3R1cmUgZm9yIGNvbXByZWhlbnNpYmlsaXR5LCBhZGQKCWNvbW1lbnRzLiAgTWVyZ2UgaGFuZGxpbmcgb2YgQGlnbm9yZSBhbmQgQGlmeHh4LiAgSGFuZGxlIGEKCXdob2xlIGJ1bmNoIG1vcmUgVGV4aW5mbyBjb21tYW5kcy4gIFVzZSBjb25zaXN0ZW50IGZvcm1hdHRpbmcKCXN0eWxlLgoKMjAwMC0xMi0wNCAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZ2VubmV3czogTmV3IHNjcmlwdC4KCjIwMDAtMTEtMjIgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIGdjY191cGRhdGU6IFVwZGF0ZSBhIGNvbW1lbnQgYXMgd2Ugbm93IHJlcXVpcmUgYmlzb24gZm9yIENWUyB1c2Vycy4KCjIwMDAtMTEtMjIgIEpvc2VwaCBTLiBNeWVycyAgPGpzbTI4QGNhbS5hYy51az4KCgkqIGdjY191cGRhdGU6IEFkZCBnY292LjEgdG8gdGhlIGxpc3Qgb2YgZ2VuZXJhdGVkIGZpbGVzLgoKMjAwMC0xMS0yMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdjY19idWlsZDogUmVtb3ZlIGNvZGUgdG8gcHV0IGluZm9ybWF0aW9uIGluIGEgbG9nIGZpbGUuCgoyMDAwLTExLTE5ICBaYWNrIFdlaW5iZXJnICA8emFja3dAc3RhbmZvcmQuZWR1PgoKCSogdGV4aTJwb2QucGw6CgkgIC0gQWRkIHJlYWwgY29tbWFuZCBsaW5lIHBhcnNpbmcuCgkgIC0gU3VwcG9ydCBAaWZzZXQsIEBpZmNsZWFyLCBAc2V0LCBAdmFsdWUsIC1EIHN3aXRjaC4KCSAgLSBTdXBwb3J0IEBzYy4gIEltcHJvdmUgaGFuZGxpbmcgb2YgQHJlZiBhbmQgZnJpZW5kcy4KCSAgLSBEaXNjYXJkIEBzdWJzZWN0aW9uLCBAbmVlZCwgQG5vZGUgbGluZXMuCgkgIC0gVW4tbmVzdCBmb250IGNoYW5nZXMgdG8gbWF0Y2ggdGV4aW5mbyBzZW1hbnRpY3MuCgkgIC0gSGFuZGxlIEB7IGFuZCBAfS4gIE9vcHMuCgkgIC0gRG9uJ3QgZW1pdCBFPD4gZGlyZWN0aXZlcyBpbnNpZGUgdmVyYmF0aW0gYmxvY2tzLgoKMjAwMC0xMS0xMiAgQnJ1Y2UgS29yYiAgPGJrb3JiQGdudS5vcmc+CgoJKiByZWxlYXNlOiBnZW5lcmFsaXplIHRoZSByZWxlYXNlIHNjcmlwdCBhIGJpdC4KClNhdCBOb3YgMTEgMTc6Mjk6MDMgMjAwMCAgTWFyayBQIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ2NjX2J1aWxkOiBBZGQgLW8gb3B0aW9uIGZvciBzZXR0aW5nIHRoZSBvYmpkaXIgdG8gdXNlLgoKMjAwMC0xMS0xMSAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4sCgoJKiByZWxlYXNlOiBOZXcgZmlsZS4KCjIwMDAtMTEtMDggIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+LAoJICAgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIHNuYXBzaG90OiBOZXcgZmlsZS4KCjIwMDAtMTEtMDggIEplZmZyZXkgT2xkaGFtICA8b2xkaGFtQG96LmNvZGVzb3VyY2VyeS5jb20+CgoJKiBnY2NfYnVpbGQgKGJvb3RzdHJhcF9nY2MpOiBOZXcgZnVuY3Rpb24uCgkoY29uZmlndXJlX2djYyk6IExpa2V3aXNlLgoJKGJ1aWxkX2djYyk6IFJld3JpdHRlbiB0byB1c2UgY29uZmlndXJlIGFuZCBib290c3RyYXAuCgkoTUFLRV9CT09UU1RSQVBfT1BUSU9OUyk6IFJlcGxhY2VkIE1BS0VfT1BUSU9OUy4KCjIwMDAtMTAtMzEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnY2NfYnVpbGQgKE1BS0UpOiBOZXcgdmFyaWFibGUuCgkoYnVpbGRfZ2NjKTogVXNlIGl0LiAgRml4IGxvZ2dpbmcgb2YgZXJyb3JzLgoJKGluc3RhbGxfZ2NjKTogTGlrZXdpc2UuCgoyMDAwLTEwLTI5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ2NjX2J1aWxkOiBTYXZlIHRoZSBvdXRwdXQgZnJvbSBDVlMgaW50byB0aGUgbG9nZmlsZSBhcyB3ZWxsLgoKMjAwMC0xMC0yNSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdjY19idWlsZDogRml4IHR5cG9zLgoKMjAwMC0xMC0xNCAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogZ3BlcmYtMi43LTE5OTgxMDA2LnBhdDogUmVtb3ZlLgoKMjAwMC0xMC0wOCAgSm9zZXBoIFMuIE15ZXJzICA8anNtMjhAY2FtLmFjLnVrPgoKCSogdGVzdF9pbnN0YWxsZWQ6IENoYW5nZSBFR0NTIHJlZmVyZW5jZXMgdG8gcmVmZXIgdG8gR0NDLgoKMjAwMC0wOS0yOCAgR2VyYWxkIFBmZWlmZXIgIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgoKCSogZ2NjX3VwZGF0ZSAodG91Y2hfZmlsZXMpOiBBZGQgc29tZSBpbmZvcm1hdGl2ZSBvdXRwdXQuCgoyMDAwLTA5LTE2ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBnY2NfdXBkYXRlOiBSZW1vdmUgZ2NjL2MtcGFyc2UuZ3BlcmYuCgoyMDAwLTA4LTMwICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+LAoJICAgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZ2NjX3VwZGF0ZTogRXhlY3V0ZSB0b3VjaF9maWxlc19yZWV4ZWMgZXZlbiBpZiBgY3ZzIHVwZGF0ZWAKCWZhaWxlZC4KCjIwMDAtMDgtMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogdGVzdF9zdW1tYXJ5OiBBV0sgYnJlYWtzIHdpdGggZmlsZW5hbWVzIGNvbnRhaW5pbmcgYD0nLgoKU3VuIEp1bCAxNiAxMjowNDozMyAyMDAwICBNYXJrIFAgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnY2NfYnVpbGQ6IE5ldyBzY3JpcHQuCgoyMDAwLTA3LTEzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ2NjX3VwZGF0ZSAoZmlsZXNfYW5kX2RlcGVuZGVuY2llcyk6IFJlbW92ZSBnZW5lcmF0ZWQgWUFDQyBmaWxlcy4KCjIwMDAtMDctMTIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnY2NfdXBkYXRlIChmaWxlc19hbmRfZGVwZW5kZW5jaWVzKTogUmVtb3ZlIGdlbmVyYXRlZCBZQUNDIGZpbGVzLgoKMjAwMC0wNi0wNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIG5ld2N2c3Jvb3Q6IEhhbmRsZSBmaWxlbmFtZXMgdGhhdCBjb250YWluIHNwYWNlcy4KCjIwMDAtMDYtMDMgIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIHRlc3Rfc3VtbWFyeTogSW4gZ2VuZXJhdGVkIHNjcmlwdCwgdXNlIGNhdCA8PCdFT0YnIG5vdCBjYXQgPDxcRU9GLgoJRWxpZGUgLS13aXRoLWdjYy12ZXJzaW9uLXRyaWdnZXIgYW5kIC0tbm9yZWN1cnNpb24gZnJvbQoJY29uZmlndXJlIGZsYWdzLiAgUmVtb3ZlIGNvZGUgdG8gcmVwb3J0IHN0YXR1cyBvZiBoYWlmYSBzY2hlZHVsZXIuCgoyMDAwLTA1LTE4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAY3lnbnVzLmNvbT4KCgkqIGdjY191cGRhdGUgKHNlbGYpOiBTZXQgdG8gYCQwJy4KCSh0b3VjaF9maWxlc19yZWV4ZWMpOiBVc2UgYCRzZWxmJyBpbnN0ZWFkIG9mIGAkMCcuCgoyMDAwLTA1LTEyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAY3lnbnVzLmNvbT4KCgkqIGdjY191cGRhdGUgKHRvdWNoX2ZpbGVzX3JlZXhlYyk6IE5ldyBmdW5jdGlvbiwgcnVuIGFmdGVyIHRoZQoJdHJlZSBpcyBtb2RpZmllZC4KCjIwMDAtMDUtMDggIFJpY2hhcmQgSGVuZGVzb24gIDxydGhAY3lnbnVzLmNvbT4KCgkqIGdjY191cGRhdGU6IFJlbW92ZSByZWZlcmVuY2VzIHRvIGluY2xoYWNrLnRwbC4KCjIwMDAtMDQtMjggIEphc29uIE1lcnJpbGwgIDxqYXNvbkBjYXNleS5jeWdudXMuY29tPgoKCSogaW5kZXgtcHJvcDogVXNlIGEgc2luZ2xlIHBhdHRlcm4uICBBbHNvIHN1cHBvcnQgKioqIGNkaWZmcy4KCjIwMDAtMDQtMjggIFBhdmVsIFJvc2tpbiA8cGF2ZWxfcm9za2luQGdlb2NpdGllcy5jb20+CgoJKiBpbmRleC1wcm9wOiBEb24ndCBjaGFuZ2UgL2Rldi9udWxsLgoKMjAwMC0wNC0yNyAgR2VyYWxkIFBmZWlmZXIgIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgoKCSogZ2NjX3VwZGF0ZTogUmVmZXIgdG8gR0NDIGFuZCBnY2NfdXBkYXRlIGluc3RlYWQgb2YgZWdjcyBhbmQKCWVnY3NfdXBkYXRlLgoKMjAwMC0wNC0yNiAgSm9uYXRoYW4gTGFybW91ciAgPGpsYXJtb3VyQHJlZGhhdC5jby51az4KCgkqIGluZGV4LXByb3A6IEZpeCBvY2Nhc2lvbmFsIHByb2JsZW0gd2hlbiB1c2luZyBjdnMgZGlmZiAtcC4KCjIwMDAtMDQtMTggIFphY2sgV2VpbmJlcmcgIDx6YWNrQHdvbGVyeS5jdW1iLm9yZz4KCgkqIGdjY191cGRhdGU6IFJlbW92ZSByZWZlcmVuY2VzIHRvIGNleHAuYy9jZXhwLnkuCgoxOTk5LTEyLTE4ICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CgoJKiBuZXdjdnNyb290OiBBZGQgY2hlY2sgb24gdGhlIG51bWJlciBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzLgoJQWRkIHVzYWdlLgoKU3VuIE5vdiAyOCAwMDo0MTo0NCAxOTk5ICBXaWxsaWFtIEJhZGVyICh3aWxsaWFtQG5zY3MuZmFzdC5uZXQpCgoJKiBnY2NfdXBkYXRlOiBBbGxvdyBwYXRjaGVzIGNvbXByZXNzZWQgYnkgYnppcDIuCgoxOTk5LTEwLTExICBNYXJ0aW4gdi4gTPZ3aXMgPGxvZXdpc0BpbmZvcm1hdGlrLmh1LWJlcmxpbi5kZT4KCgkqIG5ld2N2c3Jvb3Q6IE5ldyBmaWxlLgoKMTk5OS0wOS0xMSAgQ3JhaWcgQnVybGV5ICA8Y3JhaWdAamNiLXNjLmNvbT4KCgkqIGNvbnZlcnRfdG9fZjJjLCBjb252ZXJ0X3RvX2cyYywgZG93bmxvYWRfZjJjOiBOZXcgZmlsZS4KCjE5OTktMDgtMTYgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIGdjY191cGRhdGU6IE5ldyBmaWxlLgoJKiBlZ2NzX3VwZGF0ZTogUmVuYW1lZCB0byBnY2NfdXBkYXRlLgoKMTk5OS0wOC0wOSAgUm9iZXJ0IExpcGUgIDxyb2JlcnRsaXBlQHVzYS5uZXQ+CgoJKiB0ZXN0X3N1bW1hcnk6IFF1b3RlIGN1cmx5IGJyYWNlcyBpbiAxOTk5LTA3LTAzIGNoYW5nZS4KCjE5OTktMDctMjggIEFsZXhhbmRyZSBPbGl2YSAgPG9saXZhQGRjYy51bmljYW1wLmJyPgoKCSogZWdjc191cGRhdGUgKGZpbGVzX2FuZF9kZXBlbmRlbmNpZXMpOiBGaXhlZCB0eXBvIGluCglnY2MvY3N0YW1wLWguaW4uICBBZGRlZCBnY2MvY29uZmlnLmluLgoKMTk5OS0wNy0yNyAgQWxleGFuZHJlIE9saXZhICA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+CgoJKiBlZ2NzX3VwZGF0ZSAoZmlsZXNfYW5kX2RlcGVuZGVuY2llcyk6IE5ldyBmdW5jdGlvbiwgd2l0aAoJY29tcGxldGUgbGlzdCBvZiBmaWxlcyB0byBiZSB1cGRhdGVkLCBhcyB3ZWxsIGFzIHRoZWlyCglkZXBlbmRlbmNpZXMuCgkodG91Y2hfZmlsZXMpOiBDaGVjayB0aGUgdGltZXN0YW1wIG9mIGVhY2ggZ2VuZXJhdGVkIGZpbGUgYWdhaW5zdAoJaXRzIGRlcGVuZGVuY2llcycuCgkobWFpbik6IE5ldyBmbGFncyAtLXRvdWNoLCAtLWxpc3QgYW5kIC0taGVscC4gIFJlbW92ZSB0aGUKCXByZS11cGRhdGUgc3RlcC4KCjE5OTktMDctMTcgIEFsZXhhbmRyZSBPbGl2YSAgPG9saXZhQGRjYy51bmljYW1wLmJyPgoKCSogdGVzdF9zdW1tYXJ5OiBSZXBsYWNlIGVnY3Mgd2l0aCBnY2MuICBVcGRhdGUgZS1tYWlsIGFkZHJlc3MuCgoxOTk5LTA3LTA1ICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CiAgICAgICAgICAgIEplcnJ5IFF1aW5uIDxqcXVpbm5Abm9ydGVsbmV0d29ya3MuY29tPgoKCSogZWdjc191cGRhdGUgKHRvdWNoX2ZpbGVzLCBhcHBseV9wYXRjaCk6IE5ldyBmdW5jdGlvbnMuCglVc2UgdGhlbS4gIE5ldyBjb21tYW5kLWxpbmUgb3B0aW9uIC0tcGF0Y2guICBTcGxpdCB0ZXN0IG9mIGxvY2FsCgl0cmVlIGludG8gdHdvIHBhcnRzLiAgQWRkIGNvbW1lbnRzLgoKMTk5OS0wNy0wMyAgQWxleGFuZHJlIE9saXZhICA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+CgoJKiB0ZXN0X3N1bW1hcnk6IElmIFRhcmdldCBpcyBgdW5peHsqfScsIGFwcGVuZCB0aGUgVGFyZ2V0IHZhcmlhbnRzCgl0byBIb3N0LgoKMTk5OS0wNi0xMiAgQWxleGFuZHJlIE9saXZhICA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+CgoJKiB0ZXN0X3N1bW1hcnk6IFNldCBkZWZhdWx0IG1haWwtYWRkcmVzcyBhbmQgdmVyc2lvbiBmb3IgZWdjcwoJaW5zdGVhZCBvZiByZWx5aW5nIG9uIHVucHJlZGljdGFibGUgcGF0aG5hbWVzLgoJUmVwb3J0ZWQgYnkgQW5kcmVhcyBKYWVnZXIgPGFqQGFydGh1ci5yaGVpbi1uZWNrYXIuZGU+CgpGcmkgQXByICAyIDE2OjA5OjAyIDE5OTkgIEplZmZyZXkgQSBMYXcgIChsYXdAY3lnbnVzLmNvbSkKCgkqIGZpeGluYy8qOiBEZWxldGUgb2Jzb2xldGUgZmlsZXMuCgoxOTk5LTAyLTA0ICBSb2JlcnQgTGlwZSAgPHJvYmVydGxpcGVAdXNhLm5ldD4KCgkqIGVnY3NfdXBkYXRlOiBUZXN0IHJldHVybiB2YWx1ZXMgb2YgJ2N2cyB1cGRhdGUnLiAgUHJvcG9nYXRlCgl0byBjYWxsZXIgYXMgZXhpdCB2YWx1ZXMuCgoxOTk5LTAxLTI1ICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CgoJKiBlZ2NzX3VwZGF0ZTogVXNlICJpZiIgaW5zdGVhZCBvZiAiJiYiLiAgVG91Y2ggZ2VuZXJhdGVkIGZpbGVzCglvbmx5IGFmdGVyIHRoZSBjb3JyZXNwb25kaW5nICoueSBmaWxlcy4KCjE5OTktMDEtMTkgIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIGVnY3NfdXBkYXRlOiBEbyBub3QgdXNlIHhhcmdzLCBidXQgYSBiYWNrcXVvdGUgY29uc3RydWN0LgoKMTk5OS0wMS0wNyAgQWxleGFuZHJlIE9saXZhICA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+CgoJKiB0ZXN0X3N1bW1hcnkgKHZlcnNpb24pOiBSZW1vdmUgY2FycmlhZ2UgcmV0dXJuIHRoYXQgZ2F3ayBpbnNlcnRzCglpbiB0aGUgdmVyc2lvbiBzdHJpbmcgZm9yIHNvbWUgcmVhc29uLgoKMTk5OC0xMS0zMCAgR2VyYWxkIFBmZWlmZXIgIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgoKCSogZWdjc191cGRhdGU6IE9ubHkgdG91Y2ggZmlsZXMgdGhhdCBhbHJlYWR5IGV4aXN0LgoKMTk5OC0xMS0yOSAgQWxleGFuZHJlIE9saXZhICA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+CgoJKiB0ZXN0X3N1bW1hcnkgKEVPRik6IFJlbW92ZSBkb3VibGUgYmFja3NsYXNoLgoJUmVwb3J0ZWQgYnkgRnJhbnogU2lybCA8RnJhbnouU2lybC1rZXJuZWxAbGF1dGVyYmFjaC5jb20+CgoxOTk4LTExLTI4ICBBbGV4YW5kcmUgT2xpdmEgIDxvbGl2YUBkY2MudW5pY2FtcC5icj4KCgkqIHRlc3Rfc3VtbWFyeSAoYWRkcmVzcyk6IFNldCB0byBlZ2NzLXRlc3RyZXN1bHRzIG1haWxpbmcgbGlzdC4KCjE5OTgtMTEtMjcgIEFsZXhhbmRyZSBPbGl2YSAgPG9saXZhQGRjYy51bmljYW1wLmJyPgoKCSogdGVzdF9zdW1tYXJ5IChhZGRyZXNzKTogQWRkZWQgTWFyYyBMZWhtYW5uJ3MgdGVzdHN1aXRlLXJlc3VsdHMKCXRvIHRoZSBkZWZhdWx0IGUtbWFpbCBhZGRyZXNzLgoKMTk5OC0xMS0yNSAgQWxleGFuZHJlIE9saXZhICA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+CgoJKiB0ZXN0X3N1bW1hcnkgKC1wLCBwcmVwZW5kX2xvZ3MpOiBBZGQgdGhlc2UgYmVmb3JlIHRoZSBzdW1tYXJ5LgoJKENvbXBpbGVyLCBQbGF0Zm9ybSk6IFByaW50IHRoZXNlIGp1c3QgYmVmb3JlIGNvbmZpZ2ZsYWdzLgoKU2F0IE9jdCAzMSAxMDo1Mzo0MCAxOTk4ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiB3YXJuX3N1bW1hcnkgKGxvbmdMaW5lRmlsdGVyKTogTmV3IHNoZWxsIGZ1bmN0aW9uIHRvIGVuY2Fwc3VsYXRlCgl0aGlzIGZ1bmN0aW9uYWxpdHkuICBJdCBpcyBvZmYgYnkgZGVmYXVsdCwgb25seSBhY3RpdmUgaWYgLWxsZgoJZmxhZyBpcyBzcGVjaWZpZWQuCgkoc3ViZGlyZWN0b3J5RmlsdGVyKTogRml4IGJ1ZyBpbiBmaWx0ZXJpbmcgd2hpY2ggbWFkZSBzb21lCglzdWJkaXJlY3Rvcnkgd2FybmluZ3MgZXJyb25lb3VzbHkgYXBwZWFyIGluIHRoZSB0b3BsZXZlbCBzZXQuCgkoc3RhZ2VOZmlsdGVyKTogUmVuYW1lZCBmcm9tIGBzdGFnZU53YXJucycuICBVcGRhdGVkIHRvIGNvbGxlY3QKCXdhcm5pbmdzIGZyb20gc3RhZ2UxIGFzIHdlbGwgYXMgc3RhZ2UwLCB3aGljaCBtZWFucyB3YXJuaW5ncyBmcm9tCglvdXRzaWRlIHRoZSBib290c3RyYXAgZGlyZWN0b3J5LiAgRWcsIHRoZSBsaWJyYXJpZXMsIGV0Yy4KCSh3YXJuaW5nRmlsdGVyKTogTmV3IHNoZWxsIGZ1bmN0aW9uIHRvIGVuY2Fwc3VsYXRlIHRoaXMKCWZ1bmN0aW9uYWxpdHkuCgkoa2V5d29yZEZpbHRlcik6IE5ldyBzaGVsbCBmdW5jdGlvbiB0byBlbmNhcHN1bGF0ZSB0aGlzCglmdW5jdGlvbmFsaXR5LgoKCVN0b3JlIGRhdGEgaW4gYSB0ZW1wIGZpbGUgcmF0aGVyIHRoYW4gY2FsY3VsYXRpbmcgaXQgM3guICBBcnJhbmdlCgl0byByZW1vdmUgaXQgb24gZXhpdCBhbmQgc2lnbmFscy4KCglBZGQgLXBhc3MvLXdwYXNzIGZsYWdzIHRvIGRvICJwYXNzIHRocm91Z2giIChpLmUuIG1hbnVhbAoJaW5zcGVjdGlvbikgb2YgYm9vdHN0cmFwIG91dHB1dCBmcm9tIGEgcGFydGljdWxhciBzdGFnZU4gYXMgd2VsbAoJYXMgbGFuZ3VhZ2Ugc3ViZGlycy4KCglBZGQgYmV0dGVyIGNvbW1lbnRzL2RvY3VtZW50YXRpb24uCgpTYXQgT2N0IDMxIDE2OjM5OjMxIDE5OTggIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIGVnY3NfdXBkYXRlOiBBZGQgY29tbWVudCBhYm91dCBrZWVwaW5nIHRoZSBGQVEgc3luY2hyb25pemVkLgoKRnJpIE9jdCAzMCAwMDozOToyNyAxOTk4ICBKZWZmcmV5IEEgTGF3ICAobGF3QGN5Z251cy5jb20pCgoJKiBlZ2NzX3VwZGF0ZTogRG8gdG91Y2ggamF2YS9wYXJzZS5jIGFuZCBqYXZhL3BhcnNlLXNjYW4uYy4gVGhleSdyZQoJaW4gdGhlIHJlcG8gYWdhaW4uCgpGcmkgT2N0IDE2IDA3OjM1OjAwIDE5OTggIEJydWNlIEtvcmIgPGtvcmJAZGF0YWRlc2lnbi5jb20+CgoJKiBlZ2NzX3VwZGF0ZTogIEFkZGVkIGdjYy9maXhpbmMvKiBnZW5lcmF0ZWQgZmlsZXMgdG8gdG91Y2ggbGlzdC4KClR1ZSBPY3QgMTMgMjM6Mjg6MzMgMTk5OCAgSmVmZnJleSBBIExhdyAgKGxhd0BjeWdudXMuY29tKQoKCSogZWdjc191cGRhdGU6IFJlbW92ZSBnY2MvamF2YS9wYXJzZS5jIGZyb20gbGlzdCBvZiBmaWxlcyB0bwoJdG91Y2guCgpXZWQgT2N0ICA3IDEzOjAwOjQwIDE5OTggIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGdwZXJmLTIuNy0xOTk4MTAwNi5wYXQ6IE5ldyBmaWxlLCBwYXRjaCBmb3IgZWdjcy1sb2NhbCBncGVyZi4KCk1vbiBPY3QgIDUgMTQ6MTk6NDggMTk5OCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogd2Fybl9zdW1tYXJ5IChzdWJkaXJlY3RvcnlGaWx0ZXIpOiBOZXcgc2hlbGwgZnVuY3Rpb24gdG8KCW9wdGlvbmFsbHkgZmlsdGVyIGluL291dCBnY2Mgc3ViZGlyZWN0b3JpZXMgd2hlbiBzdW1tYXJpemluZwoJd2FybmluZ3MuICBBZGQgbmV3IGZsYWdzIHRvIHN1cHBvcnQgc3ViZGlyZWN0b3J5IGZpbHRlcmluZy4KCglBbHNvLCBlbnN1cmUgdGhlIGJvb3RzdHJhcCBzdGFnZSBpcyBhIG51bWJlci4gIEFkZCBzb21lIG1vcmUgQwoJa2V5d29yZHMgdGhhdCBhcmUgcHJlc2VydmVkIGluIHRoZSAid2FybmluZyB0eXBlIiBzdW1tYXJ5IGFuZAoJdGlnaHRlbiB1cCB0aGUgImFyZyA/Pz8iIHJlZ2V4cC4KClR1ZSBTZXAgMjIgMDc6MzAgQnJ1Y2UgS29yYiA8a29yYkBkYXRhZGVzaWduLmNvbT4KCgkqIGZpeGluYy9pbmNsaGFjay5kZWY6ICBOb3QgYWxsIEMrKyBjb21tZW50cyBpbiBDIGhlYWRlcnMKCXdlcmUgdHJlYXRlZCBhbGlrZS4gIFRoZXkgYXJlIG5vdy4gIEFsc28gZml4ZWQgc3ludGF4CglvZiBzZWQgZXhwcmVzc2lvbiBpbiAic3lzdHlwZXMiIGZpeC4KCgkqIGZpeGluYy9pbmNsaGFjay5kZWY6ICBSZW1vdmVkIFNWUjQuMi1pc20gZnJvbSBzaGVsbCBpbnZvY2F0aW9uCgoJKiBlZ2NzX3VwZGF0ZTogIEFkZGVkIGZpeGluYy8qIGdlbmVyYXRlZCBmaWxlcyB0byB0b3VjaCBsaXN0LgoKV2VkIFNlcCAxNiAxNjowNjo1MSAxOTk4ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBlZ2NzX3VwZGF0ZTogQWRkaXRpb25hbGx5IHRvdWNoIGdjYy9qYXZhL3BhcnNlLltjaF0uCgpUaHUgU2VwICA5IDE2OjQ4IEJydWNlIEtvcmIgPGtvcmJAZGF0YWRlc2lnbi5jb20+CgoJKiBmaXhpbmMvaW5jbGhhY2suZGVmOiAgQWRkZWQgdHdvIGZpbGVzIHJlcXVpcmVkIGJ5CglTQ08ncyBPcGVuIFNlcnZlciA1J3MgYXZvaWRfYm9vbCBmaXguCglSZWdlbmVyYXRlZCBmaXhpbmMueCBhbmQgaW5jbGhhY2suc2ggdG8gaW5jb3Jwb3JhdGUKCXRoZSB1cGRhdGUuCgpUaHUgU2VwICAzIDEwOjExOjMyIDE5OTggIFJvYmVydCBMaXBlICAgPHJvYmVydGxAZGdpaS5jb20+CgoJKiBlZ2NzX3VwZGF0ZTogRG8gdGhlIHBhc3MgMSBDVlMgdXBkYXRlIG9ubHkgZm9yIGZpbGVzIHRoYXQKCW1heSByZWFzb25hYmx5IGJlIHVuZGVyIENWUyBjb250cm9sLgoKMTk5OC0wOC0xNCAgQWxleGFuZHJlIE9saXZhICA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+CgoJKiB0ZXN0X2luc3RhbGxlZDogTmV3IHNjcmlwdCBmb3IgdGVzdGluZyBhbHJlYWR5LWluc3RhbGxlZAoJZ2NjL2crKy9nNzcuCgpXZWQgQXVnIDEyIDE5OjU5OjM2IDE5OTggIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIGVnY3NfdXBkYXRlOiBBc3NpZ25lZCBjb3B5cmlnaHQgdG8gRlNGLgoKVHVlIEF1ZyAxMSAxNzo1NTo1MyAxOTk4ICBHZXJhbGQgUGZlaWZlciAgPHBmZWlmZXJAZGJhaS50dXdpZW4uYWMuYXQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgQWxleGFuZHJlIE9saXZhICA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+CgoJKiBlZ2NzX3VwZGF0ZTogTmV3IHN3aXRjaCAtLW5vc3RkZmxhZ3MgYW5kIGRvY3VtZW50YXRpb24KCWVuaGFuY2VtZW50cy4KClR1ZSBBdWcgMTEgMTc6MzM6MTkgMTk5OCAgR2VyYWxkIFBmZWlmZXIgIDxwZmVpZmVyQGRiYWkudHV3aWVuLmFjLmF0PgoKCSogZWdjc191cGRhdGU6IE5ldyBzY3JpcHQuCgoxOTk4LTA4LTA1ICBCcnVjZSBLb3JiIDxrb3JiYkBkYXRhZGVzaWduLmNvbT4KCgkqIGZpeGluYy9NYWtlZmlsZQoJQWRkZWQgZGVmaW5lIGZvciB0YXJnZXQgbWFjaGluZSBzbyBtYWNoaW5lLXNwZWNpZmljIHRlc3RzCgljYW4gYmUgc2VsZWN0ZWQgZm9yIG9yIGFnYWluc3QuCgoJKiBmaXhpbmMvZml4aW5jbC5jCglBZGRlZCBhbiBhcnJheSBvZiBzdHJpbmcgcG9pbnRlcnMgdG8gbWFjaGluZXMgdG8gc2VsZWN0CglvciBhdm9pZCwgZGVwZW5kaW5nIG9uIGEgRkRfTUFDSF9JRk5PVCBiaXQgZmxhZy4KCVVzZWQgYSBzaGVsbCBzY3JpcHQgdG8gbWF0Y2ggdGhlIGRlZmluZWQgVEFSR0VUX01BQ0hJTkUKCXdpdGggYW55IG9mIHRoZSBnaXZlbiBtYXRjaCBwYXR0ZXJucy4KCgkqIGZpeGluYy9maXhpbmNsLnRwbAoJR2VuZXJhdGUgdGhlIGFycmF5IG9mIHN0cmluZ3MgYW5kIGJpdCBmbGFnLCBhcyBuZWVkZWQsCglkZXBlbmRpbmcgb24gIm1hY2giIGFuZCAibm90X21hY2hpbmUiIGF0dHJpYnV0ZXMgZm9yIGEgZml4LgoKCSogZml4aW5jL21rZml4aW5jLnNoCglJbnZva2UgdGhlIG1ha2Ugd2l0aCBUQVJHRVQgYXNzaWduZWQgdGhlIHZhbHVlIG9mIHRoZQoJbWFjaGluZSBuYW1lIGFyZ3VtZW50LgoKTW9uIEp1bCAyNyAyMjowODoxMiAxOTk4ICBNaWtlIFN0dW1wICAobXJzQHdycy5jb20pCgoJKiBjb21wYXJlX3Rlc3RzOiBOZXcgc2NyaXB0LgoKMTk5OC0wNy0yOCAgQWxleGFuZHJlIE9saXZhICA8b2xpdmFAZGNjLnVuaWNhbXAuYnI+CgoJKiB0ZXN0X3N1bW1hcnk6IEFzc2lnbmVkIGNvcHlyaWdodCB0byBGU0YuCgpNb24gSnVsIDI3IDIwOjMzOjAyIDE5OTggIEdlcmFsZCBQZmVpZmVyICA8cGZlaWZlckBkYmFpLnR1d2llbi5hYy5hdD4KCgkqIHRlc3Rfc3VtbWFyeTogQ29ycmVjdGVkIHNjcmlwdCBuYW1lIGluIGNvbW1lbnRzIHByb3ZpZGluZwoJZG9jdW1lbnRhdGlvbi4gIEFkZGVkIGxpbmVicmVha3MgZm9yIGxpbmVzIHdpdGggPiA4MCBjaGFyYWN0ZXJzLgoKRnJpIEp1biAxOSAwMjozNjo1OSAxOTk4ICBBbGV4YW5kcmUgT2xpdmEgPG9saXZhQGRjYy51bmljYW1wLmJyPgoKCSogdGVzdF9zdW1tYXJ5OiBOZXcgc3dpdGNoLCAtaSwgYW5kIGVudmlyb25tZW50IHZhcmlhYmxlLAoJYXBwZW5kX2xvZ3MsIGZvciBpbmNsdWRpbmcgZmlsZXMgaW4gdGhlIHJlcG9ydC4KCjE5OTgtMDYtMDEgIE1hbmZyZWQgSG9sbHN0ZWluICA8bWFuZnJlZEBzLWRpcmVrdG5ldC5kZT4KCgkqIHdhcm5fc3VtbWFyeTogVXBkYXRlIHRvIEthdmVoJ3MgbGF0ZXN0IHZlcnNpb24gYWxsb3dpbmcgdG8KCXNwZWNpZnkgdGhlIGxhc3Qgc3RhZ2UgYnVpbHQuCgoxOTk4LTA1LTI5ICBCcnVjZSBLb3JiIDxrb3JiYkBkYXRhZGVzaWduLmNvbT4KCgkqIGZpeGluYy9ta2ZpeGluYy5zaAoJQ2hhbmdlcyB0byBtYWtlIGl0IGVhc2llciB0byBpbnZva2Ugb24gcGxhdGZvcm1zIHRoYXQKCW5vcm1hbGx5IGRvIG5vdCBpbnZva2UgZml4aW5jbHVkZXMuCgoJKiBmaXhpbmMvaW5jbGhhY2suZGVmCglBcHBsaWVkIGZpeGVzIGZyb20gZWdjcy9nY2MvZml4aW5jbHVkZXMgZnJvbSB0aGUgcGFzdCBzZXZlcmFsCgltb250aHMuCgoxOTk4LTA1LTI4ICBCcnVjZSBLb3JiIDxrb3JiYkBkYXRhZGVzaWduLmNvbT4KCgkqIGZpeGluYy8qOiBVcGRhdGVkIG1vc3QgZXZlcnl0aGluZyBmb3IgYSBmaXJzdCByZWFsCgl0cnkgYXQgZ2V0dGluZyAiZmFzdF9maXhpbmNsdWRlcyIgd29ya2luZy4KCjE5OTgtMDUtMjggIEphc29uIE1lcnJpbGwgIDxqYXNvbkB5b3JpY2suY3lnbnVzLmNvbT4KCgkqIGluZGV4LXByb3A6IE5ldyBmaWxlLgoKU2F0IE1heSAyMyAyMzozODo0OSAxOTk4ICBNYXR0aGlhcyBLbG9zZSAgPGRva29AY3MudHUtYmVybGluLmRlPgoKCSogdGVzdF9zdW1tYXJ5OiBmaW5kIGdvb2QgYXdrIChjb3BpZWQgZnJvbSB3YXJuX3N1bW1hcnkpLgoKU2F0IE1heSAyMyAyMzozODozMyAxOTk4ICBKZWZmcmV5IEEgTGF3ICAobGF3QGN5Z251cy5jb20pCgoJKiB0ZXN0X3N1bW1hcnksIHdhcm5fc3VtbWFyeTogTmV3IGZpbGVzCg==