MjAwMS0xMi0yMCAgSnVsaWFuIHYuIEJvY2sgIDxqdWxpYW5Ad29uZ3IubmV0PgoKCSogcmVhZGVsZi5jIChwcmludF9zeW1ib2wpOiBOZXcgZnVuY3Rpb246IFByaW50IGEgZm9ybWF0dGVkIHN5bWJvbAoJbmFtZS4gIElmIC0td2lkZSBpcyBzcGVjaWZpZWQgZG8gbm90IHRydW5jYXRlIGl0LgoJKGR1bXBfcmVsb2NhdGlvbnMpOiBVc2UgcHJpbnRfc3ltYm9sKCkgdG8gcHJpbnQgc3ltYm9sIG5hbWVzLgoJKHByb2Nlc3Nfc3ltYm9sX3RhYmxlKTogTGlrZXdpc2UuCgkocHJvY2Vzc19zeW1pbmZvKTogTGlrZXdpc2UuCgkocHJvY2Vzc19taXBzX3NwZWNpZmljKTogTGlrZXdpc2UuCgkodXNhZ2UpOiBEb2N1bWVudCBuZXcgZmVhdHVyZSBvZiAtLXdpZGUgc3dpdGNoLgoJKiBkb2MvYmludXRpbHMudGV4aSAob2JqZHVtcCk6IERvY3VtZW50IGFkZGl0aW9uYWwgYmVoYXZpb3VyIG9mCgktLXdpZGUuCgoyMDAxLTEyLTE4ICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAcmVkaGF0LmNvbT4KCgkqIG9iamNvcHkuYyAoY29weV9maWxlKTogQWNjZXB0IGNvcmVmaWxlcyAoZm9ybWF0IGJmZF9jb3JlKS4KCShjb3B5X29iamVjdCk6IERvbid0IHNldCB0aGUgc3RhcnQgYWRkcmVzcyBvciBmbGFncyBvZiBhIGNvcmUgZmlsZS4KCShjb3B5X3NlY3Rpb24pOiBEb24ndCByZWxvY2F0ZSBhIGNvcmUgZmlsZS4gIERvbid0IGNvcHkgY29udGVudHMKCWlmIHRoZSBpbnB1dCBzZWN0aW9uIGhhcyB0aGUgY29udGVudHMgZmxhZyBzZXQsIGJ1dCB0aGUgb3V0cHV0CglzZWN0aW9uIGRvZXMgbm90ICh3aGljaCBoYXBwZW5zIHdpdGggdGhlIGZha2UgJ25vdGUnIHBzZXVkby0KCXNlY3Rpb25zIHRoYXQgQkZEIGNyZWF0ZXMgZm9yIGNvcmVmaWxlcykuCgoyMDAxLTEyLTE4ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9mbGFncyk6IFJlY29nbml6ZSBoZWFkZXIgZmxhZ3MgZm9yIEFCSSBhbmQKCUFTRSBleHRlbnNpb25zLiBNb3JlIHJvYnVzdCBjb2RlIGZvciBJU0EgY2hlY2tpbmcuIElnbm9yZSBlbXB0eSBmaWVsZHMKCWluIGhlYWRlciBmbGFncyBmb3IgR05VIGV4dGVuc2lvbnMuCgoyMDAxLTEyLTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogb2JqY29weS5jIChjb3B5X2FyY2hpdmUpOiBTZXQgb3V0cHV0IGJmZCBmb3JtYXQgb3V0c2lkZSB0aGUgbG9vcC4KCjIwMDEtMTItMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcG8vamEucG86IEltcG9ydCBmcm9tIHRyYW5zbGF0aW9uIHByb2plY3QuCgkqIGNvbmZpZ3VyZS5pbiAoQUxMX0xJTkdVQVMpOiBBZGQgamEuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDEtMTItMTggIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBhZGRyMmxpbmUuYyAobWFpbik6IFByb3RveXBlLgoJKiBhci5jIChtYWluKTogUHJvdG95cGUuCgkqIG5tLmMgKG1haW4pOiBQcm90b3lwZS4KCSogb2JqY29weS5jIChtYWluKTogUHJvdG95cGUuCgkqIG9iamR1bXAuYyAobWFpbik6IFByb3RveXBlLgoJKiBzaXplLmMgKG1haW4pOiBQcm90b3lwZS4KCSogc3RyaW5ncy5jIChtYWluKTogUHJvdG95cGUuCgoyMDAxLTEyLTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZGVsZi5jIChzeW10YWJfc2huZHhfaGRyKTogTmV3IGdsb2JhbC4KCShTRUNUSU9OX0hFQURFUl9JTkRFWCk6IERlZmluZS4KCShTRUNUSU9OX0hFQURFUl9OVU0pOiBEZWZpbmUuCgkoU0VDVElPTl9IRUFERVIpOiBEZWZpbmUuCgkoR0VUX0VMRl9TWU1CT0xTKTogUGFzcyB0d28gcGFyYW1zIHJhdGhlciB0aGFuIHRocmVlLgoJKGdldF8zMmJpdF9lbGZfc3ltYm9scyk6IFRha2UgZmlsZSBhbmQgc2VjdGlvbiBhcmdzLiAgUmVhZCBhbmQKCXVzZSBTSFRfU1lNVEFCX1NITkRYLgoJKGdldF82NGJpdF9lbGZfc3ltYm9scyk6IExpa2V3aXNlLgoJKGR1bXBfcmVsb2NhdGlvbnMpOiBVc2UgU0VDVElPTl9IRUFERVIgdG8gaW5kZXggInNlY3Rpb25faGVhZGVycyIuCgkocHJvY2Vzc19zZWN0aW9uX2hlYWRlcnMpOiBMaWtld2lzZS4gIFVzZSBTRUNUSU9OX0hFQURFUl9OVU0gdG9vLgoJUmVtZW1iZXIgc3ltdGFiX3NoZHhfaGRyLgoJKHByb2Nlc3NfcHJvZ3JhbV9oZWFkZXJzKTogU2NhbiBmcm9tIGluZGV4IDEgZm9yIHNlZ21lbnQgbWFwLgoJKHNsdXJwX2lhNjRfdW53aW5kX3RhYmxlKTogVXNlIFNFQ1RJT05fSEVBREVSIHRvIGluZGV4Cgkic2VjdGlvbl9oZWFkZXJzIi4KCShwcm9jZXNzX3JlbG9jcyk6IExpa2V3aXNlLiAgQWxzbyBhZGp1c3QgY2FsbCB0byBHRVRfRUxGX1NZTUJPTFMuCgkocHJvY2Vzc191bndpbmQpOiBMaWtld2lzZS4KCShwcm9jZXNzX3ZlcnNpb25fc2VjdGlvbnMpOiBMaWtld2lzZS4KCShwcm9jZXNzX3N5bWJvbF90YWJsZSk6IExpa2V3aXNlLgoJKGRpc3BsYXlfZGVidWdfaW5mbyk6IExpa2V3aXNlLgoJKHByb2Nlc3NfZHluYW1pY19zZWdtZW50KTogRmFrZSB1cCBhIHN5bXRhYiBzZWN0aW9uIGZvciBjaGFuZ2VkCglHRVRfRUxGX1NZTUJPTFMuCgkoZ2V0X3N5bWJvbF9pbmRleF90eXBlKTogQ2hlY2sgU0hOX0xPT1MgYmVmb3JlIFNITl9MT1JFU0VSVkUuCgkocHJvY2Vzc19wcm9ncmFtX2hlYWRlcnMpOiBLaWxsIHNpZ25lZC91bnNpZ25lZCB3YXJuaW5nLgoJKGxvYWRfZGVidWdfc3RyKTogTGlrZXdpc2UuCgkoZGlzcGxheV9kZWJ1Z19pbmZvKTogTGlrZXdpc2UuCgoyMDAxLTEyLTEzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZ2V0X3NlZ21lbnRfdHlwZSk6IFN1cHBvcnQgUFRfR05VX0VIX0ZSQU1FLgoKMjAwMS0xMi0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc19maWxlX2hlYWRlcik6IFByaW50IGV4dGVuZGVkIGVfc2hudW0gYW5kCgllX3NoZHRybmR4IHZhbHVlcy4gIFNldCBlbGZfaGVhZGVyIHZhbHVlcyBmb3Igc2FtZS4KCShnZXRfMzJiaXRfc2VjdGlvbl9oZWFkZXJzKTogQWRkICJudW0iIGFyZyB0byByZWFkICJudW0iIGhlYWRlcnMuCgkoZ2V0XzY0Yml0X3NlY3Rpb25faGVhZGVycyk6IExpa2V3aXNlLgoJKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogVXBkYXRlIGNhbGxzLgoJKGdldF9maWxlX2hlYWRlcik6IENhbGwgZ2V0XzMyYml0X3NlY3Rpb25faGVhZGVycyBvciA2NGJpdCB2YXJpYW50LgoKMjAwMS0xMi0xMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBvYmpjb3B5LmMgKHNldHVwX3NlY3Rpb24pOiBDb3B5IGVudHNpemUuCgoyMDAxLTEyLTA3ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGd1ZXNzX2lzX3JlbGEpOiBBZGQgc3VwcG9ydCBmb3Igc3Rvcm15MTYuCgkoZHVtcF9yZWxvY2F0aW9ucyk6IExpa2V3aXNlLgoJKGdldF9tYWNoaW5lX25hbWUpOiBMaWtld2lzZS4KCjIwMDEtMTItMDUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZGxsd3JhcC5jIChtYWluKSBSZXBsYWNlIG11bHRpcGxlIHN0cmluZ3MgZGVzY3JpYmluZyBhCglzaW5nbGUgZXJyb3Igd2l0aCBhIHNpbmdsZSwgbmV3bGluZSBlc2NhcGVkIHNlbnRlbmNlIHRvIHBlcm1pdAoJYmV0dGVyIHRyYW5zbGF0aW9uIGludG8gZm9yZWlnbiBsYW5ndWFnZXMuCgoJKiByZWFkZWxmLmMgKGdldF9lbGZfY2xhc3MpOiBSZW1vdmUgaW50ZXJuYWxpb25hbGlzYXRpb24gb2YgRUxGCgljbGFzcyBuYW1lcy4KCjIwMDEtMTItMDQgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBzdHJpbmdzLmMgKGdldF9jaGFyKTogSW5pdGlhbGl6ZSB2YWx1ZS4KCjIwMDEtMTItMDQgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBhcmxleC5sOiBTaWxlbmNlIGNvbXBpbGUgd2FybmluZ3MuCgkqIGFyc3VwLmg6IExpa2V3aXNlLiBGaXggZm9ybWF0dGluZy4KCjIwMDEtMTItMDQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogc3RyaW5ncy5jOiBJbmNsdWRlIGNvbmZpZy5oIGJlZm9yZSBiZmQuaC4KCShmaWxlX29mZik6IE5ldyB0eXBlLgoJKGZpbGVfb3Blbik6IERlZmluZS4KCShwcmludF9zdHJpbmdzKTogVXNlIGZpbGVfb2ZmIGluc3RlYWQgb2YgZmlsZV9wdHIuICBQcmludCBhZGRyZXNzZXMKCXdoaWNoIGRvbid0IGZpdCBpbnRvIGxvbmcgY29ycmVjdGx5LgoJKGdldF9jaGFyKTogVXNlIGZpbGVfb2ZmIGluc3RlYWQgb2YgZmlsZV9wdHIuICBVc2UgZ2V0Y191bmxvY2tlZCBpZgoJYXZhaWxhYmxlLgoJKHN0cmluZ3NfZmlsZSk6IFVzZSBmaWxlX29mZiBpbnN0ZWFkIG9mIGZpbGVfcHRyLiAgVXNlIGZpbGVfb3Blbi4KCSogY29uZmlndXJlLmluOiBDaGVjayBmb3IgZ2V0Y191bmxvY2tlZC4KCUNoZWNrIGZvciBmb3BlbjY0IGFuZCB3aGV0aGVyIF9MQVJHRUZJTEU2NF9TT1VSQ0UgbmVlZHMgdG8KCWJlIGRlZmluZWQgZm9yIGl0LgoJKiBjb25maWd1cmU6IFJlYnVpbHQuCgkqIGNvbmZpZy5oLmluOiBSZWJ1aWx0LgoKMjAwMS0xMS0yOSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBidWNvbW0uYyAobWFrZV90ZW1wbmFtZSk6IFJldmVydCB0aGUgY2hhbmdlcyBtYWRlIG9uCgkyMDAxLTExLTE0IGFuZCAyMDAxLTExLTEyLiBUaGV5IHdvbid0IHdvcmsgd2l0aCBkaXJlY3Rvcmllcy4KCjIwMDEtMTEtMjMgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBiaW51dGlscy9NYWtlZmlsZS5hbSAoY2hlY2stREVKQUdOVSk6IFBhc3MgQ0NfRk9SX1RBUkdFVCBhbmQKCUNGTEFHU19GT1JfVEFSR0VUIHRvIHJ1bnRlc3QgaW4gZW52aXJvbm1lbnQuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoJKiBkb2MvTWFrZWZpbGUuaW46IFJlYnVpbGQuCgoyMDAxLTExLTI4ICBNaWtlIFN0dW1wICA8bXJzQHdycy5jb20+CgoJKiBvYmpjb3B5LmMgKHNldHVwX3NlY3Rpb24pOiBQcmVzZXJ2ZSBTRUNfUkVMT0Mgd2hlbgoJLS1zZXQtc2VjdGlvbi1mbGFncyBpcyB1c2VkLgoKMjAwMS0xMS0xOSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGRvX2RlYnVnX3N0cik6IE5ldyB2YXJpYWJsZS4KCShkaXNwbGF5X2RlYnVnX3N0cik6IE5ldyBmdW5jdGlvbjogRGlzcGxheSB0aGUgY29udGVudHMgb2YgYQoJLmRlYnVnX3N0ciBzZWN0aW9uLgoJKGxvYWRfZGVidWdfc3RyKTogTmV3IGZ1bmN0aW9uOiBMb2FkIGluIHRoZSBjb250ZW50cyBvZiBhCgkuZGVidWdfc3RyIHNlY3Rpb24uCgkoZnJlZV9kZWJ1Z19zdHIpOiBOZXcgZnVuY3Rpb246IEZyZWUgdGhlIG1lbW9yeSB1c2VkIGJ5Cglsb2FkX2RlYnVnX3N0cigpLgoJKGZldGNoX2luZGlyZWN0X3N0cmluZyk6IFJldHJpZXZlIGEgc3RyaW5nIGZyb20gdGhlIC5kZWJ1Z19zdHIKCXNlY3Rpb24uCgkodXNhZ2UpOiBBZGQgLXdzLgoJKHBhcnNlX2FyZ3MpOiBBY2NlcHQgLXdzLgoJKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogQWxsb3cgdGhlIGRpc3BsYXkgb2YgdGhlIC5kZWJ1Z19zdHIKCXNlY3Rpb24uCgkocmVhZF9hbmRfZGlzcGxheV9hdHRyX3ZhbHVlKTogVXNlIGZldGNoX2luZGlyZWN0X3N0cmluZy4gIFNob3cKCW9mZnNldCBpbnRvIC5kZWJ1Z19zdHIgc2VjdGlvbi4KCShkaXNwbGF5X2RlYnVnX2luZm8pOiBVc2UgbG9hZF9kZWJ1Z19zdHIgYW5kIGZyZWVfZGVidWdfc3RyLgoJKGRlYnVnX2Rpc3BsYXlzKTogQWRkIC5kZWJ1Z19zdHIuCgkqIGRvYy9iaW51dGlscy50ZXhpOiBEb2N1bWVudCAtd3MuCgoyMDAxLTExLTE5ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiB0ZXN0c3VpdGUvYmludXRpbHMtYWxsL29iamR1bXAuZXhwOiBBZGQgeDg2LTY0LgoKMjAwMS0xMS0xNSAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIHJlYWRlbGYuYzogRml4IHdhcm5pbmdzIHdpdGhvdXQgdGVybWluYXRpbmcgbmV3bGluZS4KCjIwMDEtMTEtMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkb2MvYmludXRpbHMudGV4aSAob2JqZHVtcCk6IERvY3VtZW50IHBwYyAtTSBvcHRpb25zLgoKMjAwMS0xMS0xNCAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZG9jL2JpbnV0aWxzLnRleGkgKG9iamR1bXApOiBGaXggZGVzY3JpcHRpb24gdG8gdXNlIHg4Ni02NC4KCjIwMDEtMTEtMTQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogYnVjb21tLmMgKG1ha2VfdGVtcG5hbWUpOiBVc2UgbWtzdGVtcHMgaW5zdGVhZCBvZiBta3N0ZW1wLCBzaW5jZQoJbm90IGFsbCBzeXN0ZW1zIHByb3ZpZGUgbWtzdGVtcC4KCjIwMDEtMTEtMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkb2MvYmludXRpbHMudGV4aSAob2JqZHVtcCk6IERvY3VtZW50IHg4NiAtTSBvcHRpb25zLgoKMjAwMS0xMS0xMyAgS2VpdGggV2Fsa2VyIDxrZWl0aC53YWxrZXJAYXJtLmNvbT4KCgkqIHJlYWRlbGYuYyAocmVhZF9hbmRfZGlzcGxheV9hdHRyX3ZhbHVlKTogTmV3IGZ1bmN0aW9uIHRvCgloYW5kbGUgRFdfRk9STV9pbmRpcmVjdC4KCShyZWFkX2FuZF9kaXNwbGF5X2F0dHIpOiBVc2UgaXQuCgoyMDAxLTExLTEzICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGRpc3BsYXlfZGVidWdfbGluZXMpOiBEZWFsIHdpdGggdW5rbm93biBzdGFuZGFyZAoJb3Bjb2Rlcy4gIEhhbmRsZSBEV19MTlNfc2V0X3Byb2xvZ3VlX2VuZCwgRFdfTE5TX3NldF9lcGlsb2d1ZV9iZWdpbiwKCURXX0xOU19zZXRfaXNhLgoKMjAwMS0xMS0xMyAgVGltb3RoeSBXYWxsICA8dHdhbGxAYWx1bS5taXQuZWR1PgoKCSogTUFJTlRBSU5FUlM6IEFkZCBzZWxmIGFzIHRpYzU0eCBtYWludGFpbmVyLiAgVGhpcyB0YXJnZXQKCWluY2x1ZGVzIHRoZSBJQk0gQzU0WERTUCBjbG9uZS4KCjIwMDEtMTEtMTIgICogU3RldmVuIEouIEhpbGwgPHNqaGlsbEByZWFsaXR5ZGlsdXRlZC5jb20+CgoJKiBidWNvbW0uYyAobWFrZV90ZW1wbmFtZSk6IFVzZSBta3N0ZW1wIGluIHBsYWNlIG9mIG1rdGVtcC4KCjIwMDEtMTEtMDkgIEplZmZyZXkgQSBMYXcgIChsYXdAY3lnbnVzLmNvbSkKCgkqIHVud2luZC1pYTY0LmMgKHVud19wcmludF9icm1hc2spOiBGaXggSVNPIEMgcG9ydGFiaWxpdHkgZ2xpdGNoLgoJKHVud19wcmludF9ncm1hc2ssIHVud19wcmludF9mcm1hc2ssIHVud19wcmludF9hYnJlZyk6IExpa2V3aXNlLgoJKHVud19wcmludF94eXJlZywgdW53X2RlY29kZV94MSwgdW53X2RlY29kZV94Mik6IExpa2V3aXNlLgoJKHVud19kZWNvZGVfeDMsIHVud19kZWNvZGVfcjEsIHVud19kZWNvZGVfcjIpOiBMaWtld2lzZS4KCSh1bndfZGVjb2RlX3IzLCB1bndfZGVjb2RlX3AxLCB1bndfZGVjb2RlX3AyX3A1KTogTGlrZXdpc2UuCgkodW53X2RlY29kZV9wNiwgdW53X2RlY29kZV9wN19wMTAsIHVud19kZWNvZGVfYjEpOiBMaWtld2lzZS4KCSh1bndfZGVjb2RlX2IyLCB1bndfZGVjb2RlX2IzX2I0KTogTGlrZXdpc2UuCgoJKiByZWFkZWxmLmMgKGdldF9lbGZfY2xhc3MpOiBGaXggSVNPIHBvcnRhYmlsaXR5IGdsaXRjaC4KCShnZXRfZGF0YV9lbmNvZGluZywgZ2V0X29zYWJpX25hbWUsIHJlcXVlc3RfZHVtcCk6IExpa2V3aXNlLgoKMjAwMS0xMS0wNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGRlYnVnX3N0ciwgZGVidWdfc3RyX3NpemUpOiBOZXcuCgkoZGlzcGxheV9kZWJ1Z19hYmJyZXYpOiBJZiBubyBhYmJyZXZzIHdlcmUgcmVhZCwgc2tpcCB0aGUgQ1UuCglDYWxsIGZyZWVfYWJicmV2cy4KCShyZWFkX2FuZF9kaXNwbGF5X2FkZHIpOiBIYW5kbGUgRFdfRk9STV9zdHJwLgoJKGRpc3BsYXlfZGVidWdfaW5mbyk6IFJlYWQgLmRlYnVnX3N0ciBzZWN0aW9uIGlmIHByZXNlbnQsCglzbyB0aGF0IERXX0ZPUk1fc3RycCBjYW4gYmUgaGFuZGxlZC4KCUZpeCB0ZXN0IGZvciBub24tZXhpc3RhbnQgLmRlYnVnX2FiYnJldiBzZWN0aW9uLgoKMjAwMS0xMS0wNSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBhcmxleC5sOiBBY2NlcHQgYFwnIGluIGZpbGVuYW1lcy4gIFBhdGNoIGJ5IDxlYXJsX2NoZXdAYWdpbGVudC5jb20+LgoKCSogYXJzdXAuYyAoYXJfb3Blbik6IFByZXBlbmQgdG1wLSB0byBiYXNlbmFtZSwgbm90IHdob2xlIHBhdGguCgoyMDAxLTExLTA1ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBzZWxmIGFzIHMzOTAvczM5MHggbWFpbnRhaW5lci4KCjIwMDEtMTEtMDIgIFRvbSBSaXggIDx0cml4QGJsdWV5LmN5Z251cy5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIHNlbGYgYXMgUFBDIFhDT0ZGIG1haW50YWluZXIuCgoyMDAxLTExLTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoQUxMX0xJTkdVQVMpOiBBZGQgImZyIiBhbmQgInRyIi4KCSogY29uZmlndXJlOiBSZWdlcm5hdGUuCgkqIHBvL2ZyLnBvOiBOZXcgZmlsZS4KCSogcG8vdHIucG86IE5ldyBmaWxlLgoKMjAwMS0xMC0zMCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBzZWxmIGFzIE1NSVggcG9ydCBtYWludGFpbmVyLgoJKiByZWFkZWxmLmM6IEluY2x1ZGUgZWxmL21taXguaC4KCShndWVzc19pc19yZWxhKTogTU1JWCBpcyBSRUxBLgoJKGR1bXBfcmVsb2NhdGlvbnMpOiBIYW5kbGUgTU1JWCByZWxvY2F0aW9ucy4KCSogTWFrZWZpbGUuYW06IFJlZ2VuZXJhdGUgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMTAtMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChwYXJzZV9hcmdzKTogSGFuZGxlIG11bHRpcGxlIG9wdGlvbnMgdG8gdGhlIC13Cglzd2l0Y2guCgoyMDAxLTEwLTEyICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZ2V0X3NlY3Rpb25fdHlwZV9uYW1lKTogRG9uJ3QgcHJpbnQgU0hUXyBwcmVmaXggZm9yCglMT1BST0MsIExPT1MgYW5kIExPVVNFUi4KCjIwMDEtMTAtMTEgIEoib3JuIFJlbm5lY2tlIDxhbXlsYWFyQG9uZXRlbC5uZXQudWs+CgoJKiBNQUlOVEFJTkVSUzogVXBkYXRlIG15IGVtYWlsIGFkZHJlc3MuCgoyMDAxLTEwLTAzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAxLTEwLTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZGlzcGxheV9kZWJ1Z19saW5lLCBkaXNwbGF5X2RlYnVnX3B1Ym5hbWVzLAoJZGlzcGxheV9kZWJ1Z19pbmZvLCBkaXNwbGF5X2RlYnVnX2ZyYW1lcyk6IERldGVjdCBhbmQgd2FybgoJYWJvdXQgNjQtYml0IGZvcm1hdCBlbnRyaWVzLgoJKGRpc3BsYXlfZGVidWdfYXJhbmdlcyk6IFJld29yZCA2NC1iaXQgd2FybmluZy4KCShkZWJ1Z19kaXNwbGF5cyk6IEFkZCAuZGVidWdfcHVidHlwZXMgYXMgYSBrbm93biwgYnV0IG5vdCB5ZXQKCXN1cHBvcnRlZCwgZGVidWcgc2VjdGlvbi4KCjIwMDEtMTAtMDIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmZHVtcC5jIChQUk9HUkFNX1ZFUlNJT04pOiBEZWxldGUuCgkobWFpbiA8J1YnPik6IENhbGwgcHJpbnRfdmVyc2lvbi4KCSogc3Jjb252LmM6IExpa2V3aXNlLgoJKiBzeXNkdW1wLmM6IExpa2V3aXNlLgoJKiB2ZXJzaW9uLmMgKHByb2dyYW1fdmVyc2lvbik6IFJlbW92ZS4KCShwcmludF92ZXJzaW9uKTogVXNlIEJGRF9WRVJTSU9OX1NUUklORy4gIEp1c3QgcHJpbnQgdGhlIGN1cnJlbnQKCXllYXIgaW4gY29weXJpZ2h0IG1lc3NhZ2UuCgkqIGFkZHIybGluZS5jIChwcm9ncmFtX3ZlcnNpb24pOiBSZW1vdmUgdW51c2VkIGRlY2xhcmF0aW9uLgoJKiBvYmpkdW1wLmMgKGRpc3BsYXlfdGFyZ2V0X3RhYmxlcyk6IFVzZSBCRkRfVkVSU0lPTl9TVFJJTkcgaW4KCXBsYWNlIG9mIEJGRF9WRVJTSU9OLgoJKiBNYWtlZmlsZS5hbSAoTWFrZWZpbGUpOiBEZXBlbmQgb24gYmZkL2NvbmZpZ3VyZS5pbi4KCShjcGx1cy1kZW0ubyk6IERlcGVuZCBvbiBNYWtlZmlsZS4KCVJ1biAibWFrZSBkZXAtYW0iLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMTAtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkaXNwbGF5X2RlYnVnX2FyYW5nZXMpOiBEZXRlY3QgYW5kIHdhcm4gYWJvdXQgRFdBUkY2NAoJZm9ybWF0IC5kZWJ1Z19hcmFuZ2Ugc2VjdGlvbnMuCgkobWFpbik6IEFkZCBtaXNzaW5nIHByb3RvdHlwZS4KCjIwMDEtMDktMzAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBVcGRhdGUgZGVwZW5kZW5jaWVzIHdpdGggIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAxLTA5LTI4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogb2JqZHVtcC5jIChkdW1wX3NlY3Rpb25faGVhZGVyKTogRHVtcCBTRUNfQVJDSF9CSVRfMC4KCjIwMDEtMDktMjYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBidWNvbW0uYyAoZmF0YWwpOiBEZWZpbmUgdXNpbmcgVlBBUkFNUywgVkFfT1BFTiwgVkFfRklYRURBUkcsCglWQV9DTE9TRS4KCShub25fZmF0YWwpOiBMaWtld2lzZS4KCSogb2JqZHVtcC5jIChvYmpkdW1wX3NwcmludGYpOiBMaWtld2lzZS4KCSogcmVhZGVsZi5jIChlcnJvcik6IExpa2V3aXNlLgoJKHdhcm4pOiBMaWtld2lzZS4KCjIwMDEtMDktMjUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkb193aWRlKTogTmV3LgoJKG9wdGlvbnMpOiBBZGQgLS13aWRlLgoJKHVzYWdlLCBwYXJzZV9hcmdzKTogTGlrZXdpc2UuCgkocHJvY2Vzc19wcm9ncmFtX2hlYWRlcnMpOiBQdXQgZWFjaCBzZWdtZW50IG9uIGEgc2luZ2xlIGxpbmUgaWYKCS0td2lkZSBpcyBnaXZlbi4KCShwcm9jZXNzX3NlY3Rpb25faGVhZGVycyk6IFB1dCBlYWNoIHNlY3Rpb24gb24gYSBzaW5nbGUgbGluZSBpZgoJLS13aWRlIGlzIGdpdmVuLgoJKiBkb2MvYmludXRpbHMudGV4aTogRG9jdW1lbnQgaXQuCgkqIE5FV1M6IExpa2V3aXNlLgoKMjAwMS0wOS0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHJlYWRlbGYuYyAocHJpbnRfdm1hKTogUHJpbnQgOCBkaWdpdHMgb2YgbG93IGhleCB2YWx1ZS4KCjIwMDEtMDktMjQgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIG5sbWNvbnYuYzogRml4IHdhcm5pbmdzIGFib3V0IHVudXNlZCBhdHRyaWJ1dGVzIGFuZCBmdW5jdGlvbgoJcHJvdG90eXBlcy4KCgkqIHN0cmluZ3MuYzogQWRkIHByb3RvdHlwZSBmb3IgZ2V0X2NoYXIuCgoyMDAwLTA5LTE5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBkb2MvTWFrZWZpbGUuYW0gKCQoREVNQU5HTEVSX05BTUUpLjEpOiBUcnkgY3h4ZmlsdC5tYW4gYW5kCgkkKHNyY2RpcikvY3h4ZmlsdC5tYW4uCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVidWlsZC4KCjIwMDEtMDktMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBvYmpjb3B5LmMgKGNvcHlfbWFpbik6IENvcnJlY3QgcmVuYW1lLXNlY3Rpb24gc3RyaW5nIHBhcnNpbmcuCglDb25zb2xpZGF0ZSBuZXdfbmFtZSBwYXJzaW5nLCBhbmQgZXJyb3IgbWVzc2FnZXMuCgoyMDAxLTA5LTE4ICBCcnVubyBIYWlibGUgIDxoYWlibGVAY2xpc3AuY29ucy5vcmc+CgoJKiBhZGRyMmxpbmUuYzogRG9uJ3QgaW5jbHVkZSA8Y3R5cGUuaD4uCgkobWFpbik6IEZvciBnZXR0ZXh0LCBhbHNvIHNldCB0aGUgTENfQ1RZUEUgbG9jYXRlIGZhY2V0LgoJKiBhci5jIChtYWluKTogTGlrZXdpc2UuCgkqIGNvZmZkdW1wLmMgKG1haW4pOiBMaWtld2lzZS4KCSogZGxsdG9vbC5jOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJKG1haW4pOiBGb3IgZ2V0dGV4dCwgYWxzbyBzZXQgdGhlIExDX0NUWVBFIGxvY2F0ZSBmYWNldC4KCVVzZSBJU0FMTlVNIGluc3RlYWQgb2YgaXNhbHBoYS9pc2RpZ2l0LgoJKiBkbGx3cmFwLmM6IERvbid0IGluY2x1ZGUgPGN0eXBlLmg+LgoJKG1haW4pOiBGb3IgZ2V0dGV4dCwgYWxzbyBzZXQgdGhlIExDX0NUWVBFIGxvY2F0ZSBmYWNldC4KCSogbmxtY29udi5jOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJKG1haW4pOiBGb3IgZ2V0dGV4dCwgYWxzbyBzZXQgdGhlIExDX0NUWVBFIGxvY2F0ZSBmYWNldC4KCVVzZSBUT1VQUEVSIGluc3RlYWQgb2YgaXNsb3dlci90b3VwcGVyLgoJKiBubG1oZWFkZXIueTogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCSh5eWxleCk6IFVzZSBJU1NQQUNFL0lTQUxOVU0gaW5zdGVhZCBvZiBpc3NwYWNlL2lzYWxudW0uCglVc2UgVE9VUFBFUiBpbnN0ZWFkIG9mIGlzbG93ZXIvdG91cHBlci4KCSogbm0uYyAobWFpbik6IEZvciBnZXR0ZXh0LCBhbHNvIHNldCB0aGUgTENfQ1RZUEUgbG9jYXRlIGZhY2V0LgoJKiBvYmpjb3B5LmMgKG1haW4pOiBMaWtld2lzZS4KCSogb2JqZHVtcC5jOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJKGRpc2Fzc2VtYmxlX2J5dGVzKTogVXNlIElTUFJJTlQgaW5zdGVhZCBvZiBpc3ByaW50LgoJKGR1bXBfc2VjdGlvbl9zdGFicyk6IFVzZSBJU0RJR0lUIGluc3RlYWQgb2YgaXNkaWdpdC4KCShkdW1wX2RhdGEpOiBVc2UgSVNQUklOVCBpbnN0ZWFkIG9mIGlzcHJpbnQuCgkobWFpbik6IEZvciBnZXR0ZXh0LCBhbHNvIHNldCB0aGUgTENfQ1RZUEUgbG9jYXRlIGZhY2V0LgoJKiByY2xleC5sOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJKGNwcF9saW5lLCBoYW5kbGVfcXVvdGVzKTogVXNlIElTU1BBQ0UgaW5zdGVhZCBvZiBpc3NwYWNlLgoJKiByY3BhcnNlLnk6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCglVc2UgVE9VUFBFUiBpbnN0ZWFkIG9mIGlzbG93ZXIvdG91cHBlci4KCSogcmVhZGVsZi5jIChtYWluKTogRm9yIGdldHRleHQsIGFsc28gc2V0IHRoZSBMQ19DVFlQRSBsb2NhdGUgZmFjZXQuCgkqIHJlc3JjLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkod3JpdGVfcmNfYWNjZWxlcmF0b3JzKTogVXNlIElTUFJJTlQgaW5zdGVhZCBvZiBpc3ByaW50LgoJKHdyaXRlX3JjX3JjZGF0YSk6IExpa2V3aXNlLgoJKiBzaXplLmMgKG1haW4pOiBGb3IgZ2V0dGV4dCwgYWxzbyBzZXQgdGhlIExDX0NUWVBFIGxvY2F0ZSBmYWNldC4KCSogc3Jjb252LmMgKG1haW4pOiBMaWtld2lzZS4KCSogc3RhYnMuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShwYXJzZV9udW1iZXIpOiBVc2UgSVNESUdJVC9JU1VQUEVSL0lTTE9XRVIgaW5zdGVhZCBvZgoJaXNkaWdpdC9pc3VwcGVyL2lzbG93ZXIuCgkocGFyc2Vfc3RhYl9zdHJpbmcsIHBhcnNlX3N0YWJfdHlwZSwgcGFyc2Vfc3RhYl9hcmd0eXBlcywKCXBhcnNlX3N0YWJfYXJyYXlfdHlwZSwgc3RhYl9kZW1hbmdsZV9jb3VudCwgc3RhYl9kZW1hbmdsZV9nZXRfY291bnQsCglzdGFiX2RlbWFuZ2xlX3ByZWZpeCwgc3RhYl9kZW1hbmdsZV9xdWFsaWZpZWQsCglzdGFiX2RlbWFuZ2xlX3RlbXBsYXRlLCBzdGFiX2RlbWFuZ2xlX3R5cGUsCglzdGFiX2RlbWFuZ2xlX2Z1bmRfdHlwZSk6IFVzZSBJU0RJR0lUIGluc3RlYWQgb2YgaXNkaWdpdC4KCSogc3RyaW5ncy5jOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJKGlzZ3JhcGhpYyk6IFVzZSBJU1BSSU5UIGluc3RlYWQgb2YgaXNhc2NpaS9pc3ByaW50LgoJKG1haW4pOiBSZW1vdmUgSEFWRV9MQ19NRVNTQUdFUyBkZXBlbmRlbmN5LgoJKiBzeXNkdW1wLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkocGJhcnJheSk6IFVzZSBJU1BSSU5UIGluc3RlYWQgb2YgaXNwcmludC4KCShtYWluKTogRm9yIGdldHRleHQsIGFsc28gc2V0IHRoZSBMQ19DVFlQRSBsb2NhdGUgZmFjZXQuCgkqIHdpbmRyZXMuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShmb3JtYXRfZnJvbV9maWxlbmFtZSk6IFVzZSBJU1BSSU5UIGluc3RlYWQgb2YgaXNwcmludC4KCShtYWluKTogRm9yIGdldHRleHQsIGFsc28gc2V0IHRoZSBMQ19DVFlQRSBsb2NhdGUgZmFjZXQuCgkqIHdpbmR1bmkuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCSh1bmljb2RlX3ByaW50KTogVXNlIElTUFJJTlQgaW5zdGVhZCBvZiBpc3ByaW50LgoJKiB3cnN0YWJzLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkoc3RhYl92YXJpYWJsZSk6IFVzZSBJU0RJR0lUIGluc3RlYWQgb2YgaXNkaWdpdC4KCjIwMDEtMDktMTggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBhci5jIChwcmludF9jb250ZW50cyk6IENhc3QgYXJncyBvZiBiZmRfc2VlayB0byB0aGUgcmlnaHQgdHlwZXMuCglSZXBsYWNlIGJmZF9yZWFkIGNhbGwgd2l0aCBjYWxsIHRvIGJmZF9icmVhZC4KCShleHRyYWN0X2ZpbGUpOiBMaWtld2lzZS4KCgkqIG9iamR1bXAuYyAoZHVtcF9zZWN0aW9uX2hlYWRlcik6IENhc3Qgc2VjdGlvbi0+ZmlsZXBvcyB0bwoJdW5zaWduZWQgbG9uZyB0byBzdWl0IHByaW50ZiBmb3JtYXQgc3RyaW5nLgoJKiByZWFkZWxmLmMgKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogU2ltaWxhcmx5IGZvciBzaF9vZmZzZXQuCgkocHJvY2Vzc191bndpbmQpOiBMaWtld2lzZS4KCjIwMDEtMDktMTQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogc3RyaW5ncy5jIChlbmNvZGluZywgZW5jb2RpbmdfYnl0ZXMpOiBOZXcgdmFyaWFibGVzLgoJKGxvbmdfb3B0aW9ucyk6IEFkZCAtLWVuY29kaW5nLgoJKG1haW4pOiBBY2NlcHQgLWUgYW5kIC0tZW5jb2RpbmcuCgkoZ2V0X2NoYXIpOiBOZXcgZnVuY3Rpb24uICBSZWFkIGEsIHBvc3NpYmx5IHdpZGUsIGNoYXJhY3RlciBmcm9tCgl0aGUgaW5wdXQgc3RyZWFtLgoJKHByaW50X3N0cmluZ3MpOiBVc2UgZ2V0X2NoYXIoKS4KCSh1c2FnZSk6IERvY3VtZW50IG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uLgoJKiBkb2MvYmludXRpbHMudGV4aTogRG9jdW1lbnQgbmV3IGNvbW1hbmQgbGluZSBvcHRpb24uCgkqIE5FV1M6IEFubm91bmNlIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uLgoKMjAwMS0wOS0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGd1ZXNzX2lzX3JlbGEsIGR1bXBfcmVsb2NhdGlvbnMsIGdldF9tYWNoaW5lX25hbWUsCglnZXRfbWFjaGluZV9mbGFncyk6IEFkZGVkIEVNX00zMlIsIEVNX0QxMFYsIEVNX1Y4NTAsIEVNX0QzMFYsCglFTV9NTjEwMjAwLCBFTV9NTjEwMzAwLCBFTV9GUjMwLCBFTV9BVlJfT0xEIGFuZCBFTV9QSl9PTEQuCglSZW1vdmVkIEVNX0NZR05VU19BUkMuCgoyMDAxLTA5LTA0ICBKZWZmcmV5IEEgTGF3ICAobGF3QGN5Z251cy5jb20pCgoJKiByZWFkZWxmLmM6IEluY2x1ZGUgZWxmL2g4IGZvciBIOCBzZXJpZXMgZGVmaW5pdGlvbnMuCgkoZ3Vlc3NfaXNfcmVsYSk6IEg4IHNlcmllcyBpZiBSRUxBLgoJKGR1bXBfcmVsb2NhdGlvbnMpOiBIYW5kbGUgSDggc2VyaWVzIHJlbG9jYXRpb25zLgoKMjAwMS0wOC0zMSAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9tYWNoaW5lX2ZsYWdzKTogUmVtb3ZlIEVfTUlQU19NQUNIX01JUFMzMl80Sy4KCjIwMDEtMDgtMjkgIFBldGVyIFRhcmdldHQgIDxwZXRlci50YXJnZXR0QGFyY2NvcmVzLmNvbT4KCgkqIE1BSU5UQUlORVJTOiBJbmNsdWRlIEFSQyBNYWludGFpbmVyLgoKMjAwMS0wOC0yOSAgQmVuIEVsbGlzdG9uICA8YmplQHJlZGhhdC5jb20+CgoJKiBzdGFicy5jIChzdGFiX2RlbWFuZ2xlX3RlbXBsYXRlKTogSW5pdGlhbGlzZSBzNC4KCjIwMDEtMDgtMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiByZWFkZWxmLmMgKGR1bXBfcmVsb2NhdGlvbnMpOiBSZWNvZ25pc2UgRU1fUFBDNjQuCgoyMDAxLTA4LTI2ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9mbGFncyk6IEFkZCBkZXRlY3Rpb24gb2YgRUZfTUlQU18zMkJJVE1PREUuCgoyMDAxLTA4LTI1ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBubS5jIChwcmludF93aWR0aCk6IE5ldy4KCShkaXNwbGF5X3JlbF9maWxlKTogU2V0IGBwcmludF93aWR0aCcgYWNjb3JkaW5nIHRvCgliZmRfc3ByaW50Zl92bWEuCgkocHJpbnRfc3ltYm9sX2luZm9fYnNkKTogQ2hlY2sgYHByaW50X3dpZHRoJyBpbnN0ZWFkIG9mIEJGRDY0LgoKMjAwMS0wOC0yNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBvYmpjb3B5LmMgKHVzZV9hbHRfbWFjaF9jb2RlKTogTmV3IHZhcmlhYmxlLgoJKE9QVElPTl9BTFRfTUFDSF9DT0RFKTogRGVmaW5lLgoJKGNvcHlfb3B0aW9ucyk6IEFkZGVkIC0tYWx0LW1hY2hpbmUtY29kZS4KCShjb3B5X21haW4pOiBIYW5kbGUgaXQuCgkoY29weV9vYmplY3QpOiBTd2l0Y2ggdG8gYWx0ZXJuYXRlIG1hY2hpbmUgY29kZSBpZiByZXF1ZXN0ZWQuCgkqIGRvYy9iaW51dGlscy50ZXhpOiBEb2N1bWVudCBuZXcgb3B0aW9uLgoJKiBORVdTOiBMaWtld2lzZS4KCjIwMDEtMDgtMjIgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiByZWFkZWxmLmMgKGdldF9tYWNoaW5lX2ZsYWdzKTogQWRkIGRldGVjdGlvbiBvZiBFRl9NSVBTX1VDT0RFLgoKMjAwMS0wOC0yMSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVhZGVsZi5jIChkdW1wX3JlbG9jYXRpb25zKTogU3VwcG9ydCBFTEY2NCBvbiAzMmJpdCBob3N0cy4KCShkaXNwbGF5X2RlYnVnX2luZm8pOiBDYXN0IGZvciA2NGJpdCBob3N0cy4KCShkaXNwbGF5X2RlYnVnX2ZyYW1lcyk6IExpa2V3aXNlLgoJKHByb2Nlc3NfbWlwc19zcGVjaWZpYyk6IExpa2V3aXNlLgoKMjAwMS0wOC0yMSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogY29mZmdyb2suaDogQWRkIG1pc3NpbmcgcGFyYW1ldGVyIGZvciBwcm90b3R5cGUgb2YgY29mZl9ncm9rLgoKCSogc3lzZHVtcC5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBzcmNvbnYuYzogTGlrZXdpc2UuCgkqIHVud2luZC1pYTY0LmM6IExpa2V3aXNlLgoJKiBjb2ZmZHVtcC5jOiBMaWtld2lzZS4KCgkqIHN5c2luZm8ueTogUHJpbnQgcHJvdG90eXBlcywgaW5jbHVkZSA8YW5zaWRlY2wuaD4uCgoJKiBjb2ZmZ3Jvay5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLCBpbmNsdWRlIGxpYmliZXJ0eS5oIGluc3RlYWQKCW9mIGRlY2xhcmluZyB4Y2FsbG9jLgoKMjAwMS0wOC0xMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogbm0uYyAocHJpbnRfdmFsdWUpOiBBZGQgb25lIGFyZywgYmZkICouCgkocHJpbnRfdmFsdWUpOiBSZXBsYWNlIGZwcmludGZfdm1hIHdpdGggYmZkX2ZwcmludGZfdm1hLgoJKHByaW50X3N5bWJvbF9pbmZvX2JzZCk6IEFsc28gcGFzcyBgYWJmZCcgdG8gcHJpbnRfdmFsdWUgKCkuCgkocHJpbnRfc3ltYm9sX2luZm9fc3lzdik6IExpa2V3aXNlLgoJKHByaW50X3N5bWJvbF9pbmZvX3Bvc2l4KTogTGlrZXdpc2UuCgoJKiBvYmpkdW1wLmMgKGR1bXBfc2VjdGlvbl9oZWFkZXIpOiBSZXBsYWNlIHByaW50Zl92bWEgd2l0aAoJYmZkX3ByaW50Zl92bWEuCgkocHJpbnRfc2VjdGlvbl9zdGFicyk6IExpa2V3aXNlLgoJKGR1bXBfYmZkX2hlYWRlcik6IExpa2V3aXNlLgoJKG9iamR1bXBfcHJpbnRfdmFsdWUpOiBSZXBsYWNlIHNwcmludGZfdm1hIHdpdGgKCWJmZF9zcHJpbnRmX3ZtYS4KCShkaXNhc3NlbWJsZV9ieXRlcyk6IExpa2V3aXNlLgoJKGR1bXBfcmVsb2Nfc2V0KTogTGlrZXdpc2UuCgoyMDAxLTA4LTEwICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBjb25maWd1cmUuaW46IEFkZCAtV3N0cmljdC1wcm90b3R5cGVzIGFuZCAtV21pc3NpbmctcHJvdG90eXBlcwoJdG8gYnVpbGQgd2FybmluZ3MuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDEtMDgtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiByZWFkZWxmLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkqIG9iamR1bXAuYzogTGlrZXdpc2UuICBGb3JtYXQgZXhpc3RpbmcgcHJvdG90eXBlcy4KCjIwMDEtMDgtMDggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkaXNwbGF5X2RlYnVnX2luZm8pOiBBZGQgdG8gYWJicmV2X29mZnNldCB0aGUgYWRkZW5kCglvZiBhbnkgUkVMQSByZWxvY2F0aW9uIGZvciB0aGUgYWJicmV2X29mZnNldCBtZW1vcnkgbG9jYXRpb24gdGhhdAoJcmVmZXJzIHRvIHRoZSAuZGVidWdfYWJicmV2IHNlY3Rpb24gc3ltYm9sLgoKMjAwMS0wOC0wNyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX2ZpbGUpOiBSZXR1cm4gMCBpZiBPSywgb3RoZXJ3aXNlIHJldHVybiAxLgoJKG1haW4pOiBSZXR1cm4gcHJvY2Vzc19maWxlICgpLgoKMjAwMS0wOC0wNSAgUGhpbGlwIEJsdW5kZWxsICA8cGhpbGJAZ251Lm9yZz4KCgkqIGRvYy9iaW51dGlscy50ZXhpOiBVc2UgIlRodW1iIiBub3QgIlRIVU1CIi4KCjIwMDEtMDgtMDMgIEpvaG4gSGVhbHkgIDxqaGVhbHlAcmVkaGF0LmNvbT4KCglQYXRjaCBzdWdnZXN0ZWQgYnkgRnJhbmsgRWlnbGVyIDxmY2hlQHJlZGhhdC5jb20+LgoJKiBvYmpkdW1wLmMgKGRpc2Fzc2VtYmxlX2RhdGEpOiBGaWxsIGluIHNlY3Rpb24gbWVtYmVyIG9mIHRoZQoJZGlzYXNtX2luZm8gc3RydWN0dXJlLgoKMjAwMS0wOC0wMyAgVG9tIFdhbHNoICA8dG9tQGN5YmVyaWFuc29mdHdhcmUuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGRlZCAtLXdpdGgtd2luZHJlcyBvcHRpb24uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDAxLTA3LTExICBTdGVwaGFuZSBDYXJyZXogIDxTdGVwaGFuZS5DYXJyZXpAd29ybGRuZXQuZnI+CgoJKiBkb2MvYmludXRpbHMudGV4aTogVXNlIEBjb21tYW5ke25hbWV9IGZvciBjb21tYW5kczsKCXVzZSBAb3B0aW9uey1vcHR9IGZvciBvcHRpb25zOyB1c2UgQHRhYmxlIEBlbnYgZm9yIGxpc3Qgb2Ygb3B0aW9uczsKCXJlbW92ZSBzcGFjZXMgYXJyb3VuZCBbIHwgXSBpbiBzeW5vcHNpcy4KCgkqIGRvYy9NYWtlZmlsZS5hbSAoUE9EMk1BTik6IFVzZSAnR05VIERldmVsb3BtZW50IFRvb2xzJyBmb3IgdGhlCgljZW50ZXIgdGl0bGUuCgoyMDAxLTA3LTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIG9iamNvcHkuYzogRml4IGZvcm1hdHRpbmcuCgkoc2VjdGlvbl9yZW5hbWUpOiBOZXcgc3RydWN0dXJlLgoJKE9QVElPTl9SRU5BTUVfU0VDVElPTik6IE5ldyBzd2l0Y2guCgkoY29weV91c2FnZSk6IERvY3VtZW50IG5ldyBzd2l0Y2guCgkoYWRkX3NlY3Rpb25fcmVuYW1lKTogTmV3IGZ1bmN0aW9uOiBBZGQgYSBub2RlIHRvIHRoZSBzZWN0aW9uCglyZW5hbWUgbGlzdC4KCShmaW5kX3NlY3Rpb25fcmVuYW1lKTogTmV3IGZ1bmN0aW9uOiBGaW5kIHRoZSBuZXcgbmFtZSBhbmQKCWZsYWdzIGZvciBhIHNlY3Rpb24uCgkoc2V0dXBfc2VjdGlvbik6IENhbGwgZmluZF9zZWN0aW9uX25hbWUgdG8gZGV0ZXJtaW5lIHRoZSBuYW1lCglvZiB0aGUgb3V0cHV0IHNlY3Rpb24uCgkoY29weV9tYWluKTogSGFuZGxlIE9QVElPTl9SRU5BTUVfU0VDVElPTi4KCSogYmludXRpbHMudGV4aTogRG9jdW1lbnQgbmV3IHN3aXRjaC4KCSogTkVXUzogTWVudGlvbiBuZXcgc3dpdGNoLgoKMjAwMS0wNy0zMCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBSRUFETUU6IFJlbmFtZSBidWctZ251LXV0aWxzQGdjYy5vcmcgdG8gYnVnLWJpbnV0aWxzQGdjYy5vcmcuCgkqIE1BSU5UQUlORVJTOiBSZW5hbWUgYnVnLWdudS11dGlsc0BnY2Mub3JnIHRvCglidWctYmludXRpbHNAZ2NjLm9yZy4KCjIwMDEtMDctMjggIE1hdHRoaWFzIEtyYW1tICA8a3JhbW1AcXVpc3Mub3JnPgoKCSogYnVjb21tLmMgKGxpc3Rfc3VwcG9ydGVkX2FyY2hpdGVjdHVyZXMpOiBOZXcgZnVuY3Rpb24uCgkqIGJ1Y29tbS5oIChsaXN0X3N1cHBvcnRlZF9hcmNoaXRlY3R1cmVzKTogRGVjbGFyZS4KCSogb2JqZHVtcC5jICh1c2FnZSk6IENhbGwgdGhlIGFib3ZlLgoKMjAwMS0wNy0yNSAgRGF2ZSBCcm9sbGV5ICA8YnJvbGxleUByZWRoYXQuY29tPgoKCSogb2JqZHVtcC5jIChTS0lQX1pFUk9FUyk6IE9ubHkgZGVmaW5lIGl0IGlmIGl0IGlzIG5vdCBhbHJlYWR5IGRlZmluZWQuCgkoU0tJUF9aRVJPRVNfQVRfRU5EKTogT25seSBkZWZpbmUgaXQgaWYgaXQgaXMgbm90IGFscmVhZHkgZGVmaW5lZC4KCjIwMDEtMDctMTkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogUkVBRE1FOiBVcGRhdGUgZm9yIDIuMTEuICBDaGFuZ2UgYnVnIHJlcG9ydGluZyBlbWFpbCBhZGRyZXNzLgoJKiBNQUlOVEFJTkVSUzogVGlkeSB1cC4gIENoYW5nZSBidWcgcmVwb3J0aW5nIGVtYWlsIGFkZHJlc3MuCgoyMDAxLTA3LTE2ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIHJlc3Jlcy5jICh3cml0ZV9yZXNfaGVhZGVyKTogQWxpZ24gaGVhZGVyIHNpemUuCgkocmVzX2FsaWduX2ZpbGUpOiBDYWxjdWxhdGUgYWxpZ25tZW50IGNvcnJlY3RseS4KCgkqIHJjcGFyc2UueSAoc3R5bGVzKTogdXNlIFNVQkxBTkdfU0hJRlQgaW5zdGVhZCBvZiA4IChvciB0aGUgbW9yZQoJY29ycmVjdCAxMCkuCgkqIHJlc3JjLmMgKHdyaXRlX3JjX3Jlc291cmNlKTogTGlrZXdpc2UuCgkqIHdpbmRyZXMuaCAoU1VCTEFOR19TSElGVCk6IERlZmluZSAtIGFzIDEwLgoKMjAwMS0wNy0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIENocmlzdGlhbiBHcm9lc3NsZXIgYXMgbWFpbnRhaW5lciBmb3IgejhrIHBvcnQuCgoyMDAxLTA3LTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgbm90ZXMgYWJvdXQgYnJhbmNoIGNoZWNraW5zLgoKMjAwMS0wNy0wNSAgRGFuaWVsIEJlcmxpbiAgPGRhbkBjZ3NvZnR3YXJlLmNvbT4KCgkqIHJlYWRlbGYuYyAoZGlzcGxheV9kZWJ1Z19tYWNpbmZvKTogTmV3IGZ1bmN0aW9uLCBkaXNwbGF5CgkuZGVidWdfbWFjaW5mbyBzZWN0aW9uLgoJKGRvX2RlYnVnX21hY2luZm8pOiBOZXcgdmFyaWFibGUuCgkocGFyc2VfYXJncyk6IEhhbmRsZSAiLXdbbU1dIiB0byBtZWFuIGRpc3BsYXkgbWFjcm8gaW5mby4KCShwcm9jZXNzX3NlY3Rpb25faGVhZGVycyk6IEhhbmRsZSBkZWJ1Z19tYWNpbmZvLgoJKGRlYnVnX2Rpc3BsYXlzKTogUmVwbGFjZSB1bnN1cHBvcnRlZCBmdW5jdGlvbiB3aXRoIG1hY2luZm8KCWZ1bmN0aW9uIGZvciAuZGVidWdfbWFjaW5mbyBkaXNwbGF5LgoJKiBkb2MvYmludXRpbHMudGV4aTogRG9jdW1lbnQgbmV3IGNvbW1hbmQgbGluZSBzd2l0Y2guCgkqIE5FV1M6IERvY3VtZW50IG5ldyBmZWF0dXJlIG9mIHJlYWRlbGYuCgoyMDAxLTA3LTA1ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBvYmpjb3B5LmMgKGZpbHRlcl9zeW1ib2xzKTogRG9uJ3QgdHVybiB1bmRlZmluZWQgc3ltYm9scwoJaW50byBsb2NhbC4KCjIwMDEtMDctMDMgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZG9jL01ha2VmaWxlLmFtIChhZGRyMmxpbmUuMSk6IFVzZSBhZGRyMmxpbmUucG9kIGluc3RlYWQgb2YKCSRALnBvZC4KCShhci4xKTogTGlrZXdpc2UuCgkoZGxsdG9vbC4xKTogTGlrZXdpc2UuCgkobmxtY29udi4xKTogTGlrZXdpc2UuCgkobm0uMSk6IExpa2V3aXNlLgoJKG9iamNvcHkuMSk6IExpa2V3aXNlLgoJKG9iamR1bXAuMSk6IExpa2V3aXNlLgoJKHJhbmxpYi4xKTogTGlrZXdpc2UuCgkocmVhZGVsZi4xKTogTGlrZXdpc2UuCgkoc2l6ZS4xKTogTGlrZXdpc2UuCgkoc3RyaW5ncy4xKTogTGlrZXdpc2UuCgkoc3RyaXAuMSk6IExpa2V3aXNlLgoJKHdpbmRyZXMuMSk6IExpa2V3aXNlLgoJKGN4eGZpbHQubWFuKTogVXNlICQoREVNQU5HTEVSX05BTUUpLnBvZCBpbnN0ZWFkIG9mICRALnBvZC4KCSgkKERFTUFOR0xFUl9OQU1FKS4xKTogQWxzbyBzdWJzdGl0dXRlIGN4eGZpbHQgd2l0aAoJJChERU1BTkdMRVJfTkFNRSkuCgkoYXMuMSk6IFJlbW92ZWQuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgoyMDAxLTA3LTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIE1BSU5UQUlORVJTOiBDaGFuZ2UgTUlQUyBtYWludGFpbmVyIHRvIEVyaWMgQ2hyaXN0b3BoZXIuCgoyMDAxLTA3LTAxICBEYW5pZWwgQmVybGluICA8ZGFuQGNnc29mdHdhcmUuY29tPgoKCSogcmVhZGVsZi5jOiBTdXBwb3J0IERXQVJGIDIuMSB0YWdzLCBlbmNvZGluZ3MsIGxhbmd1YWdlcy4KCjIwMDEtMDYtMjkgIEphbWVzIENvd25pZSA8amNvd25pZUBldG51cy5jb20+CgoJKiByZWFkZWxmLmM6IFN1cHBvcnQgRFdBUkYgMi4xIGF0dHJpYnV0ZXMuCgoyMDAxLTA2LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogcmVhZGVsZi5jIChHRVRfREFUQV9BTExPQyk6IFJlbW92ZS4KCShHRVRfREFUQSk6IFJlbW92ZS4KCShnZXRfZGF0YSk6IE5ldyBmdW5jdGlvbiBjb21iaW5pbmcgYWJvdmUgbWFjcm9zLCB3aXRoIGFuIGV4dHJhCgl0ZXN0IGZvciB6ZXJvIHNpemUuCgkoc2x1cnBfcmVsYV9yZWxvY3MpOiBVc2UgZ2V0X2RhdGEsIGFuZCBjYXRjaCBlcnJvciByZXR1cm4uCgkoc2x1cnBfcmVsX3JlbG9jcyk6IExpa2V3aXNlLgoJKGdldF8zMmJpdF9wcm9ncmFtX2hlYWRlcnMpOiBMaWtld2lzZS4KCShnZXRfNjRiaXRfcHJvZ3JhbV9oZWFkZXJzKTogTGlrZXdpc2UuCgkoZ2V0XzMyYml0X3NlY3Rpb25faGVhZGVycyk6IExpa2V3aXNlLgoJKGdldF82NGJpdF9zZWN0aW9uX2hlYWRlcnMpOiBMaWtld2lzZS4KCShnZXRfMzJiaXRfZWxmX3N5bWJvbHMpOiBMaWtld2lzZS4KCShnZXRfNjRiaXRfZWxmX3N5bWJvbHMpOiBMaWtld2lzZS4KCShwcm9jZXNzX3NlY3Rpb25faGVhZGVycyk6IExpa2V3aXNlLgoJKHByb2Nlc3NfcmVsb2NzKTogTGlrZXdpc2UuCgkoc2x1cnBfaWE2NF91bndpbmRfdGFibGUpOiBMaWtld2lzZS4KCShwcm9jZXNzX3Vud2luZCk6IExpa2V3aXNlLgoJKGdldF8zMmJpdF9keW5hbWljX3NlZ21lbnQpOiBMaWtld2lzZS4KCShnZXRfNjRiaXRfZHluYW1pY19zZWdtZW50KTogTGlrZXdpc2UuCgkocHJvY2Vzc19keW5hbWljX3NlZ21lbnQpOiBMaWtld2lzZS4KCShwcm9jZXNzX3ZlcnNpb25fc2VjdGlvbnMpOiBMaWtld2lzZS4KCShwcm9jZXNzX3N5bWJvbF90YWJsZSk6IExpa2V3aXNlLgoJKGR1bXBfc2VjdGlvbik6IExpa2V3aXNlLgoJKGRpc3BsYXlfZGVidWdfaW5mbyk6IExpa2V3aXNlLgoJKGRpc3BsYXlfZGVidWdfc2VjdGlvbik6IExpa2V3aXNlLgoJKHByb2Nlc3Nfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKHByb2Nlc3NfY29yZWZpbGVfbm90ZV9zZWdtZW50KTogTGlrZXdpc2UuCgkocHJvY2Vzc19taXBzX3NwZWNpZmljKTogTGlrZXdpc2UuICBBbHNvIGZyZWUgZWNvbmYzMiwgZWNvbmY2NC4KCjIwMDEtMDYtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiByZWFkZWxmLmMgKGR1bXBfcmVsb2NhdGlvbnMpOiBQcmludCAiYmFkIHN5bWJvbCBpbmRleCIgaWYKCXN5bXRhYiA9PSBOVUxMIHdpdGggbm9uLXplcm8gc3ltdGFiX2luZGV4LgoJKHByb2Nlc3NfcmVsb2NzKTogRG9uJ3QgYm9tYiBpZiByZWxvYyBzZWN0aW9uIGhhcyBubyBzeW1zZWMuCgoyMDAxLTA2LTI0ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBvYmpjb3B5LmMgKHN0cmlwX21haW4pOiBSZXZlcnQgdGhlIGNoYW5nZSBtYWRlIG9uIDIwMDEtMDUtMzAKCWJ5IGFjY2lkZW50LgoJKGNvcHlfbWFpbik6IEFwcGx5IHRoZSBjaGFuZ2UgbWFkZSB0byBzdHJpcF9tYWluIG9uCgkyMDAxLTA1LTMwIGJ5IGFjY2lkZW50LgoKMjAwMS0wNi0yMyAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogdW53aW5kLWlhNjQuYyAodW53X2RlY29kZV94MSk6IEFkZCB1bnVzZWQgYXR0cmlidXRlIGZvcgoJcGFyYW1ldGVyICdjb2RlJy4KCSh1bndfZGVjb2RlX3gyKTogTGlrZXdpc2UuCgkodW53X2RlY29kZV94Myk6IExpa2V3aXNlLgoJKHVud19kZWNvZGVfeDQpOiBMaWtld2lzZS4KCjIwMDEtMDYtMjMgIEJlbiBFbGxpc3RvbiAgPGJqZUByZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBteXNlbGYgYXMgTTg4ayBtYWludGFpbmVyLgoKMjAwMS0wNi0yMiAgSm9jZWx5biBNYXllciAgPGpvY2VseW4ubWF5ZXJAbmV0Z2VtLmNvbT4KCgkqIG9iamNvcHkuYyAoc3RyaXBfbWFpbik6IFN1cHBvcnQgLW8gb3IgLS1vdXRwdXQtZmlsZSBjb21tYW5kIGxpZW4KCXN3aXRjaC4KCjIwMDEtMDYtMTkgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZG9jL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCjIwMDEtMDYtMTkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jOiBSZXN0b3JlIGZvcm1hdHRpbmcuCgoyMDAxLTA2LTE4ICBILkouIEx1IDxoamxAZ251Lm9yZz4gJiBOaWNrIENsaWZ0b24gPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbTogTW92ZSBkb2N1bWVudGF0aW9uIGludG8gZG9jIHN1YmRpcmVjdG9yeS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoJKiBiaW51dGlscy50ZXhpOiBNb3ZlIGludG8gZG9jIHN1YmRpcmVjdG9yeS4KCSogYWRkcjJsaW5lLjE6IFJlbW92ZWQuCgkqIGFyLjE6IExpa2V3aXNlLgoJKiBkbGx0b29sLjE6IExpa2V3aXNlLgoJKiBubG1jb252LjE6IExpa2V3aXNlLgoJKiBubS4xOiBMaWtld2lzZS4KCSogb2JqY29weS4xOiBMaWtld2lzZS4KCSogb2JqZHVtcC4xOiBMaWtld2lzZS4KCSogcmFubGliLjE6IExpa2V3aXNlLgoJKiByZWFkZWxmLjE6IExpa2V3aXNlLgoJKiBzaXplLjE6IExpa2V3aXNlLgoJKiBzdHJpbmdzLjE6IExpa2V3aXNlLgoJKiBzdHJpcC4xOiBMaWtld2lzZS4KCSogd2luZHJlcy4xOiBMaWtld2lzZS4KCSogY3h4ZmlsdC5tYW46IExpa2V3aXNlLgoJKiBkb2M6IE5ldyBEaXJlY3RvcnkuCgkqIGRvYy9NYWtlZmlsZS5hbTogTmV3IGZpbGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogR2VuZXJhdGUuCgoyMDAxLTA2LTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTkVXUzogRml4IGEgdHlwby4gIE1lbnRpb24gaHBwYTY0LWVsZi4gIEFkZCBiaW51dGlscy0yLjExIG1hcmtlci4KCjIwMDEtMDYtMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNQUlOVEFJTkVSUzogVXBkYXRlIG15IGVtYWlsIGFkZHJlc3MuCgoyMDAxLTA1LTMwICBIb25kYSBIaXJva2kgIDxoaG9uZGFAa29iZS1jYXR2Lm5lLmpwPgoKCSogb2JqY29weS5jOiBBZGQgbmV3IHN3aXRjaGVzOiAtLWtlZXAtZ2xvYmFsLXN5bWJvbCwKCS0ta2VlcC1zeW1ib2xzLCAtLWxvY2FsaXplLXN5bWJvbHMsIC0ta2VlcC1nbG9iYWwtc3ltYm9scyBhbmQKCS0td2Vha2VuLXN5bWJvbHMuCgkqIGJpbnV0aWxzLnRleGk6IERvY3VtZW50IG5ldyBzd2l0Y2hlcy4KCSogb2JqY29weS4xOiBSZWdlbmVyYXRlLgoJKiBORVdTOiBBbm5vdW5jZSBuZXcgZmVhdHVyZS4KCjIwMDEtMDUtMjggIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIHJlYWRlbGYuYyAoZGlzcGxheV9kZWJ1Z19mcmFtZXMpOiBGaXggd2FybmluZ3M6IFJlbW92ZSB1bnVzZWQKCXZhcmlhYmxlcywgZml4IGZvcm1hdCBzdHJpbmdzLgoKMjAwMS0wNS0yOCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBvYmpkdW1wLmMgKGRpc2Fzc2VtYmxlX2J5dGVzKTogUmVtb3ZlIHNlY3Rpb24gVk1BIGFkanVzdG1lbnQKCXdoZW4gY29tcHV0aW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBsaW5lIHRvIHNob3cuCgoyMDAxLTA1LTE2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkb19kZWJ1Z19mcmFtZXNfaW50ZXJwKTogTmV3LgoJKGJ5dGVfZ2V0X2xpdHRsZV9lbmRpYW4pOiBJZiBCRkQ2NCwgYWx3YXlzIHJlYWQgZW50aXJlIDgtYnl0ZSBmaWVsZHMuCgkoYnl0ZV9nZXRfYmlnX2VuZGlhbik6IExpa2V3aXNlLgoJKHBhcnNlX2FyZ3MpIFsnRiddOiBTZXQgZG9fZGVidWdfZnJhbWVzX2ludGVycC4KCShGcmFtZV9DaHVuayk6IE1ha2UgZGF0YV9mYWN0b3Igc2lnbmVkLCBhZGQgZmRlX2VuY29kaW5nLgoJKGZyYW1lX2Rpc3BsYXlfcm93KTogRG9uJ3QgdHJ1bmMgcGNfYmVnaW4gdG8gaW50LgoJKHNpemVfb2ZfZW5jb2RlZF92YWx1ZSk6IE5ldy4KCShkaXNwbGF5X2RlYnVnX2ZyYW1lcyk6IEhhbmRsZSA2NC1iaXQgdGFyZ2V0cy4gIFByaW50IHJhdyBkYXRhCgl1bmxlc3MgZG9fZGVidWdfZnJhbWVzX2ludGVycC4KCShkZWJ1Z19kaXNwbGF5cyk6IFJlbW92ZSBkdXBsaWNhdGUgLmRlYnVnX2ZyYW1lLgoKMjAwMS0wNS0xNSAgUmFsZiBCYWVjaGxlICA8cmFsZkBnbnUub3JnPgoKCSogcmVhZGVsZi5jOiBSZXBsYWNlIHVzZXMgb2YgRU1fTUlQU19SUzRfQkUgd2l0aCBFTV9NSVBTX1JTM19MRS4KCVRoZSBmb3JtZXIgY29uc3RhbnQgd2FzIG5ldmVyIGluIGFjdGl2ZSB1c2UgYW5kIGlzIHVzZWQgb3RoZXJ3aXNlCglieSB0aGUgQUJJLgoKMjAwMS0wNS0xMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3NfdW53aW5kKTogUHJpbnQgYWxsIHVud2luZCBzZWN0aW9ucywgbm90IGp1c3QKCW9uZS4KCjIwMDEtMDUtMDcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3NfdW53aW5kKTogUmVtb3ZlIGNvbnN0IHNwZWNpZmllci4KCjIwMDEtMDQtMjcgIE1pY2hhbCBTdmVjIDxyZWJlbEBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJKiBzdHJpbmdzLmMgKGlzZ3JhcGhpYyk6IERvIG5vdCB1c2UgaXNhc2NpaSgpIHVubGVzcyBpdCBpcyBuZWVkZWQKCWZvciBpc3ByaW50KCkgdG8gd29yay4KCShtYWluKTogU2V0IHRoZSBsb2NhbGUgZG9tYWluIHRvIExDX0FMTCBub3QganVzdCBMQ19NRVNTQUdFUy4KCjIwMDEtMDQtMjcgIEpvaGFuIFJ5ZGJlcmcgIDxqcnlkYmVyZ0BvcGVuY29yZXMub3JnPgoKCSogTkVXUzogQW5ub3VuY2Ugc3VwcG9ydCBmb3IgT3BlblJJU0MuCgoyMDAxLTA0LTE3ICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGxsdG9vbC5jIChkb19kZWZhdWx0X2V4Y2x1ZGVzKTogSW5pdGlhbGlzZSB0byB0cnVlLgoKMjAwMS0wNC0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBvbmUubmV0LmF1PgoKCSogTUFJTlRBSU5FUlM6IFVwZGF0ZSBteSBlbWFpbCBhZGRyZXNzCgkqIG5tLmMgKHByaW50X3N5bWJvbF9pbmZvX2JzZCk6IFVzZSBhIHNpbXBsZSBwcmludGYgc3RyaW5nLgoKMjAwMS0wNC0wNSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiByZWFkZWxmLmMgKGRpc3BsYXlfZGVidWdfbGluZXMpOiBGaXggdHlwbyBmb3IgIlByb2xvZ3VlIi4KCjIwMDEtMDMtMzAgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc191bndpbmQpOiBKdXN0IHJldHVybiBpZiBkb191bndpbmQgaXMgMC4KCjIwMDEtMDMtMjggIFJvZ2VyIFNheWxlICA8cm9nZXJAbWV0YXBob3JpY3MuY29tPgoKCSogZGxsdG9vbC5jIChtYWtlX29uZV9saWJfZmlsZSk6IEZpeCBzZWN0aW9uIGZsYWdzIGZvcgoJLnRleHQsIC5kYXRhIGFuZCAuYnNzIGluIHN0dWIgZHMqLm8gZmlsZXMgdG8gbWF0Y2ggdGhvc2UKCWdlbmVyYXRlZCBieSBnYXMuCgoyMDAxLTAzLTI5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3NfdW53aW5kKTogT25seSBkbyB1bndpbmQgc2VjdGlvbnMgZm9yCglJQTY0LgoKMjAwMS0wMy0yOCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogTWFrZWZpbGUuYW0gKCQoc3JjZGlyKS9kbGx0b29sLjEpOiBSZW1vdmUgdGhlIGV4dHJhIHRhcmdldC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAxLTAzLTI2ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBiaW51dGlscy50ZXhpIChubSk6IEZpeCB0ZXhpIHN5bnRheC4KCjIwMDEtMDMtMjUgIFN0ZXBoYW5lIENhcnJleiAgPFN0ZXBoYW5lLkNhcnJlekB3b3JsZG5ldC5mcj4KCgkqIGJpbnV0aWxzLnRleGk6IFB1dCBAYyBtYW4gYmVnaW4gYW5kIEBjIG1hbiBlbmQgaW5kaWNhdGlvbnMKCXRvIGdlbmVyYXRlIG1hbiBwYWdlcyB1c2luZyB0ZXhpMnBvZCBhbmQgcG9kMm1hbi4gUHV0IEBjIG1hbiB0aXRsZQoJdG8gaWRlbnRpZnkgZWFjaCBtYW4uIEFkZCBTRUVBTFNPIGVudHJpZXMuCgkqIE1ha2VmaWxlLmFtIChNQU5DT05GLCBURVhJMlBPRCwgUE9EMk1BTik6IE5ldyB2YXJpYWJsZS4KCShtYW5fTUFOUyk6IEFkZCBkbGx0b29sLjEsIG5sbWNvbnYuMSwgcmVhZGVsZi4xLCB3aW5kcmVzLjEsCglzb3J0IHRoZSBsaXN0LgoJKCouMSk6IEJ1aWxkIHRoZSBtYW4gcGFnZXMgZnJvbSBiaW51dGlscy50ZXhpLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMDMtMTMgIEVyaWMgS29obCAgPGVrb2hsQHJ6LW9ubGluZS5kZT4KCgkqIGRlZnBhcnNlLnkgKG9wdF9lcXVhbF9uYW1lKTogYWxsb3cgIi4iIGluIG5hbWUuCgkqIGRsbHRvb2wuYyAoZGVmX2V4cG9ydHMpOiBBZGRlZCBhYmlsaXR5IHRvIGdlbmVyYXRlIGZvcndhcmRlZCBleHBvcnRzLgoJKGdlbl9leHBfZmlsZSk6IExpa2V3aXNlLgoKMjAwMS0wMy0xMiAgU3RlZmFuIEdldWtlbiA8bWFpbEBzdGVmYW4tZ2V1a2VuLmRlPgoKCSogTkVXUzogRG9jdW1lbnQgYWRkaXRpb24gb2YgLUIgc3dpdGNoIHRvIG9iamNvcHkuCgkqIGJpbnV0aWxzLnRleGk6ICBEb2N1bWVudCBhZGRpdGlvbiBvZiAtQiBzd2l0Y2ggdG8gb2JqY29weS4KCSogb2JqY29weS5jOiAoY29weV9vcHRpb25zKTogQWRkIC0tYmluYXJ5LWFyY2hpdGVjdHVyZS4KCShjb3B5X3VzYWdlKTogRG9jdW1lbnQgLUIvLS1iaW5hcnktYXJjaGl0ZWN0dXJlLgoJKGNvcHlfbWFpbik6IFN1cHBvcnQgLUIvLS1iaW5hcnktYXJjaGl0ZWN0dXJlLiAgU2V0CgliZmRfZXh0ZXJuYWxfYmluYXJ5X2FyY2hpdGVjdHVyZS4KCjIwMDEtMDMtMTEgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIHJlYWRlbGYuYyAoZ3Vlc3NfaXNfcmVsYSk6IEhhbmRsZSBFTV9TMzkwX09MRC4KCShkdW1wX3JlbG9jYXRpb25zKTogTGlrZXdpc2UuCgkoZ2V0X21hY2hpbmVfbmFtZSk6IExpa2V3aXNlLgoKMjAwMS0wMi0yOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYzogKHN0cnVjdCB1bndfYXV4X2luZm8pOiBSZW1vdmUgY29uc3QgbW9kaWZpZXIgZm9yCgknc3RydGFiJyBmaWVsZC4KCShwcm9jZXNzX3Vud2luZCk6IFJlbW92ZSBub24tSyZSIGNvbXBsaWFudCBMSFMgdHlwZSBjYXN0IGluIGNhbGwKCXRvIEdFVF9EQVRBX0FMTE9DIG1hY3JvLgoKMjAwMS0wMi0yOCAgUGhpbGlwIEJsdW5kZWxsICA8cGJAZnV0dXJldHYuY29tPgoKCSogcmVhZGVsZi5jIChkZWNvZGVfQVJNX21hY2hpbmVfZmxhZ3MpOiBFeHBsaWNpdGx5IG1lbnRpb24gd2hpY2gKCUFCSSBpcyBpbiB1c2U7IHJlbW92ZSBhbWJpZ3VpdHkgYmV0d2VlbiB0aGUgInVua25vd24iIEVBQkkgYW5kCgl1bnJlY29nbmlzZWQgQUJJcy4gIEhhbmRsZSB2ZXJzaW9uIDIgQVJNIEVBQkkuICBVcGRhdGUgdXNlcyBvZgoJcmVuYW1lZCBFRl94eCBjb25zdGFudHMuCgoyMDAxLTAyLTI3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogY29uZmlndXJlLmluIChCRkRfVkVSU0lPTik6IE5ldy4KCShBTV9JTklUX0FVVE9NQUtFKTogVXNlICRCRkRfVkVSU0lPTi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5hbTogUnVuICJtYWtlIGRlcC1hbSIKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAxLTAyLTE0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCAiT2J2aW91cyBGaXgiIHJ1bGUuCgoyMDAxLTAyLTExICBNaWNoYWVsIFNva29sb3YgIDxtc29rb2xvdkBpdmFuLkhhcmhhbi5PUkc+CgoJKiB1bndpbmQtaWE2NC5jOiBEb24ndCB1c2UgQU5TSSBDIHByZXByb2Nlc3NvciBzdHJpbmdpc2F0aW9uIGFuZCBzdHJpbmcKCWxpdGVyYWwgY29uY2F0ZW5hdGlvbi4KCjIwMDEtMDItMTEgIE1pY2hhZWwgU29rb2xvdiAgPG1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRz4KCgkqIHJlYWRlbGYuYyAoc3RydWN0IHVud19hdXhfaW5mbyk6IFJlbW92ZSBjb25zdCBmcm9tIHRoZSBpbmZvIG1lbWJlci4KCShwcm9jZXNzX3Vud2luZCk6IERvbid0IHR5cGUtY2FzdCB0aGUgdGhpcmQgYXJndW1lbnQgdG8gdGhlCglHRVRfREFUQV9BTExPQyBtYWNyby4KCjIwMDEtMDItMTEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGR1bXBfcmVsb2NhdGlvbnMpOiBGcmVlIGNvcnJlY3RlZCBhbGxvY2F0ZWQKCWFycmF5LgoJKHByb2Nlc3NfdW53aW5kKTogRml4IGNvbXBpbGUgdGltZSB3YXJuaW5nLgoKMjAwMS0wMi0xMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGJpbnV0aWxzLnRleGk6IERvY3VtZW50IG5ldyAtLXVud2luZCBvcHRpb24gdG8gcmVhZGVsZi4KCjIwMDEtMDItMDkgIE1hcnRpbiBTY2h3aWRlZnNreSAgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+CgoJKiByZWFkZWxmLmM6IEFkZCBsaW51eCB0YXJnZXQgZm9yIFMvMzkwLgoKMjAwMS0wMi0xMCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIG5tLmMgKHByaW50X3N5bWJvbF9pbmZvX2JzZCk6IERvbid0ICNpZmRlZiBpbnNpZGUgcHJpbnRmIGluIGNhc2UKCXByaW50ZiBpcyBhIG1hY3JvLgoKMjAwMS0wMi0wOCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogYWNpbmNsdWRlLm00IChBTV9QUk9HX0xFWCk6IE92ZXJyaWRlIGluc3RhbGxlZCBkZWZpbml0aW9uLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAxLTAyLTA3ICBUb2RkIFZpZXJsaW5nICA8dHZAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBidWNvbW0uYyAoYmZkX3RhcmdldF92ZWN0b3IpOiBDaGFuZ2UgZXh0ZXJuIGFycmF5IHRvIHBvaW50ZXIuCgkqIG9iamR1bXAuYyAoYmZkX3RhcmdldF92ZWN0b3IpOiBMaWtld2lzZS4KCjIwMDEtMDItMDcgIERhdmlkIE1vc2JlcmdlciAgPGRhdmlkbUBocGwuaHAuY29tPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX3Vud2luZCk6IE5ldyBmdW5jdGlvbi4KCShzbHVycF9pYTY0X3Vud2luZF90YWJsZSk6IERpdHRvLgoJKGR1bXBfaWE2NF91bndpbmQpOiBEaXR0by4KCShmaW5kX3N5bWJvbF9mb3JfYWRkcmVzcyk6IERpdHRvLgoJKHNsdXJwX3JlbGFfcmVsb2NzKTogTmV3IGZ1bmN0aW9uIChzcGxpdCBvZmYgZnJvbSBkdW1wX3JlbG9jYXRpb25zKCkpLgoJKHNsdXJwX3JlbF9yZWxvY3MpOiBEaXR0by4KCShwYXJzZV9hcmdzKTogSGFuZGxlICctdScgb3B0aW9uLgoKCSogdW53aW5kLWlhNjQuYzogTmV3IGZpbGUuCgkqIHVud2luZC1pYTY0Lmg6IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5hbTogSW5jbHVkZSB1bndpbmQtaWE2NC5jIGluIHJlYWRlbGYgYnVpbGQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9iaW51dGlscy5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAxLTAyLTA0ICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogY29uZmlndXJlLmluIChPQkpEVU1QX0RFRlMpOiBNYXRjaCBgYXJtKi0qJywgbm90IGp1c3QgYGFybS0qJy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMS0wMS0zMSAgU3RldmUgZGVSb3NpZXIgIDxzZGVyb3NpZXJAdmFyaS1saXRlLmNvbT4KCgkqIGllZWUuYyAoaWVlZV9hZGRfYmIxMSk6IERvbid0IGNoZWNrIGZvciBiYWNrc2xhc2hlcwoJdW5sZXNzIEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNIGlzIGRlZmluZWQuCgoyMDAxLTAxLTI0ICBNYXJrIEVsYnJlY2h0ICA8c25vd2JhbGwzQGJpZ2Zvb3QuY29tPgoKCSogaWVlZS5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKGllZWVfc3RhcnRfY29tcGlsYXRpb25fdW5pdCk6IERvbid0IGNoZWNrIGZvciBiYWNrc2xhc2hlcwoJdW5sZXNzIEhBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNIGlzIGRlZmluZWQuCgoJKiBzdGFicy5jOiBVcGRhdGUgY29weXJpZ2h0LiBJbmNsdWRlICJmaWxlbmFtZXMuaCIuCgkocGFyc2Vfc3RhYik6IFVzZSBJU19BQlNPTFVURV9QQVRILiBJZ25vcmUgTl9XQVJOSU5HIHN0YWJzLgoKMjAwMS0wMS0yMyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3NfdmVyc2lvbl9zZWN0aW9ucyk6IENoZWNrIGlmIFZFUkRFRiBvciBWRVJORUVECglzZWN0aW9ucyBhcmUgcHJlc2VudCBiZWZvcmUgdXNpbmcgdGhlbS4gIFJlbW92ZSBjb2RlIGR1cGxpY2F0aW9uLgoJKHByb2Nlc3Nfc3ltYm9sX3RhYmxlKTogQ2hlY2sgaWYgVkVSREVGIG9yIFZFUk5FRUQgc2VjdGlvbnMgYXJlCglwcmVzZW50IGJlZm9yZSB1c2luZyB0aGVtLgoKMjAwMS0wMS0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIG9iamNvcHkuYyAoY29weV9vYmplY3QpOiBGYWlsIGlmIGF0dGVtcHRpbmcgdG8gY29udmVydCB0aGUKCWVuZGlhbm5lc3Mgb2YgdGhlIGlucHV0IG9iamVjdCBmaWxlLgoKCSogYmludXRpbHMudGV4aTogRXhwbGFpbiB0aGF0IG9iamNvcHkgY2Fubm90IGNvbnZlcnQgZW5kaWFubmVzcy4KCjIwMDEtMDEtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKHN0cmluZ190YWJsZV9sZW5ndGgpOiBOZXcgdmFyaWFibGUuCgkoU0VDVElPTl9OQU1FKTogQ2F0Y2ggb3V0IG9mIHJhbmdlIGluZGljZXMgYW5kIG1pc3Npbmcgc2VjdGlvbgoJcG9pbnRlcnMuCgkocHJvY2Vzc19zZWN0aW9uX2hlYWRlcnMpOiBEZWxldGUgdXNlbGVzcyBsb2NhbCB2YXJpYWJsZQoJc3RyaW5nX3RhYmxlX29mZnNldC4gIFNldCB0aGUgdmFsdWUgb2Ygc3RyaW5nX3RhYmxlX2xlbmd0aAoJYWZ0ZXIgbG9hZGluZyB0aGUgc3RyaW5nIHRhYmxlLgoJKHByb2Nlc3NfbWlwc19zcGVjaWZpYyk6IFVzZSBTRUNUSU9OX05BTUUgbWFjcm8uCgkocHJvY2Vzc19maWxlKTogU2V0IHN0cmluZ190YWJsZV9sZW5ndGggdG8gMCB3aGVuIGl0IGlzIGZyZWVkLgoKMjAwMS0wMS0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHZlcnNpb24uYyAocHJpbnRfdmVyc2lvbik6IFVwZGF0ZSBjb3B5cmlnaHQgZGF0ZS4KCjIwMDEtMDEtMTEgIFBldGVyIFRhcmdldHQgIDxwZXRlci50YXJnZXR0QGFyY2NvcmVzLmNvbT4KCgkqIHJlYWRlbGYuYyAoZHVtcF9yZWxvY2F0aW9ucyk6IEluY2x1ZGUgc2VsZWN0aW9uIHdpdGggRU1fQVJDLgoJKGdldF9tYWNoaW5lX25hbWUpIFVwZGF0ZSBuYW1lIHRvICJBUkMiLgoKMjAwMS0wMS0wOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgcnVsZSB0byBidWlsZCBvYmpkdW1wLm8gZnJvbSBvYmpkdW1wLmMgYW5kCgl1c2luZyBPQkpEVU1QX0RFRlMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCSogY29uZmlndXJlLmluOiBEZWZpbmUgT0JKRFVNUF9ERUZTLiAgRGVmYXVsdCB0byBlbXB0eS4KCShhcm0sIHhzY2FsZSwgZDEwdik6IEZvciB0aGVzZSB0YXJnZXRzIGRlZmluZSBPQkpEVU1QX0RFRlMgdG8KCS1ERElTQVNTRU1CTEVSX05FRURTX1JFTE9DUy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKCSogb2JqZHVtcC5jIChkaXNhc3NlbWJsZV9ieXRlcyk6IElmIERJU0FTU0VNQkxFUl9ORUVEU19SRUxPQ1MKCWlzIGRlZmluZWQgcmVhZCBpbiB0aGUgcmVsb2NzIGV2ZW4gaWYgZHVtcF9yZWxvY19pbmZvIGlzCglmYWxzZS4KCjIwMDEtMDEtMDcgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBiaW51dGlscy50ZXhpIChCdWcgUmVwb3J0aW5nKTogUmVwbGFjZSBgYnVnLWdudS11dGlscycgd2l0aAoJYGJ1Zy1iaW51dGlscycuCgkqIFJFQURNRTogTGlrZXdpc2UuCgoyMDAwLTEyLTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZGxsdG9vbC5jOiBBZGQgbWlzc2luZyBzdXBwb3J0IGZvciBhcm0tZXBvYy1wZS4KCSogY29uZmlndXJlLmluOiBBZGQgbWlzc2luZyBzdXBwb3J0IGZvciBhcm0tZXBvYy1wZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMC0xMi0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgRGllZ28gTm92aWxsbyBhcyBhIG1haW50YWluZXIgZm9yIHRoZSBJbnRlbAoJTW9kZSBwYXJ0cyBvZiB0aGUgeDg2IHBvcnQuCgoyMDAwLTEyLTA0ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiByZWFkZWxmLmMgKGd1ZXNzX2lzX3JlbGEpOiBBZGQgRU1fWDg2XzY0LgoJKGR1bXBfcmVsb2NhdGlvbnMpOiBBZGQgRU1fWDg2XzY0LgoJKGdldF9tYWNoaW5lX25hbWUpOiBBZGQgRU1fWDg2XzY0LgoJSW5jbHVkZSAiZWxmL3g4Ni02NC5oIi4KCjIwMDAtMTItMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0xMi0xMSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogTUFJTlRBSU5FUlM6IEFkZCBteXNlbGYgYW5kIEFuZHJlYXMgSmFlZ2VyIGFzIHg4Nl82NCBtYWludGFpbmVyLgoKMjAwMC0xMi0wNyAgQW5kcmV3IEhhbGV5ICA8YXBoQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGRpc3BsYXlfZGVidWdfZnJhbWVzKTogT25seSBkaXNwbGF5IGNvbHVtbnMgdGhhdCBhcmUKCXJlZmVyZW5jZWQgYnkgdGhlIGZyYW1lIGRlYnVnIGluZm8uCgoyMDAwLTEyLTA1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBKYXNvbiBNZXJyaWxsIGFzIERXQVJGMiBtYWludGFpbmVyLgoKMjAwMC0xMi0wNCAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogSGFuZGxlIGxpbmtvbmNlLndpIHNlY3Rpb25zLgoJKGRpc3BsYXlfZGVidWdfc2VjdGlvbik6IExpa2V3aXNlLgoJKGRpc3BsYXlfZGVidWdfaW5mbyk6IERpc3BsYXkgQ1UgaGVhZGVyIGJlZm9yZSBiYWlsaW5nLgoKMjAwMC0xMi0wMSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQHNpYnl0ZS5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9tYWNoaW5lX2ZsYWdzKTogUmVjb2duaXplIE1JUFMzMiBJU0EgaW4KCUVGX01JUFNfQVJDSC4gIFJlcGxhY2UgdXNlIG9mIEVfTUlQU19NQUNIX01JUFMzMiB3aXRoCglFX01JUFNfTUFDSF9NSVBTMzJfNEsgYW5kIGFkanVzdCBwcmludGVkIENQVSBuYW1lIHNpbWlsYXJseS4KCgkqIHJlYWRlbGYuYyAoZ2V0X21hY2hpbmVfZmxhZ3MpOiBBZGQgY2FzZXMgZm9yIEVfTUlQU19BUkNIXzUsCglhbmQgRV9NSVBTX0FSQ0hfNjQuCgoJKiByZWFkZWxmLmMgKGdldF9tYWNoaW5lX2ZsYWdzKTogQWRkIGNhc2UgZm9yCglFX01JUFNfTUFDSF9TQjEuCgoyMDAwLTExLTMwICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIHJlYWRlbGYuYyAoZnJhbWVfZGlzcGxheV9yb3cpOiBPdXRwdXQgJ3MnIGZvciBEV19DRkFfc2FtZV92YWx1ZS4KCjIwMDAtMTEtMjggIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgSoH2cm4gUmVubmVja2UgYW5kIHNlbGYgYXMgU0ggbWFpbnRhaW5lcnMuCglDaGFuZ2Ugc291cmNld2FyZS5jeWdudXMuY29tIHRvIHNvdXJjZXMucmVkaGF0LmNvbS4KCUZpeCB0eXBvIGZvciAiYW1vbmdzdCIuCgoyMDAwLTExLTI4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogc3RyaXAuMSAoQ09QWUlORyk6IE1lbnRpb24gdGhhdCB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbgoJTGljZW5zZSBpcyBwcmVzZW50IGluIHRoZSBzb3VyY2VzLCBidXQgbm90IHRoZSBvdXRwdXQsIGFuZAoJYWxzbyBhdmFpbGFibGUgZnJvbSB0aGUgR05VIHdlYnNpdGUuCgkoR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlKTogQ29tbWVudCBvdXQgdGhpcyBzZWN0aW9uLgoJKiBzdHJpbmdzLjE6IERpdHRvLgoJKiBzaXplLjE6IERpdHRvLgoJKiByYW5saWIuMTogRGl0dG8uCgkqIG9iamR1bXAuMTogRGl0dG8uCgkqIG9iamNvcHkuMTogRGl0dG8uCgkqIG5tLjE6IERpdHRvLgoJKiBubG1jb252LjE6IERpdHRvLgoJKiBhci4xOiBEaXR0by4KCSogYWRkcjJsaW5lLjE6IERpdHRvLgoKMjAwMC0xMS0yNyAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKHVzYWdlKTogQWRkIC13ZiAoLS1kZWJ1Zy1kdW1wPWZyYW1lcykgb3B0aW9uLgoJKHBhcnNlX2FyZ3MpOiBTdXBwb3J0IC13ZiBvcHRpb24uCgkocHJvY2Vzc19zZWN0aW9uX2hlYWRlcnMpOiBEaXR0by4KCShkZWJ1Z19kaXNwbGF5cyk6IERpdHRvLgoJKGRpc3BsYXlfZGVidWdfZnJhbWVzKTogTmV3LCBkdW1wICpfZnJhbWUgc2VjdGlvbnMuCgkoZnJhbWVfbmVlZF9zcGFjZSk6IFN1cHBvcnQgZm9yIGFib3ZlLgoJKGZyYW1lX2Rpc3BsYXlfcm93KTogRGl0dG8uCgkqIGJpbnV0aWxzLnRleGk6IERvY3VtZW50IGl0LgoKMjAwMC0xMS0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE5FV1M6IEFubm91bmNlIHN1cHBvcnQgZm9yIHY1dCwgdjV0ZSBhbmQgWFNjYWxlLgoKMjAwMC0xMS0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZ2V0X21hY2hpbmVfbmFtZSk6IEFkZCBFTV9KQVZFTElOLCBFTV9GSVJFUEFUSCwKCUVNX1pTUCwgRU1fTU1JWCwgRU1fSFVBTlksIEVNX1BSSVNNLgoJKGdldF9zZWN0aW9uX3R5cGVfbmFtZSk6IEFkZCBTSFRfR1JPVVAgYW5kIFNIVF9TWU1UQUJfU0hORFguCgkoZ2V0X2VsZl9zZWN0aW9uX2ZsYWdzOiBBZGQgU0hGX0dST1VQLgoJKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogQWRqdXN0IG91dHB1dCBmb3IgMzItYml0IGJpbmFyaWVzCgl0byBsb29rIG5pY2Ugb24gYW4gODAgY29sdW1uIHRlcm1pbmFsLgoKMjAwMC0xMS0yMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVhZGVsZi5jIChnZXRfb3NhYmlfbmFtZSk6IENoYW5nZSBFTEZPU0FCSV9NT05URVJFWSB0bwoJRUxGT1NBQklfQUlYLgoKMjAwMC0xMS0xNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZGlzcGxheV9kZWJ1Z19saW5lcyk6IEFkanVzdCBsYXN0IGNoYW5nZSB0bwoJdXNlIHNpemVvZiAoZXh0ZXJuYWwtPmxpX2xlbmd0aCkuCgoyMDAwLTExLTE3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkaXNwbGF5X2RlYnVnX2xpbmVzKTogRml4IHNlY3Rpb24gbGVuZ3RoIGNoZWNrCglhbmQgZW5kX29mX3NlcXVlbmNlIGNvbXB1dGF0aW9uLgoKMjAwMC0xMS0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGJpbnV0aWxzLnRleGk6IEFkZCBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuCgkqIG9iamNvcHkuMTogQWRkIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4KCSogb2JqZHVtcC4xOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoJKiBhZGRyMmxpbmUuMTogQWRkIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4KCSogYXIuMTogQWRkIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4KCSogbmxtY29udi4xOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoJKiBubS4xOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoJKiByYW5saWIuMTogQWRkIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4KCSogc2l6ZS4xOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoJKiBzdHJpbmdzLjE6IEFkZCBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuCgkqIHN0cmlwLjE6IEFkZCBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuCgoyMDAwLTEwLTA2ICBMdWNpYW5vIEdlbW1lIDxpc2hpdGF3YUB5YWhvby5jb20+CgoJKiBvYmpjb3B5LmMgKC0tc3JlYy1sZW49bm4pOiBOZXcgcGFyYW1ldGVyIHRvIHNldCB0aGUKCW1heGltdW0gbGVuZ3RoIG9mIGdlbmVyYXRlZCBTcmVjb3Jkcy4KCSgtLXNyZWMtZm9yY2VTMyk6IE5ldyBwYXJhbWV0ZXIgdGhhdCByZXN0cmljdHMgdGhlIGdlbmVyYXRpb24gb2YKCVNyZWNvcmRzIHRvIHR5cGUgUzMgb25seS4KCSogYmludXRpbHMudGV4aTogRG9jdW1lbnQgbmV3IGNvbW1hbmQgbGluZSBzd2l0Y2hlcy4KCSogb2JqY29weS4xOiBEb2N1ZW1udCB0aGUgbmV3IGNvbW1hbmQgbGluZSBzd2l0Y2hlcy4KCSogTkVXUzogQW5ub3VuY2UgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgbmV3IGNvbW1hbmQgbGluZSBzd2l0Y2hlcy4KCjIwMDAtMTAtMzEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIEppbSBXaWxzb24gYXMgdGhlIG1haW50YWluZXIgZm9yIHRoZSBJQTY0Cgljb2RlLiAgQWRkIEVyaWMgQ2hyaXNvcGhlciBhcyBtYWludGFpbmVyIG9mIE1OMTAzMDAgcG9ydC4KCjIwMDAtMTAtMTIgIFJvZ2VyIFNheWxlICA8cm9nZXJAbWV0YXBob3JpY3MuY29tPgoKCSogTWFrZSBjb21tYSBhZnRlciBzdHJpbmcgYWZ0ZXIgaWNvbi9jb250cm9sIG9wdGlvbmFsLgoKMjAwMC0wOS0xMyAgQW5kZXJzIE5vcmxhbmRlciAgPGFub3JsYW5kQGFjYy51bXUuc2U+CgoJKiByZWFkZWxmLmMgKGdldF9tYWNoaW5lX2ZsYWdzKTogQWxzbyBwcmludCBFRl9NSVBTX01BQ0ggZmllbGQuCgoJKiBORVdTOiBNZW50aW9uIHN1cHBvcnQgZm9yIE1JUFMzMi4KCjIwMDAtMDktMDggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIFN0ZXBoYW5lIENhcnJleiBhcyBtYWludGFpbmVyIGZvciA2OEhDWzExfDEyXS4KCjIwMDAtMDktMDcgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS5pbiAoQUNfSVNDX1BPU0lYKTogUHV0IGFmdGVyIEFDX0NBTk9OSUNBTF9TWVNURU0uCgkqIGNvbmZpZ3VyZTogUmVidWlsZC4KCjIwMDAtMDktMDYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlOiBSZWJ1aWx0IHdpdGggbmV3IGxpYnRvb2wubTQuCgoyMDAwLTA5LTA1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAwLTA5LTA0ICBUb2RkIFZpZXJsaW5nICA8dHZAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBzdHJpcC4xOiBGaXggc3RyYXkgJ1wnIGluIC1vIGZvcm1hdHRpbmcuCgoyMDAwLTA5LTAyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluOiBJbmNyZWFzZSB2ZXJzaW9uIG51bWJlciB0byAyLjEwLjkxLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCSogcG8vYmludXRpbHMucG90OiBSZWdlbmVyYXRlLgoKMjAwMC0wOC0zMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBhY2luY2x1ZGUubTQ6IEluY2x1ZGUgbGlidG9vbCBhbmQgZ2V0dGV4dCBtYWNyb3MgZnJvbSB0aGUKCXRvcCBsZXZlbC4KCSogYWNsb2NhbC5tNCwgY29uZmlndXJlOiBSZWJ1aWx0LgoKMjAwMC0wOC0zMCAgSmFtaWUgR3VpbmFuICA8Z3VpbmFuQGJsdWVidXR0b24uY29tPgoKCSogcmVzcmMuYyAoY2xvc2VfaW5wdXRfc3RyZWFtKTogRGVsZXRlIGV4dHJhbmVvdXMgbG9naWMKCjIwMDAtMDgtMjQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogTkVXUzogTWVudGlvbiBzdXBwb3J0IGZvciBDUklTLgoKMjAwMC0wOC0yMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFkZHIybGluZS5jOiBDaGFuZ2VkIGVtYWlsIGFkZHJlc3MgZm9yIFVscmljaCBMYXV0aGVyLgoKMjAwMC0wOC0xNyAgQ2hyaXN0b3BoZXIgQy4gQ2hpbWVsaXMgPGNocmlzQGRlYmlhbi5vcmc+CgoJKiBvYmpkdW1wLmMgKExPTkdFU1RfQVJDSCk6IFNldCB0byBzaXplb2YoInBvd2VycGM6Y29tbW9uIikuCgoyMDAwLTA4LTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkaXNwbGF5X2RlYnVnX3B1Ym5hbWVzKTogT25seSBpc3N1ZSB3YXJuaW5nCgltZXNzYWdlIG9uY2UuICBUZXJtaW5hdGUgbWVzc2FnZSB3aXRoIGEgbmV3IGxpbmUuCgkoZGlzcGxheV9kZWJ1Z19hcmFuZ2VzKTogT25seSBkaXNwbGF5IHZlcnNpb24gMiBkZWJ1ZyBpbmZvLgoKMjAwMC0wOC0xNCAgVG9kZCBWaWVybGluZyA8dHZAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBvYmpjb3B5LmMgKHN0cmlwX21haW4pOiBTaWxlbnRseSBhY2NlcHQgLWQgYXMgYW4gYWxpYXMgZm9yIC1nCglmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBCU0Qgc3lzdGVtcy4KCjIwMDAtMDgtMTQgIEphc29uIEVja2hhcmR0ICA8amxlQGN5Z251cy5jb20+CgoJKiBORVdTOiBNZW50aW9uIGk4NjAgc3VwcG9ydC4KCjIwMDAtMDgtMTEgIENhcmxvIFdvb2QgPGNhcmxvQGFsaW5vZS5jb20+CgoJKiBhZGRyMmxpbmUuYyAobWFpbik6IEFkZCBjb25zdCB0byBjaGFyICouCgoyMDAwLTA4LTExICBHZW9mZiBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiBhci5jIChtYWluKTogRG9uJ3QgY3Jhc2ggaWYgY2FsbGVkIHdpdGggbm8gYXJndW1lbnRzCglvciBvbmx5ICctWDMyXzY0JyBhcyBhbiBhcmd1bWVudC4KCjIwMDAtMDgtMDggIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogcmVzcmMuYzogdXNlICJnY2MgLXhjIiBpbnN0ZWFkIG9mIC14Yy1oZWFkZXIKCjIwMDAtMDgtMDUgIEphc29uIEVja2hhcmR0ICA8amxlQGN5Z251cy5jb20+CgoJKiByZWFkZWxmLmMgKGVsZi9pODYwLmgpOiBJbmNsdWRlLgoJKGR1bXBfcmVsb2NhdGlvbnMpOiBBZGQgcmVjb2duaXRpb24gb2YgaTg2MCBhcmNoaXRlY3R1cmUuCgkoZ3Vlc3NfaXNfcmVsYSk6IEFkZCByZWNvZ25pdGlvbiBvZiBpODYwIGFyY2hpdGVjdHVyZS4KCjIwMDAtMDgtMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIGluZm9ybWF0aW9uIGFib3V0IENHRU4gbWFpbnRhaW5lcnMuCgoyMDAwLTA3LTI2ICBHZW9mZiBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiBubS5jIChtYWluKTogSWdub3JlICctWDMyXzY0JyBhcyBhbiBvcHRpb24uCgkqIGFyLmMgKG1haW4pOiBMaWtld2lzZS4KCSogYmludXRpbHMudGV4aSAobm0pOiBEb2N1bWVudCBuZXcgb3B0aW9uLgoJKGFyKTogTGlrZXdpc2UuCgoyMDAwLTA3LTIzICBNaWNoYWVsIFNva29sb3YgIDxtc29rb2xvdkBpdmFuLkhhcmhhbi5PUkc+CgoJKiByZGNvZmYuYyAoZXh0ZXJuYWxfY29mZl9zeW1ib2xfcCk6IEsmUi1pc2UuCgoyMDAwLTA3LTIwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBiaW51dGlscy50ZXhpOiBQdXQgYmFjayAiQGVuZCB0YWJsZSIgZGVsZXRlZCBieQoJYWNjaWRlbnQuCgoyMDAwLTA3LTA1ICBLZW5uZXRoIEJsb2NrICA8a3JibG9ja0Bjb21wdXRlci5vcmc+CgoJKiBubS5jOiBBZGQgb3B0aW9uYWwgc3R5bGUgdG8gZGVtYW5nbGUgc3dpdGNoLgoJKiBvYmpkdW1wLmM6IEFkZCBvcHRpb25hbCBzdHlsZSB0byBkZW1hbmdsZSBzd2l0Y2guCgkqIGFkZHIybGluZS5jOiBBZGQgb3B0aW9uYWwgc3R5bGUgdG8gZGVtYW5nbGUgc3dpdGNoLgoJKiBiaW51dGlscy50ZXhpOiBEb2N1bWVudCBvcHRpb25hbCBzdHlsZSB0byBkZW1hbmdsZQoJc3dpdGNoLgoKMjAwMC0wNy0yMCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIHNlbGYgYXMgQ1JJUyBwb3J0IG1haW50YWluZXIuCgkqIHJlYWRlbGYuYzogSW5jbHVkZSBlbGYvY3Jpcy5oLgoJKGd1ZXNzX2lzX3JlbGEpOiBIYW5kbGUgRU1fQ1JJUy4KCShkdW1wX3JlbG9jYXRpb25zKTogRGl0dG8uCgkoZ2V0X21hY2hpbmVfbmFtZSk6IERpdHRvLgoJKiBNYWtlZmlsZS5hbTogUmVidWlsZCBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9iaW51dGlscy5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAwLTA3LTE5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiByZWFkZWxmLmMgKGdldF9keW5hbWljX3R5cGUpOiBDaGFuZ2UgIkFVWElMQVJZIiB0bwoJIkFVWElMSUFSWSIuCgkocHJvY2Vzc19keW5hbWljX3NlZ21lbnQpOiBQcmludCBvdXQgc3RyaW5ncyBmb3IgRFRfQ09ORklHLAoJRFRfREVQQVVESVQsIERUX0FVRElUIGFuZCBEVF9SVU5QQVRILgoKMjAwMC0wNy0xOSAgTWFyayBLZXR0ZW5pcyAgPGtldHRlbmlzQGdudS5vcmc+CgoJKiBubS5jICh1c2FnZSk6IENoYW5nZSBvdXRwdXQgb2YgYG5tIC0taGVscCcgdG8gaW5jbHVkZSBhCglkZXNjcmlwdGlvbiBvZiB0aGUgcHVycG9zZSBvZiB0aGUgcHJvZ3JhbSBhbmQgYSBkZXRhaWxlZAoJZGVzY3JpcHRpb24gb2YgdGhlIGFjY2VwdGVkIG9wdGlvbnMuCgoyMDAwLTA3LTE5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3NfZHluYW1pY19zZWdtZW50KTogQ2hhbmdlIERGXzFfTk9ERVBMSUIKCXRvIERGXzFfTk9ERUZMSUIuCgoyMDAwLTA3LTE5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiByZWFkZWxmLmMgKGdldF9keW5hbWljX3R5cGUpOiBGaXggRFRfQ0hFQ0tTVU0uCgoyMDAwLTA3LTE5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiByZWFkZWxmLmMgKGdldF9keW5hbWljX3R5cGUpOiBDaGFuZ2UgRFRfRkVBVFVSRV8xIHRvCglEVF9GRUFUVVJFLgoJKHByb2Nlc3NfZHluYW1pY19zZWdtZW50KTogTGlrZXdpc2UuCgoJKiByZWFkZWxmLmMgKGdldF9keW5hbWljX3R5cGUpOiBIYW5kbGUgRFRfQ09ORklHLCBEVF9ERVBBVURJVCwKCURUX0FVRElULCBEVF9QTFRQQUQsIERUX01PVkVUQUIgYW5kIERUX0NIRUNLU1VNLgoJKHByb2Nlc3NfZHluYW1pY19zZWdtZW50KTogSGFuZGxlIERURl8xX0NPTkZFWFAsIERGXzFfTk9ERVBMSUIsCglERl8xX05PRFVNUCBhbmQgREZfMV9DT05MRkFULgoKMjAwMC0wNy0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGJpbnV0aWxzLnRleGkgKHJlYWRlbGYpOiBGaXggc3BlbGxpbmcgdHlwby4KCjIwMDAtMDctMTEgIE1hcmsgS2V0dGVuaXMgIDxrZXR0ZW5pc0BnbnUub3JnPgoKCSogb2JqZHVtcC5jICh1c2FnZSk6IE1ha2Ugb3V0cHV0IG9mIGBvYmpkdW1wIC0taGVscCcgbW9yZQoJY29uc2lzdGVudCB3aXRoIHRoZSByZXN0IG9mIHRoZSBHTlUgd29ybGQuICBBZGQgYSBsaW5lIGRlc2NyaWJpbmcKCXRoZSBwdXJwb3NlIG9mIHRoZSBwcm9ncmFtLgoKMjAwMC0wNy0xMCAgRGF2aWQgSHVnZ2lucy1EYWluZXMgIDxkaGRAbGludXhjYXJlLmNvbT4KCgkqIHN0YWJzLmMgKHBhcnNlX3N0YWJfcmFuZ2VfdHlwZSk6IENhc3QgdG8gcHJvcGVyIHR5cGUgdG8gZml4Cgl3YXJuaW5nLgoKMjAwMC0wNy0xMCAgUnlhbiBCcmFkZXRpY2ggIDxyYnJhZGV0aWNoQHVzd2VzdC5uZXQ+CgoJKiByZWFkZWxmLmMgKGdldF9keW5hbWljX2RhdGEpOiBBZGQgY2FzdHMgYW5kIHVzZSB1bnNpZ25lZCBjaGFycwoJdG8gZml4IHdhcm5pbmdzLgoJKHByb2Nlc3Nfc3ltYm9sX3RhYmxlKTogRGl0dG8uCgkocHJvY2VzU19leHRlbmRlZF9saW5lX29wKTogRGl0dG8uCgkoZGlzcGxheV9kZWJ1Z19saW5lcyk6IERpdHRvLgoJKGRpc3BsYXlfZGVidWdfcHVibmFtZXMpOiBEaXR0by4KCShyZWFkX2FuZF9kaXNwbGF5X2F0dHIpOiBEaXR0by4KCjIwMDAtMDctMDkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIHNldmVyYWwgbW9yZSBwb3J0IHNwZWNpZmljIG1haW50YWluZXJzLgoKMjAwMC0wNy0wNSAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgYmxhbmtldCB3cml0ZSBwcml2cyBmb3IgTWljaGFlbCBNZWlzc25lci4KCjIwMDAtMDYtMDUgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IE5ldy4KCjIwMDAtMDctMDEgIEVyaWMgRmlmZXIgIDxFRmlmZXJAc2Fud2FpbnQuY29tPgoKCSogZGxsd3JhcC5jOiBDaGFuZ2VkIG1pc3Rha2VuIGR5bl9zdHJpbmdfYXBwZW5kKCkgY2FsbHMKCXRvIGR5bl9zdHJpbmdfYXBwZW5kX2NzdHIoKS4KCjIwMDAtMDctMDEgIEFsZXhhbmRlciBBZ2FuaWNoZXYgPEFBZ2FuaWNoZXZAaHlwZXJjb20uY29tPgoKCSogc3RhYnMuYyAocGFyc2Vfc3RhYl90eXBlKTogRGl2aWRlIHNpemUgaW4gYml0cyBieSA4IGFzIGJpbnV0aWxzCglzdHJ1Y3QgZGVidWdfdHlwZSBzdG9yZXMgc2l6ZSBpbiBieXRlcy4KCjIwMDAtMDctMDEgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBNYWtlZmlsZS5hbSAoREVQKTogRml4IDIwMDAtMDYtMjIuICBncmVwIGFmdGVyIHJ1bm5pbmcgZGVwLnNlZAoJKENMRUFORklMRVMpOiBBZGQgREVQQS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAwLTA2LTI3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogYXIuYzogUmV2ZXJ0IGluY29ycmVjdCAyMDAwLTA2LTI1IHBhdGNoLgoJKiBidWNvbW0uYzogTGlrZXdpc2UuCgoyMDAwLTA2LTI1IE1hcmsgRWxicmVjaHQgPHNub3diYWxsM0BiaWdmb290LmNvbT4KCgkqIHJkY29mZiAocGFyc2VfY29mZl9zeW1ib2wpOiBUcmVhdCBHTlUgd2VhayBzeW1ib2xzIGFzIGV4dGVybmFsLgoJKGV4dGVybmFsX2NvZmZfc3ltYm9sX3ApOiBOZXcgZnVuY3Rpb24uCgkocGFyc2VfY29mZik6IFVzZSBpdC4KCjIwMDAtMDYtMjUgIEFsZXhhbmRlciBBZ2FuaWNoZXYgPEFBZ2FuaWNoZXZAaHlwZXJjb20uY29tPgoKCSogYXIuYyAobm9ybWFsaXplKTogQWR2YW5jZSBwYXN0IGJvdGggY2hhcmFjdGVycyBpbiBhIERPUyBiYXNlZAoJPGxldHRlcj46IGZpbGVwYXRoIHByZWZpeC4KCShtYWluKTogTGlrZXdpc2UuCgkqIGJ1Y29tbS5jIChtYWtlX3RlbXBuYW1lKTogTGlrZXdpc2UuCgoyMDAwLTA2LTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogb2JqZHVtcC5jICh1c2FnZSk6IEZpeCBkZXNjcmlwdGlvbiBvZiAtLXN0YWJzIHN3aXRjaC4KCjIwMDAtMDYtMjIgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBNYWtlZmlsZS5hbSAoREVQKTogZ3JlcCBmb3IgbGVhZGluZyBgLycgaW4gREVQMSwgYW5kIGZhaWwgaWYgd2UKCWZpbmQgb25lLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDYtMjAgIEFsZXhhbmRlciBBZ2FuaWNoZXYgPEFBZ2FuaWNoZXZAaHlwZXJjb20uY29tPgoKCSogYXIuYyAobm9ybWFsaXplKTogQ29ycmVjdCBwb2ludGVyIGNvbXBhcmlzb24gd2hlbiBjaGVja2luZyBmb3IKCWJhY2tzbGFzaGVzLgoJKG1haW4pOiBMaWtld2lzZS4KCSogYnVjb21tLmMgKG1ha2VfdGVtcG5hbWUpOiBMaWtld2lzZS4KCgkqIGllZWUuYyAoaWVlZV9zdGFydF9jb21waWxhdGlvbl91bml0KTogQ29ycmVjdCBwb2ludGVyIGNvbXBhcmlzb24KCWFuZCBzZWFyY2ggZm9yIGJhY2tzbGFzaGVzIGluIHRoZSBvcmlnaW5hbCBwYXRobmFtZS4KCShpZWVlX2FkZF9iYjExKTogTGlrZXdpc2UuCgoyMDAwLTA2LTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYXIuYyAocHJpbnRfY29udGVudHMpOiBJbXByb3ZlIHZlcmJvc2UgbWVzc2FnZS4KCjIwMDAtMDYtMTUgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGR5bi1zdHJpbmcuYzogUmVtb3ZlZC4gTm90IG5lZWRlZCB3aXRoIGR5bi1zdHJpbmcuYyBpbgoJbGliaWJlcnR5LgoJKiBkeW4tc3RyaW5nLmg6IExpa2V3aXNlLgoKCSogTWFrZWZpbGUuYW06IFJlbW92ZSByZWZlcmVuY2VzIHRvIGR5bi1zdHJpbmcuYyBhbmQKCWR5bi1zdHJpbmcuaC4gUmVidWlsZCBkZXBlbmRlbmN5LgoJKiBNYWtlZmlsZS5pbjogUmVidWlsZC4KCjIwMDAtMDYtMTUgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGJpbnV0aWxzLnRleGk6IFB1dCBhIHdhcm5pbmcgb24gY29weWluZyByZWxvY2F0YWJsZSBvYmplY3QKCWZpbGVzIGJldHdlZW4gdHdvIGRpZmZlcmVudCBmb3JtYXRzLgoKMjAwMC0wNi0xMyAgREogRGVsb3JpZSAgPGRqQGN5Z251cy5jb20+CgoJKiByY3BhcnNlLnkgKGNvbnRyb2wpOiBJQ09OIGNvbnRyb2xzIHRha2UgYW4gaWQgYXMgdGhlIGZpcnN0CglwYXJhbWV0ZXIsIG5vdCBhbiBvcHRpb25hbCBzdHJpbmcuICBBbHNvLCBjYWxsIG5ldyBjb252ZW5pZW5jZQoJZnVuY3Rpb24gdGhhdCB0YWtlcyByZXNfaWQncy4KCSogcmVzcmMuYyAoZGVmaW5lX2NvbnRyb2wpOiBtaXNzaW5nIHRleHQgbWVhbnMgemVyby1sZW5ndGggc3RyaW5nLAoJbm90IHplcm8gSUQuCgkoZGVmaW5lX2ljb25fY29udHJvbCk6IE5ldy4KCSogd2luZHJlcy5oOiBkZWNsYXJlIGRlZmluZV9pY29uX2NvbnRyb2wuCgoyMDAwLTA2LTEzICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAwLTA2LTA4ICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogY29uZmlndXJlLmluIChWRVJTSU9OKTogVXBkYXRlIHRvIHNob3cgdGhpcyBpcyB0aGUgQ1ZTIG1haW5saW5lLgoKMjAwMC0wNi0wMiAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIHN0cmluZ3MuYyAoaXNncmFwaGljKTogSW50ZXJwcmV0IDxUQUI+IGFzIGEgcHJpbnRhYmxlIGNoYXJhY3RlciwKCWFuYWxvZ291cyB0byA8U1BBQ0U+LgoKMjAwMC0wNS0zMCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIG9iamR1bXAuYyAoZGlzcGxheV90YXJnZXRfbGlzdCk6IFVzZSBiZmRfY2xvc2VfYWxsX2RvbmUsIG5vdAoJYmZkX2Nsb3NlIHRvIGZpeCBjcmFzaCBjYXVzZWQgYnkgMjAwMC0wNS0yNCBjaGFuZ2UuCgoyMDAwLTA1LTI1ICBESiBEZWxvcmllICA8ZGpAY3lnbnVzLmNvbT4KCgkqIHJlc3JjLmMgKGNsb3NlX2lucHV0X3N0cmVhbSk6IHplcm8gb3V0IGNwcF9waXBlIGFmdGVyIGNsb3NpbmcgaXQuCgoyMDAwLTA1LTI2ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogTWFrZWZpbGUuYW06IFVwZGF0ZSBkZXBlbmRlbmNpZXMgd2l0aCAibWFrZSBkZXAtYW0iCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wNS0yNiAgRWxpIFphcmV0c2tpaSAgPGVsaXpAaXMuZWx0YS5jby5pbD4KCgkqIGFyLmM6IEluY2x1ZGUgZmlsZW5hbWVzLmguCgkobm9ybWFsaXplKSBbSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU1dOiBTdXBwb3J0IGJhY2tzbGFzaGVzCglhbmQgZHJpdmUgbGV0dGVycyBpbiBmaWxlIG5hbWVzLgoJKG1haW4pOiBTdXBwb3J0IGJhY2tzbGFzaGVzIGFuZCBkcml2ZSBsZXR0ZXJzIGluIGFyZ3ZbMF0uICBEcm9wCgl0aGUgLmV4ZSBzdWZmaXgsIGlmIGFueSwgaW4gYXJndlswXSBpZiBpc19yYW5saWIgaXMgbmVnYXRpdmUuICBVc2UKCUZJTEVOQU1FX0NNUCBpbnN0ZWFkIG9mIHN0cmNtcCB0byBjb21wYXJlIGZpbGUgbmFtZXMuCgkob3Blbl9pbmFyY2gpIFtfX0dPMzJfX106IERvbid0IGlmZGVmIGVycm5vICE9IEVOT0VOVCB0ZXN0IGZvcgoJREpHUFAgdjIuCgkoZG9fcXVpY2tfYXBwZW5kKSBbX19HTzMyX19dOiBEaXR0by4KCShnZXRfcG9zX2JmZCwgZGVsZXRlX21lbWJlcnMsIG1vdmVfbWVtYmVycywgcmVwbGFjZV9tZW1iZXJzKToKCUNvbXBhcmUgZmlsZSBuYW1lcyB3aXRoIEZJTEVOQU1FX0NNUC4KCgkqIGJ1Y29tbS5jOiBJbmNsdWRlIGZpbGVuYW1lcy5oLgoJKG1ha2VfdGVtcG5hbWUpIFtIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTV06IFN1cHBvcnQgbWl4ZWQKCWZvcndhcmQvYmFja3dhcmQgc2xhc2hlcyBhbmQgZHJpdmUgbGV0dGVycyBpbiBmaWxlIG5hbWVzLgoKCSogaWVlZS5jIChpZWVlX3N0YXJ0X2NvbXBpbGF0aW9uX3VuaXQsIGllZWVfYWRkX2JiMTEpOiBTdXBwb3J0CgltaXhlZCBmb3J3YXJkL2JhY2t3YXJkIHNsYXNoZXMgYW5kIGRyaXZlIGxldHRlcnMgaW4gZmlsZSBuYW1lcy4KCgkqIHN0cmluZ3MuYyAoT19CSU5BUlksIHNldG1vZGUsIFNFVF9CSU5BUlkpOiBEZWZpbmUuCgkobWFpbikgW1NFVF9CSU5BUlldOiBVc2UgU0VUX0JJTkFSWSB0byBzd2l0Y2ggc3RkaW4gaW50byBiaW5hcnkKCW1vZGUuCgoJKiBvYmpjb3B5LmM6IEluY2x1ZGUgZmlsZW5hbWVzLmguCgkobWFpbikgW0hBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNXTogRHJvcCB0aGUgLmV4ZSBzdWZmaXgKCWJlZm9yZSBjb21wYXJpbmcgdG8gInN0cmlwIi4KCVVzZSBGSUxFTkFNRV9DTVAgdG8gY29tcGFyZSBmaWxlIG5hbWVzLgoKCSogYXJzdXAuYzogSW5jbHVkZSBmaWxlbmFtZXMuaC4KCShtYXBfb3Zlcl9saXN0LCBhcl9kZWxldGUsIGFyX3JlcGxhY2UsIGFyX2V4dHJhY3QpOiBVc2UKCUZJTEVOQU1FX0NNUCB0byBjb21wYXJlIGZpbGUgbmFtZXMuCgkoYXJfb3Blbik6IFByZXBlbmQgInRtcC0iIGluc3RlYWQgb2YgYXBwZW5kaW5nICItdG1wIiwgdG8gY3JlYXRlCgl0aGUgdGVtcG9yYXJ5IGZpbGUgbmFtZS4KCgkqIGNvbmZpZ3VyZS5pbjogQ2hlY2sgZm9yIHNldG1vZGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDAtMDUtMjQgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBvYmpkdW1wLmMgKGRpc3BsYXlfdGFyZ2V0X2xpc3QpOiBDbG9zZSB0aGUgYmZkLgoJKGRpc3BsYXlfaW5mb190YWJsZSk6IExpa2V3aXNlLgoKMjAwMC0wNS0xNCAgSC5KLiBMdSAgKGhqbEBnbnUub3JnKQoKCSogb2JqY29weS5jIChmaWx0ZXJfc3ltYm9scyk6IERvbid0IHN0cmlwIGdsb2JhbCBzeW1ib2xzIGluCglyZWxvY2F0YWJsZSBvYmplY3QgZmlsZXMuCgoyMDAwLTA1LTE0ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogc2l6ZS5jICh1c2FnZSk6IEFzc29jaWF0ZSBzaG9ydCBvcHRpb25zIHdpdGggY29ycmVzcG9uZGluZyBsb25nCglvcHRpb24gdG8gZ2l2ZSBhIGNsdWUgYXMgdG8gdGhlaXIgZnVuY3Rpb24uCgoyMDAwLTA1LTE0ICBQaGlsaXBwZSBEZSBNdXl0ZXIgIDxwaGRtQG1hY3FlbC5iZT4KCgkqIHNpemUuYyAobWFpbik6IEFjY2VwdCBhbmQgaWdub3JlIGAtZicgb3B0aW9uLgoKMjAwMC0wNS0xMyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGJ1Y29tbS5oIChnZXR0ZXh0LCBkZ2V0dGV4dCwgZGNnZXR0ZXh0LCB0ZXh0ZG9tYWluLAoJYmluZHRleHRkb21haW4pOiBSZXBsYWNlIGRlZmluZXMgd2l0aCB0aG9zZSBmcm9tIGludGwvbGliZ2V0dGV4dC5oCgl0byBxdWlldGVuIGdjYyB3YXJuaW5ncy4KCjIwMDAtMDUtMTIgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIG5sbWNvbnYuYyAodGVtcF9maWxlbmFtZSk6IFJlbW92ZWQuCgoJKiBubG1jb252LmMgKGxpbmtfaW5wdXRzKTogVXNlIG1ha2VfdGVtcF9maWxlICgpIGluc3RlYWQgb2YKCWNob29zZV90ZW1wX2Jhc2UgKCkuCgkqIG9iamR1bXAuYyAoZGlzcGxheV90YXJnZXRfbGlzdCk6IExpa2V3aXNlLgoJKGRpc3BsYXlfaW5mb190YWJsZSk6IExpa2V3aXNlLgoKMjAwMC0wNS0wOCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIG9iamNvcHkuYyAoc2V0dXBfc2VjdGlvbik6IEFkZCBjb25zdCBhbmQgZ2V0dGV4dCBjYWxscyBmb3IgZXJyLgoKMjAwMC0wNS0wMiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVhZGVsZi5jIChnZXRfb3NhYmlfbmFtZSk6IEhhbmRsZSBFTEZPU0FCSV9OT05FIGluc3RlYWQgb2YKCUVMRk9TQUJJX1NZU1YuIEFsc28gaGFuZGxlIEVMRk9TQUJJX05FVEJTRCwgRUxGT1NBQklfSFVSRCwKCUVMRk9TQUJJX1NPTEFSSVMsIEVMRk9TQUJJX01PTlRFUkVZLCBFTEZPU0FCSV9JUklYLAoJRUxGT1NBQklfRlJFRUJTRCwgRUxGT1NBQklfVFJVNjQsIEVMRk9TQUJJX01PREVTVE8KCWFuZCBFTEZPU0FCSV9PUEVOQlNELgoKMjAwMC0wNS0wMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjb2ZmZ3Jvay5jOiBBZGQgQVRUUklCVVRFX1VOVVNFRCBhcyBhcHByb3ByaWF0ZS4KCSogc3Jjb252LmM6IExpa2V3aXNlLgoJKiBzeXNkdW1wLmM6IExpa2V3aXNlLgoKMjAwMC0wNC0yMyAgRGVuaXMgQ2hlcnR5a292ICA8ZGVuaXNjQG92ZXJ0YS5ydT4KCgkqIHJlYWRlbGYuYyAoZ3Vlc3NfaXNfcmVsYSk6IEFWUiB1c2VzIFJFTEEgcmVsb2NhdGlvbnMuCgkoZ2V0X21hY2hpbmVfbmFtZSk6IG1hY2hpbmUgbmFtZSBmb3IgRU1fQVZSIGFkZGVkLgoKMjAwMC0wNC0yMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAY3lnbnVzLmNvbT4KCSAgICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChyZWFkZWxmLm8pOiBBZGQgZWxmL2lhNjQuaC4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgkqIHJlYWRlbGYuYzogSW5jbHVkZSBlbGYvaWE2NC5oLgoJKGd1ZXNzX2lzX3JlbGEsIGR1bXBfcmVsb2NhdGlvbnMpOiBIYW5kbGUgRU1fSUFfNjQuCgoyMDAwLTA0LTE3ICBUaW1vdGh5IFdhbGwgIDx0d2FsbEBjeWdudXMuY29tPgoKCSogb2JqZHVtcC5jIChkaXNhc3NlbWJsZV9kYXRhKTogU2V0IG9jdGV0cyBwZXIgYnl0ZSAqYWZ0ZXIqCglyZXNvbHZpbmcgYXJjaC9tYWNoIGZvciBiaW5hcnkgZmlsZXMuCgoyMDAwLTA0LTE0ICBNaWNoYWVsIFNva29sb3YgIDxtc29rb2xvdkBpdmFuLkhhcmhhbi5PUkc+CgoJKiBhcmxleC5sOiBBZGQgZGlyZWN0aXZlcyB0byBpbmNyZWFzZSBsZXggYnVmZmVyIHNpemUuCgoJKiBvYmpkdW1wLmMsIHJlYWRlbGYuYzogRG9uJ3QgaW5jbHVkZSBzdHJhcmcuaCBvciB2YXJhcmdzLmguIFRoZXkgYXJlCglhbHJlYWR5IGluY2x1ZGVkIGJ5IGJ1Y29tbS5oLgoKMjAwMC0wNC0xMCAgUGhpbGlwcGUgRGUgTXV5dGVyICA8cGhkbUBtYWNxZWwuYmU+CgoJKiByZWFkZWxmLmMgKGR5bmFtaWNfc2VnbWVudF9taXBzX3ZhbCk6IENhbGwgYHNwcmludGYnLCBub3QKCWBzdHJmdGltZScgc2luY2Ugc3RyZnRpbWUgaXMgbm90IGF2YWlsYWJsZSBvbiBhbGwgc3lzdGVtcy4KCShwcm9jZXNzX21pcHNfc3BlY2lmaWMpOiBEaXR0by4KCjIwMDAtMDQtMDcgIEFuZHJldyBDYWduZXkgIDxjYWduZXlAYjEuY3lnbnVzLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoV0FSTl9DRkxBR1MpOiBTZXQgdG8gLVcgLVdhbGwgYnkgZGVmYXVsdC4gIEFkZAoJLS1lbmFibGUtYnVpbGQtd2FybmluZ3Mgb3B0aW9uLgoJKiBNYWtlZmlsZS5hbSAoQU1fQ0ZMQUdTLCBXQVJOX0NGTEFHUyk6IEFkZCBkZWZpbml0aW9ucy4KCSogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZTogUmUtZ2VuZXJhdGUuCgoyMDAwLTA0LTA2ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogYWRkcjJsaW5lLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgkqIG9iamNvcHkuMTogTGlrZXdpc2UsIGFuZCB0aXRsZS4KCSogc3RyaW5ncy4xOiBMaWtld2lzZS4KCgkqIHZlcnNpb24uYyAocHJpbnRfdmVyc2lvbik6IEFkZCAyMDAwLgoKCSogcmRkYmcuYyAocmVhZF9zZWN0aW9uX3N0YWJzX2RlYnVnZ2luZ19pbmZvKTogRG9uJ3QgdXNlCgliZmRfc2l6ZV90eXBlIGZvciBzdHJ4IHRvIGF2b2lkIHByaW50ZiBwcm9ibGVtcyBpZiBCRkQ2NC4KCgkqIGJ1Y29tbS5jOiAocmVwb3J0KTogUmVtb3ZlIGBzdGF0aWMnLgoJTW92ZSBpbmNsdXNpb24gb2Ygc3RkYXJnLmgvdmFyYXJnLmggZnJvbSBoZXJlLgoJKiBidWNvbW0uaDogVG8gaGVyZS4KCShDT05TVCk6IENoYW5nZSBhbGwgb2NjdXJlbmNlcyB0byBjb25zdC4KCShyZXBvcnQpOiBEZWNsYXJlIGl0LgoJKGJmZF9mYXRhbCk6IEFkZCBBVFRSSUJVVEVfTk9SRVRVUk4uCgkoZmF0YWwpOiBBZGQgQVRUUklCVVRFX1BSSU5URl8xIEFUVFJJQlVURV9OT1JFVFVSTi4KCShub25fZmF0YWwpOiBBZGQgQVRUUklCVVRFX1BSSU5URl8xLgoKCSogYXIuYyAobWFpbik6IFVzZSBmYXRhbCBvciBub25fZmF0YWwgaW5zdGVhZCBvZiBmcHJpbnRmLgoJQ29ycmVjdCBhIHR5cG8gaW4gYW4gZXJyb3IgbWVzc2FnZS4KCShkb19xdWlja19hcHBlbmQpOiBVc2Ugbm9uX2ZhdGFsIGluc3RlYWQgb2YgZnByaW50Zi4KCShtb3ZlX21lbWJlcnMpOiBVc2UgZmF0YWwgaW5zdGVhZCBvZiBmcHJpbnRmLCBleGl0LgoJKiBjb2ZmZHVtcC5jIChtYWluKTogU2FtZSBoZXJlLgoKCSogZGxsdG9vbC5jIChkaXNwbGF5KTogRGVsZXRlLgoJKHdhcm4pOiBEZWxldGUuCgkoaW5mb3JtKTogVXNlIGByZXBvcnQnIGluc3RlYWQgb2YgYGRpc3BsYXknLgoJKHJ2YWFmdGVyKTogUmVtb3ZlIHRyYWlsaW5nIFxuIGZyb20gZmF0YWwgZXJyb3IgbXNnLgoJKHJ2YWJlZm9yZSk6IERpdHRvLgoJKGFzbV9wcmVmaXgpOiBEaXR0by4KCSh5eWVycm9yKTogUmVwbGFjZSBgd2Fybicgd2l0aCBgbm9uX2ZhdGFsJywgYW5kIHJlbW92ZSBcbi4KCShkZWZfbmFtZSk6IExpa2V3aXNlLgoJKHJ1bik6IExpa2V3aXNlLgoJKHNjYW5fYWxsX3N5bWJvbHMpOiBMaWtld2lzZS4KCShnZW5fbGliX2ZpbGUpOiBMaWtld2lzZS4KCShkZWZfbGlicmFyeSk6IExpa2V3aXNlLiAgUmVtb3ZlIGV4dHJhIHByb2dyYW1fbmFtZSB0b28uCgkocnVuKTogUmVtb3ZlIFxuIGZyb20gaW5mb3JtIHN0cmluZ3MuCgkoc2Nhbl9kcmVjdHZlX3N5bWJvbHMpOiBMaWtld2lzZS4KCShhZGRfZXhjbHVkZXMpOiBMaWtld2lzZS4KCShzY2FuX29wZW5fb2JqX2ZpbGUpOiBMaWtld2lzZS4KCShnZW5fZXhwX2ZpbGUpOiBMaWtld2lzZS4KCShnZW5fbGliX2ZpbGUpOiBMaWtld2lzZS4KCShwcm9jZXNzX2R1cGxpY2F0ZXMpOiBMaWtld2lzZS4KCgkqIE1ha2VmaWxlLmFtIChkbGx3cmFwX1NPVVJDRVMpOiBBZGQgdmVyc2lvbi5jLgoJKiBkbGx3cmFwLmMgKHByb2dyYW1fdmVyc2lvbik6IERlbGV0ZS4KCShwcmludF92ZXJzaW9uKTogRGVsZXRlLgoJKGRpc3BsYXkpOiBBbHdheXMgcHJpbnQgdHJhaWxpbmcgXG4uCgkod2Fybik6IE5ldy4KCShkZWxldGVfdGVtcF9maWxlcyk6IFVzZSB3YXJuIGluc3RlYWQgb2YgZnByaW50Zi4gIFVzZSBnZXR0ZXh0LgoJKHJ1bik6IEhlcmUgdG9vLgoJKG1haW4pOiBBbmQgaGVyZS4KCSh1c2FnZSk6IGdldHRleHQnaWZ5LgoJKGxvbmdfb3B0aW9ucyk6IEFkZCBtaXNzaW5nIGluaXRpYWxpc2Vycy4KCgkqIG5sbWNvbnYuYyAobWFpbik6IFVzZSBmYXRhbC9ub25fZmF0YWwgaW5zdGVhZCBvZiBmcHJpbnRmLgoJKHNlbGVjdF9vdXRwdXRfZm9ybWF0KTogTGlrZXdpc2UuCgkocG93ZXJwY19tYW5nbGVfcmVsb2NzKTogTGlrZXdpc2UuCgkobGlua19pbnB1dHMpOiBMaWtld2lzZS4KCgkqIG5tLmMgKHNldF9wcmludF9yYWRpeCk6IFVzZSBmYXRhbCBpbnN0ZWFkIG9mIGZwcmludGYsIGV4aXQuCgkoc2V0X291dHB1dF9mb3JtYXQpOiBMaWtld2lzZS4KCShtYWluKTogVXNlIG5vbl9mYXRhbCBpbnN0ZWFkIG9mIGZwcmludGYuCgkoZGlzcGxheV9yZWxfZmlsZSk6IExpa2V3aXNlLgoKCSogb2JqZHVtcC5jIChzbHVycF9zeW10YWIpOiBVc2Ugbm9uX2ZhdGFsIGluc3RlYWQgb2YgZnByaW50Zi4KCShzbHVycF9keW5hbWljX3N5bXRhYik6IFNhbWUgaGVyZS4KCShkaXNhc3NlbWJsZV9kYXRhKTogQW5kIGhlcmUuCgkocmVhZF9zZWN0aW9uX3N0YWJzKTogQW5kIGhlcmUuCgkocmVhZF9zZWN0aW9uX3N0YWJzKTogQW5kIGhlcmUuCgkoZHVtcF9iZmQpOiBBbmQgaGVyZS4KCShtYWluKTogQW5kIGhlcmUuCgkob2JqZHVtcF9zcHJpbnRmKTogVXNlIGZhdGFsIGluc3RlYWQgb2YgZnByaW50ZiwgZXhpdC4KCShkaXNhc3NlbWJsZV9kYXRhKTogU2FtZSBoZXJlLgoKCSogcmRjb2ZmLmMgKHBhcnNlX2NvZmZfdHlwZSk6IFVzZSBub25fZmF0YWwgaW5zdGVhZCBvZiBmcHJpbnRmLgoJKHBhcnNlX2NvZmZfc3RydWN0X3R5cGUpOiBTYW1lIGhlcmUuCgkocGFyc2VfY29mZl9lbnVtX3R5cGUpOiBBbmQgaGVyZS4KCShwYXJzZV9jb2ZmKTogQW5kIGhlcmUuCgkqIHJkZGJnLmMgKHJlYWRfZGVidWdnaW5nX2luZm8pOiBBbmQgaGVyZS4KCSogc2l6ZS5jIChtYWluKTogQW5kIGhlcmUuCgkqIHdpbmRyZXMuYyAoZm9ybWF0X2Zyb21fbmFtZSk6IEFuZCBoZXJlLgoJKiB3cnN0YWJzLmMgKHN0YWJfd3JpdGVfc3ltYm9sKTogSGVyZSB0b28uCgkod3JpdGVfc3RhYnNfaW5fc2VjdGlvbnNfZGVidWdnaW5nX2luZm8pOiBBbmQgaGVyZS4KCShzdGFiX2ludF90eXBlKTogQW5kIGhlcmUuCgkoc3RhYl9zdHJ1Y3RfZmllbGQpOiBBbmQgaGVyZS4KCShzdGFiX3R5cGRlZik6IEFuZCBoZXJlLgoKCSogcmVzY29mZi5jIChyZWFkX2NvZmZfcnNyYyk6IFVzZSBmYXRhbCBpbnN0ZWFkIG9mIGZwcmludGYsIGV4aXQuCgkqIHNyY29udi5jIChtYWluKTogU2FtZSBoZXJlLgoJKiBzdHJpbmdzLmMgKG1haW4pOiBBbmQgaGVyZS4KCShpbnRlZ2VyX2FyZyk6IEFuZCBoZXJlLgoJKiBzeXNkdW1wLmMgKG1haW4pOiBBbmQgaGVyZS4KCjIwMDAtMDQtMDYgIFRpbW90aHkgV2FsbCAgPHR3YWxsQGN5Z251cy5jb20+CgoJKiBvYmpkdW1wLmMgKGR1bXBfc2VjdGlvbl9oZWFkZXIpOiBQcmludCBDTElOSyBhbmQgQkxPQ0sgZmxhZ3MuCgoyMDAwLTA0LTA2ICBKYXNvbiBNZXJyaWxsICA8amFzb25AeW9yaWNrLmN5Z251cy5jb20+CgoJKiByZWFkZWxmLmMgKGRlY29kZV9sb2NhdGlvbl9leHByZXNzaW9uKTogTG9vcCB0aHJvdWdoIG11bHRpcGxlCglvcGVyYXRpb25zLgoJKHJlYWRfYW5kX2Rpc3BsYXlfYXR0cik6IFBhc3MgaW4gbGVuZ3RoLgoKCSogcmVhZGVsZi5jIChyZWFkX2FuZF9kaXNwbGF5X2F0dHIpOiBBZGQgQ1Ugb2Zmc2V0IHRvIHJlZmVyZW5jZXMuCgkoZGlzcGxheV9kZWJ1Z19pbmZvKTogUGFzcyBpdCBpbi4KCjIwMDAtMDQtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiByZWFkZWxmLmMgKGRlY29kZV9BUk1fbWFjaGluZV9mbGFncyk6IE5ldyBmdW5jdGlvbi4KCShnZXRfbWFjaGluZV9mbGFncyk6IENhbGwgZGVjb2RlX0FSTV9tYWNoaW5lX2ZsYWdzIGZvciBBUk0KCXRhcmdldHMuCgoJKGdldF9tYWNoaW5lX25hbWUpOiBDYXRjaCBFTV9BVlIKCjIwMDAtMDQtMDUgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBiaW51dGlscy50ZXhpOiBSZW1vdmUgb3B0aW9uYWwgYD0nIGZyb20gbG9uZyBvcHRpb25zIHRoYXQgaGF2ZQoJYW4gYD0nIGluIHRoZSBhcmd1bWVudC4KCSogb2JqY29weS4xOiBIZXJlIHRvby4gIFJlbW92ZSBleHRyYSBzcGFjZSBvbiBkaXNjYXJkLWFsbC4KCgkqIGJpbnV0aWxzLnRleGkgKG9iamNvcHkpOiBNZW50aW9uIC0tcmVkZWZpbmUtc3ltLgoJKiBvYmpjb3B5LjE6IEhlcmUgdG9vLgoJKiBORVdTOiBBbmQgaGVyZS4KCgkqIG9iamNvcHkuYyAocGFyc2VfZmxhZ3MpOiBTcGxpdCBvZmYgZmxhZyBuYW1lcyBmcm9tIGVycm9yIG1lc3NhZ2UKCWdldHRleHQgYXMgdGhleSBhcmUgbm90IHRyYW5zbGF0ZWQuCgkoY29weV9tYWluKTogU2ltaWxhcmx5IHNwbGl0IG9mZiBvcHRpb24gbmFtZSBmb3IgLS1hZGQtc2VjdGlvbiwKCS0tc2V0LXNlY3Rpb24tZmxhZ3MsIC0tY2hhbmdlLXNlY3Rpb24tdm1hLCAtLWNoYW5nZS1zZWN0aW9uLWxtYQoJZXJyb3IgbWVzc2FnZXMuCglTb21lIHdoaXRlIHNwYWNlIGNoYW5nZXMuCgoJZnJvbSBNYXR0aGV3IEJlbmphbWluIDxtYXR0QGxpbnV4Ym94Lm51PgoJKiBvYmpjb3B5LmMgKHN0cnVjdCByZWRlZmluZV9ub2RlKTogTmV3LgoJKHJlZGVmaW5lX3N5bV9saXN0KTogTmV3LgoJKHJlZGVmaW5lX2xpc3RfYXBwZW5kKTogTmV3LgoJKGxvb2t1cF9zeW1fcmVkZWZpbml0aW9uKTogTmV3LgoJKE9QVElPTl9SRURFRklORV9TWU0pOiBOZXcuCgkoY29weV9vcHRpb25zKTogQWRkIC0tcmVkZWZpbmUtc3ltIG9wdGlvbi4KCShjb3B5X3VzYWdlKTogTWVudGlvbiBpdC4KCShmaWx0ZXJfc3ltYm9scyk6IFJlbmFtZSBzeW1ib2xzIG9uIHJlZGVmaW5lX3N5bV9saXN0LgoJKGNvcHlfb2JqZWN0KTogQ2FsbCBmaWx0ZXJfc3ltYm9scyBpZiByZWRlZmluZV9zeW1fbGlzdCAhPSBOVUxMLgoJKGNvcHlfbWFpbik6IEhhbmRsZSBPUFRJT05fUkVERUZJTkVfU1lNLgoKMjAwMC0wNC0wNCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX3N5bWJvbF90YWJsZSk6IENvcnJlY3RseSByZWFkIGluIHN5bWJvbAoJdmVyc2lvbmluZyBpbmZvcm1hdGlvbi4KCjIwMDAtMDQtMDQgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBwby9iaW51dGlscy5wb3Q6IFJlZ2VuZXJhdGUuCgoJKiBhZGRyMmxpbmUuYyAodXNhZ2UpOiBSZXN0b3JlIHRyYW5zbGF0ZWQgcGFydCBvZiBidWcgc3RyaW5nLgoJKiBhci5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiBubG1jb252LmMgKHNob3dfdXNhZ2UpOiBMaWtld2lzZS4KCSogbm0uYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogb2JqY29weS5jIChjb3B5X3VzYWdlKTogTGlrZXdpc2UuCgkoc3RyaXBfdXNhZ2UpOiBMaWtld2lzZS4KCSogb2JqZHVtcC5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiByZWFkZWxmLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIHNpemUuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogc3RyaW5ncy5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiB3aW5kcmVzLmMgKHVzYWdlKTogTGlrZXdpc2UuCgoJKiBNYWtlZmlsZS5hbSAoTUtERVApOiBVc2UgZ2NjIC1NTSByYXRoZXIgdGhhbiBta2RlcC4KCShERVApOiBRdW90ZSB3aGVuIHBhc3NpbmcgdmFycyB0byBzdWItbWFrZS4gIEFkZCB3YXJuaW5nCgltZXNzYWdlIHRvIGVuZC4KCShERVAxKTogUmV3cml0ZSBmb3IgImdjYyAtTU0iLgoJKENMRUFORklMRVMpOiBBZGQgREVQMi4KCVVwZGF0ZSBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wNC0wNCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogTWFrZWZpbGUuYW0gKEdFTkVSQVRFRF9IRklMRVMpOiBBZGQgcmNwYXJzZS5oCgkoYXJwYXJzZS5oKTogRGVwZW5kIG9uIGFycGFyc2UuYwoJKGRlZnBhcnNlLmgsIG5sbWhlYWRlci5oLCByY3BhcnNlLmgsIHN5c2luZm8uaCk6IFNpbWlsYXJseS4KCjIwMDAtMDQtMDMgIEguSi4gTHUgIChoamxAZ251Lm9yZykKCgkqIHNpemUuYyAodXNhZ2UpOiBVc2UgUkVQT1JUX0JVR1NfVE8uCgoyMDAwLTA0LTAzICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogYnVjb21tLmg6ICNpbmNsdWRlICJiaW4tYnVncy5oIgoJKiBhZGRyMmxpbmUuYyAodXNhZ2UpOiBVc2UgUkVQT1JUX0JVR1NfVE8uCgkqIGFyLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIG5sbWNvbnYuYyAoc2hvd191c2FnZSk6IExpa2V3aXNlLgoJKiBubS5jICh1c2FnZSk6IExpa2V3aXNlLgoJKE9QVElPTl9UQVJHRVQpOiBEZWZpbmUuCgkobG9uZ19vcHRpb25zKTogVXNlIE9QVElPTl9UQVJHRVQgcmF0aGVyIHRoYW4gMjAwLgoJKG1haW4pOiBMaWtld2lzZS4KCgkqIG9iamNvcHkuYyAoY29weV91c2FnZSk6IFVzZSBSRVBPUlRfQlVHU19UTy4KCShzdHJpcF91c2FnZSk6IExpa2V3aXNlLgoJKiBvYmpkdW1wLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIHJlYWRlbGYuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogc3RyaW5ncy5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiB3aW5kcmVzLmMgKHVzYWdlKTogTGlrZXdpc2UuCgoyMDAwLTAzLTMxICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmVAaGlhdWx5MS5oaWEubnJjLmNhPgoKCSogcmVhZGVsZi5jOiBJbmNsdWRlIHN5cy90eXBlcy5oIGJlZm9yZSBzeXMvc3RhdC5oIGZvciB1bHRyaXguCgoyMDAwLTAzLTI3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogcmRkYmcuYyAocmVhZF9zZWN0aW9uX3N0YWJzX2RlYnVnZ2luZ19pbmZvKTogQ2F0Y2ggb3V0IG9mIHJhbmdlCglzdHJpbmcgb2Zmc2V0cyBpbiBjb3JydXB0IHN0YWJzIGVudHJpZXMuCgoyMDAwLTAzLTI3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogcmVhZGVsZi5jOiBJbmNsdWRlIGVsZi9hdnIuaAoJKGR1bXBfcmVsb2NhdGlvbnMpOiBBZGQgRU1fQVZSIGNhc2UuCgoyMDAwLTAzLTA5ICBUaW0gV2F1Z2ggIDx0d2F1Z2hAcmVkaGF0LmNvbT4KCgkqIHN0cmluZ3MuMTogQ29ycmVjdCAnLWJ5dGVzJyB0byAnLS1ieXRlcycuCgoyMDAwLTAzLTA4ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBNYWtlZmlsZS5hbSAoaW5zdGFsbC1leGVjLWxvY2FsKTogRGVwZW5kIG9uCglpbnN0YWxsLWJpblBST0dSQU1TIGZvciBwYXJhbGxlbCBtYWtlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgoyMDAwLTAyLTI3ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQHplbWJ1LmNvbT4KCglGcm9tIEJyYWQgTHVjaWVyIDxsdWNpZXJAbWF0aC5wdXJkdWUuZWR1PjoKCSogcmVhZGVsZi5jIChwcm9jZXNzX2R5bmFtaWNfc2VnbWVudCk6IEFkZCBjYXN0IHRvIG1ha2Ugc3VyZQoJYXJndW1lbnQgdG8gJSogaXMgaW50LgoKMjAwMC0wMi0yNSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogY29uZmlndXJlLmluIChBQ19TRUFSQ0hfTElCUyk6IFBhc3MgbSwgbm90IC1sbS4KCjIwMDAtMDItMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW46IEFkZCBhcm0td2luY2UsIG1pcHMtcGUgYW5kIHNoLXBlIHRhcmdldHMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCgkqIGRsbHRvb2wuYzogQWRkIHN1cHBvcnQgZm9yIHNoLXBlIGFuZCBtaXBzLXBlIHRhcmdldHMuCgkqIHJlc2NvZmYuYzogQWRkIHN1cHBvcnQgZm9yIHNoLXBlIGFuZCBtaXBzLXBlIHRhcmdldHMuCgoyMDAwLTAyLTIzICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiByZWFkZWxmLmMgKGdldF9vc2FiaV9uYW1lKTogSGFuZGxlIEVMRk9TQUJJX0xJTlVYLgoKMjAwMC0wMi0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc19zeW1ib2xfdGFibGUpOiBSZW1vdmUgdXNlIG9mIEVMRl9TVF9PVEhFUi4KCjIwMDAtMDItMjIgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AemVtYnUuY29tPgoKCUZyb20gQnJhZCBMdWNpZXIgPGx1Y2llckBtYXRoLnB1cmR1ZS5lZHU+OgoJKiByZWFkZWxmLmMgKHByb2Nlc3NfdmVyc2lvbl9zZWN0aW9ucyk6IEFkZCBjYXN0cyB0byBtYWtlIHN1cmUKCWFyZ3VtZW50IHRvICUqIGlzIGFuIGludC4KCShwcm9jZXNzX21pcHNfc3BlY2lmaWMpOiBBZGQgY2FzdHMgdG8gbWFrZSBwcmludGYgYXJndW1lbnRzIG1hdGNoCglmb3JtYXQuCgoyMDAwLTAyLTIxICBBbGFuIE1vZHJhICA8YWxhbkBzcHJpLmxldmVscy51bmlzYS5lZHUuYXU+CgoJKiBvYmpkdW1wLmMgKGR1bXBfc2VjdGlvbl9oZWFkZXIpOiBDaGFuZ2UgYG9wYicgdG8gdW5zaWduZWQuCgkoZmluZF9zeW1ib2xfZm9yX2FkZHJlc3MpOiBTYW1lIGhlcmUuCgkoZGlzYXNzZW1ibGVfZGF0YSk6IEFuZCBoZXJlLiAgQ2hhbmdlIGBhZGRyX29mZnNldCcsCglgc3RvcF9vZmZzZXQnLCBgbmV4dHN0b3Bfb2Zmc2V0JyB0byB1bnNpZ25lZCBsb25nLgoJKGR1bXBfZGF0YSk6IENoYW5nZSBvcGIgdG8gdW5zaWduZWQuCgoyMDAwLTAyLTE4ICBGcmFuayBDaC4gRWlnbGVyICA8ZmNoZUByZWRoYXQuY29tPgoKCSogcmVzcmMuYzogUmVtb3ZlIHVubWF0Y2hlZCAjaWYgZm9yIGN5Z3dpbi4KCjIwMDAtMDItMTQgIEZlcm5hbmRvIE5hc3NlciAgPGZuYXNzZXJAdG90ZW0udG8uY3lnbnVzLmNvbT4KCgkqIGJpbnV0aWxzLnRleGk6IERvY3VtZW50IHRoZSBjaGFuZ2Ugb2YgZmxhdm9yIG5hbWUgZnJvbSBhdHBjcy1zcGVjaWFsCgl0byBzcGVjaWFsLWF0cGNzIHRvIHByZXZlbnQgbmFtZSBjb25mbGljdCBpbiBnZGIuCgoyMDAwLTAyLTA4ICBUaW1vdGh5IFdhbGwgIDx0d2FsbEByZWRoYXQuY29tPgoKCSogb2JqZHVtcC5jIChzaG93X2xpbmUpOiBGaXggYnVnIHByZXZlbnRpbmcgcHJpbnRpbmcgb2YgdGhlIHZlcnkKCWZpcnN0IGxpbmUgKGxpbmUgemVybykgb2YgYSBmaWxlIHdoZW4gaW50ZXJsaXN0aW5nIHNvdXJjZSBhbmQKCWFzc2VtYmx5LiAgQWRkZWQgb3B0aW9uIHRvIHByaW50IGVudGlyZSBjb250ZXh0IGZyb20gc3RhcnQgb2YgZmlsZQoJd2hlbiB0aGUgZmlyc3QgbGluZSBmcm9tIHRoYXQgZmlsZSBpcyBlbmNvdW50ZXJlZC4KCjIwMDAtMDItMDMgIFRpbW90aHkgV2FsbCA8dHdhbGxAcmVkaGF0LmNvbT4KCgkqIG9iamR1bXAuYyAoZHVtcF9zZWN0aW9uX2hlYWRlciwgZmluZF9zeW1ib2xfZm9yX2FkZHJlc3MsCglzaG93X2xpbmUsIGRpc2Fzc2VtYmxlX2J5dGVzLCBkaXNhc3NlbWJsZV9kYXRhLCBkdW1wX2RhdGEpOgoJZGlzdGluZ3Vpc2ggYmV0d2VlbiBvY3RldHMgYW5kIGJ5dGVzLgoKMjAwMC0wMS0yNyAgVGhvbWFzIGRlIExlbGxpcyAgPHRkZWxAd2luZHJpdmVyLmNvbT4KCgkqIG5tLmMgKHByaW50X3N5bWJvbF9pbmZvX2JzZCk6IFVzZSBiZmRfaXNfdW5kZWZpbmVkX3N5bWNsYXNzIHRvCgljaGVjayB0byB1bnJlc29sdmVkIHN5bWJvbHMuCgkocHJpbnRfc3ltYm9sX2luZm9fc3lzdik6ICBEaXR0by4KCShwcmludF9zeW1ib2xfaW5mb19wb3NpeCk6ICBEaXR0by4KCgkqIGJpbnV0aWxzLnRleGk6IERvY3VtZW50IG5ldyAnVicgc3ltY2xhc3MgZmxhZyBmb3Igbm0uCgoyMDAwLTAxLTI3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogYmludXRpbHMudGV4aSAob2JqZHVtcCk6IERvY3VtZW50IG5ldyBBUk0gc3BlY2lmaWMKCWRpc2Fzc2VtYmxlciBvcHRpb25zLgoKCSogb2JqZHVtcC5jICh1c2FnZSk6IENhbGwgZGlzYXNzZW1ibGVyX3VzYWdlKCkuCgoyMDAwLTAxLTI3ICBBbGFuIE1vZHJhICA8YWxhbkBzcHJpLmxldmVscy51bmlzYS5lZHUuYXU+CgoJKiByZWFkZWxmLmMgKGdldF9keW5hbWljX2ZsYWdzKTogUmV0dXJuIGJ1ZmYuCgkocHJvY2Vzc19keW5hbWljX3NlZ21lbnQpOiBEb24ndCBwYXNzIGVycm9yIHN0cmluZ3MgdG8gcHJpbnRmCglhcyBmb3JtYXQgYXJnLgoJKHJlYWRfYW5kX2Rpc3BsYXlfYXR0cik6IFVzZSBseCBhbmQgbGQgdG8gcHJpbnQgbG9uZ3MuCgkocHJvY2Vzc19jb3JlZmlsZV9ub3RlX3NlZ21lbnQpOiBDYXN0IGJmZF92bWEgdG8gdW5zaWduZWQgbG9uZwoJYmVmb3JlIHByaW50aW5nLgoJVXBkYXRlIGNvcHlyaWdodC4KCjIwMDAtMDEtMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9vc2FiaV9uYW1lKTogUmVjb2duaXNlIEVMRk9TQUJJX0FSTS4KCjIwMDAtMDEtMTUgIEFsYW4gTW9kcmEgIDxhbGFuQHNwcmkubGV2ZWxzLnVuaXNhLmVkdS5hdT4KCgkqIGRlYnVnLmMgKGRlYnVnX25hbWVfdHlwZSk6IFJldHVybiBERUJVR19UWVBFX05VTEwgcmF0aGVyIHRoYW4KCWZhbHNlLgoJKGRlYnVnX3RhZ190eXBlKTogSGVyZSB0b28uCgkqIGllZWUuYyAoaWVlZV9idWlsdGluX3R5cGUpOiBBbmQgaGVyZS4KCSogc3RhYnMuYyAocGFyc2Vfc3RhYl90eXBlLCBwYXJzZV9zdGFiX2FycmF5X3R5cGUpOiBBbmQgaGVyZS4KCjIwMDAtMDEtMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9tYWNoaW5lX25hbWUpOiBDaGFuZ2UgRU1fUzM3MCB0byByZXR1cm4gIklCTQoJU3lzdGVtLzM3MCIuCgoyMDAwLTAxLTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogcmVhZGVsZi5jIChnZXRfZHluYW1pY190eXBlKTogUmVtb3ZlIERUX0VOQ09ESU5HLgoKMjAwMC0wMS0xMCAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIHJlYWRlbGYuYyAoZ2V0X25vdGVfdHlwZSk6IERpc3BsYXkgTlRfV0lOMzJQU1RBVFVTIG5vdGVzLgoKMjAwMC0wMS0wNyAgTXVtaXQgS2hhbiAgPGtoYW5AeHJheWxpdGgud2lzYy5lZHU+CgoJKiB3aW5kcmVzLmMgKGxvbmdfb3B0aW9ucyk6IEFkZCAtLXVzZS10ZW1wLWZpbGUgYW5kCgktLW5vLXVzZS10ZW1wLWZpbGUgb3B0aW9ucy4KCSh1c2FnZSk6IERvY3VtZW50LgoJKG1haW4pOiBIYW5kbGUuCgoJKiB3aW5kcmVzLmg6IFVwZGF0ZSByZWFkX3JjX2ZpbGUgcHJvdG90eXBlLgoKCSogcmVzcmMuYyAoY3BwX3RlbXBfZmlsZSk6IE5ldyBzdGF0aWMgdmFyaWFibGUuCgkoaXN0cmVhbV90eXBlKTogTmV3IHN0YXRpYyB2YXJpYWJsZS4KCShjbG9zZV9waXBlKTogRGVsZXRlIGZ1bmN0aW9uLgoJKHJ1bl9jbWQpOiBOZXcgc3RhdGljIGZ1bmN0aW9uLgoJKG9wZW5faW5wdXRfc3RyZWFtKTogTmV3IHN0YXRpYyBmdW5jdGlvbi4KCShjbG9zZV9pbnB1dF9zdHJlYW0pOiBOZXcgc3RhdGljIGZ1bmN0aW9uLgoJKGxvb2tfZm9yX2RlZmF1bHQpOiBIYW5kbGUgRE9TIGRpcmVjdG9yeSBzZXBhcmF0b3IuIFVzZQoJb3Blbl9pbnB1dF9zdHJlYW0gaW5zdGVhZCBvZiBwb3Blbi4KCShyZWFkX3JjX2ZpbGUpOiBMaWtld2lzZS4KCgkqIGJpbnV0aWxzLnRleGk6IERvY3VtZW50IC0tdXNlLXRlbXAtZmlsZSwgLS1uby11c2UtdGVtcC1maWxlCglvcHRpb25zLgoKMjAwMC0wMS0wNCAgTXVtaXQgS2hhbiAgPGtoYW5AeHJheWxpdGgud2lzYy5lZHU+CgoJKiBkbGx0b29sLmMgKGNyZWF0ZV9jb21wYXRfaW1wbGliKTogTmV3IHZhcmlhYmxlLgoJKGdlbl9leHBfZmlsZSk6IFVzZS4KCShtYWtlX29uZV9saWJfZmlsZSk6IFVzZS4KCShsb25nX29wdGlvbnMpOiBBZGQgLS1jb21wYXQtaW1wbGliIG9wdGlvbi4KCSh1c2FnZSk6IEhhbmRsZS4KCShtYWluKTogSGFuZGxlLgoKCSogZGxsd3JhcC5jIChlbnVtIHRhcmdldF90eXBlKTogUmVuYW1lIE1JTkdXMzJfVEFSR0VUIHRvIE1JTkdXX1RBUkdFVC4KCShtYWluKTogVXNlLiBEb24ndCBsb29rIGZvciAiMzIiIGluIGN5Z3dpbiBhbmQgbWluZ3cgdGFyZ2V0IG5hbWVzLgoKMjAwMC0wMS0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGJpbnV0aWxzLnRleGk6IERvY3VtZW50IG5ldywgQVJNIHNwZWNpZmljIGRpc2Fzc2VtYmxlcgoJY29tbWFuZCBsaW5lIHN3aXRjaCAiLU0gZm9yY2UtdGh1bWIiLgoKRm9yIG9sZGVyIGNoYW5nZXMgc2VlIENoYW5nZUxvZy05ODk5CgwKQ29weXJpZ2h0IChDKSAyMDAwLTIwMDEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCgpDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBmaWxlLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAphcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLgoKTG9jYWwgVmFyaWFibGVzOgptb2RlOiBjaGFuZ2UtbG9nCmxlZnQtbWFyZ2luOiA4CmZpbGwtY29sdW1uOiA3NAp2ZXJzaW9uLWNvbnRyb2w6IG5ldmVyCkVuZDoK