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+CgoJKiBvYmpjb3B5LmMgKHN0cmlwX21haW4pOiBSZXZlcnQgdGhlIGNoYW5nZSBtYWRlIG9uIDIwMDEtMDUtMzAKCWJ5IGFjY2lkZW50LgoJKGNvcHlfbWFpbik6IEFwcGx5IHRoZSB0aGUgY2hhbmdlIG1hZGUgdG8gc3RyaXBfbWFpbiBvbgoJMjAwMS0wNS0zMCBieSBhY2NpZGVudC4KCjIwMDEtMDYtMjMgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIHVud2luZC1pYTY0LmMgKHVud19kZWNvZGVfeDEpOiBBZGQgdW51c2VkIGF0dHJpYnV0ZSBmb3IKCXBhcmFtZXRlciAnY29kZScuCgkodW53X2RlY29kZV94Mik6IExpa2V3aXNlLgoJKHVud19kZWNvZGVfeDMpOiBMaWtld2lzZS4KCSh1bndfZGVjb2RlX3g0KTogTGlrZXdpc2UuCgoyMDAxLTA2LTIzICBCZW4gRWxsaXN0b24gIDxiamVAcmVkaGF0LmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgbXlzZWxmIGFzIE04OGsgbWFpbnRhaW5lci4KCjIwMDEtMDYtMjIgIEpvY2VseW4gTWF5ZXIgIDxqb2NlbHluLm1heWVyQG5ldGdlbS5jb20+CgoJKiBvYmpjb3B5LmMgKHN0cmlwX21haW4pOiBTdXBwb3J0IC1vIG9yIC0tb3V0cHV0LWZpbGUgY29tbWFuZCBsaWVuCglzd2l0Y2guCgoyMDAxLTA2LTE5ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgoyMDAxLTA2LTE5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYzogUmVzdG9yZSBmb3JtYXR0aW5nLgoKMjAwMS0wNi0xOCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+ICYgTmljayBDbGlmdG9uIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuYW06IE1vdmUgZG9jdW1lbnRhdGlvbiBpbnRvIGRvYyBzdWJkaXJlY3RvcnkuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCSogYmludXRpbHMudGV4aTogTW92ZSBpbnRvIGRvYyBzdWJkaXJlY3RvcnkuCgkqIGFkZHIybGluZS4xOiBSZW1vdmVkLgoJKiBhci4xOiBMaWtld2lzZS4KCSogZGxsdG9vbC4xOiBMaWtld2lzZS4KCSogbmxtY29udi4xOiBMaWtld2lzZS4KCSogbm0uMTogTGlrZXdpc2UuCgkqIG9iamNvcHkuMTogTGlrZXdpc2UuCgkqIG9iamR1bXAuMTogTGlrZXdpc2UuCgkqIHJhbmxpYi4xOiBMaWtld2lzZS4KCSogcmVhZGVsZi4xOiBMaWtld2lzZS4KCSogc2l6ZS4xOiBMaWtld2lzZS4KCSogc3RyaW5ncy4xOiBMaWtld2lzZS4KCSogc3RyaXAuMTogTGlrZXdpc2UuCgkqIHdpbmRyZXMuMTogTGlrZXdpc2UuCgkqIGN4eGZpbHQubWFuOiBMaWtld2lzZS4KCSogZG9jOiBOZXcgRGlyZWN0b3J5LgoJKiBkb2MvTWFrZWZpbGUuYW06IE5ldyBmaWxlLgoJKiBkb2MvTWFrZWZpbGUuaW46IEdlbmVyYXRlLgoKMjAwMS0wNi0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE5FV1M6IEZpeCBhIHR5cG8uICBNZW50aW9uIGhwcGE2NC1lbGYuICBBZGQgYmludXRpbHMtMi4xMSBtYXJrZXIuCgoyMDAxLTA2LTAxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogTUFJTlRBSU5FUlM6IFVwZGF0ZSBteSBlbWFpbCBhZGRyZXNzLgoKMjAwMS0wNS0zMCAgSG9uZGEgSGlyb2tpICA8aGhvbmRhQGtvYmUtY2F0di5uZS5qcD4KCgkqIG9iamNvcHkuYzogQWRkIG5ldyBzd2l0Y2hlczogLS1rZWVwLWdsb2JhbC1zeW1ib2wsCgktLWtlZXAtc3ltYm9scywgLS1sb2NhbGl6ZS1zeW1ib2xzLCAtLWtlZXAtZ2xvYmFsLXN5bWJvbHMgYW5kCgktLXdlYWtlbi1zeW1ib2xzLgoJKiBiaW51dGlscy50ZXhpOiBEb2N1bWVudCBuZXcgc3dpdGNoZXMuCgkqIG9iamNvcHkuMTogUmVnZW5lcmF0ZS4KCSogTkVXUzogQW5ub3VuY2UgbmV3IGZlYXR1cmUuCgoyMDAxLTA1LTI4ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiByZWFkZWxmLmMgKGRpc3BsYXlfZGVidWdfZnJhbWVzKTogRml4IHdhcm5pbmdzOiBSZW1vdmUgdW51c2VkCgl2YXJpYWJsZXMsIGZpeCBmb3JtYXQgc3RyaW5ncy4KCjIwMDEtMDUtMjggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogb2JqZHVtcC5jIChkaXNhc3NlbWJsZV9ieXRlcyk6IFJlbW92ZSBzZWN0aW9uIFZNQSBhZGp1c3RtZW50Cgl3aGVuIGNvbXB1dGluZyB0aGUgYWRkcmVzcyBvZiB0aGUgbGluZSB0byBzaG93LgoKMjAwMS0wNS0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZG9fZGVidWdfZnJhbWVzX2ludGVycCk6IE5ldy4KCShieXRlX2dldF9saXR0bGVfZW5kaWFuKTogSWYgQkZENjQsIGFsd2F5cyByZWFkIGVudGlyZSA4LWJ5dGUgZmllbGRzLgoJKGJ5dGVfZ2V0X2JpZ19lbmRpYW4pOiBMaWtld2lzZS4KCShwYXJzZV9hcmdzKSBbJ0YnXTogU2V0IGRvX2RlYnVnX2ZyYW1lc19pbnRlcnAuCgkoRnJhbWVfQ2h1bmspOiBNYWtlIGRhdGFfZmFjdG9yIHNpZ25lZCwgYWRkIGZkZV9lbmNvZGluZy4KCShmcmFtZV9kaXNwbGF5X3Jvdyk6IERvbid0IHRydW5jIHBjX2JlZ2luIHRvIGludC4KCShzaXplX29mX2VuY29kZWRfdmFsdWUpOiBOZXcuCgkoZGlzcGxheV9kZWJ1Z19mcmFtZXMpOiBIYW5kbGUgNjQtYml0IHRhcmdldHMuICBQcmludCByYXcgZGF0YQoJdW5sZXNzIGRvX2RlYnVnX2ZyYW1lc19pbnRlcnAuCgkoZGVidWdfZGlzcGxheXMpOiBSZW1vdmUgZHVwbGljYXRlIC5kZWJ1Z19mcmFtZS4KCjIwMDEtMDUtMTUgIFJhbGYgQmFlY2hsZSAgPHJhbGZAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYzogUmVwbGFjZSB1c2VzIG9mIEVNX01JUFNfUlM0X0JFIHdpdGggRU1fTUlQU19SUzNfTEUuCglUaGUgZm9ybWVyIGNvbnN0YW50IHdhcyBuZXZlciBpbiBhY3RpdmUgdXNlIGFuZCBpcyB1c2VkIG90aGVyd2lzZQoJYnkgdGhlIEFCSS4KCjIwMDEtMDUtMTEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX3Vud2luZCk6IFByaW50IGFsbCB1bndpbmQgc2VjdGlvbnMsIG5vdCBqdXN0CglvbmUuCgoyMDAxLTA1LTA3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX3Vud2luZCk6IFJlbW92ZSBjb25zdCBzcGVjaWZpZXIuCgoyMDAxLTA0LTI3ICBNaWNoYWwgU3ZlYyA8cmViZWxAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoKCSogc3RyaW5ncy5jIChpc2dyYXBoaWMpOiBEbyBub3QgdXNlIGlzYXNjaWkoKSB1bmxlc3MgaXQgaXMgbmVlZGVkCglmb3IgaXNwcmludCgpIHRvIHdvcmsuCgkobWFpbik6IFNldCB0aGUgbG9jYWxlIGRvbWFpbiB0byBMQ19BTEwgbm90IGp1c3QgTENfTUVTU0FHRVMuCgoyMDAxLTA0LTI3ICBKb2hhbiBSeWRiZXJnICA8anJ5ZGJlcmdAb3BlbmNvcmVzLm9yZz4KCgkqIE5FV1M6IEFubm91bmNlIHN1cHBvcnQgZm9yIE9wZW5SSVNDLgoKMjAwMS0wNC0xNyAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRsbHRvb2wuYyAoZG9fZGVmYXVsdF9leGNsdWRlcyk6IEluaXRpYWxpc2UgdG8gdHJ1ZS4KCjIwMDEtMDQtMTAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAb25lLm5ldC5hdT4KCgkqIE1BSU5UQUlORVJTOiBVcGRhdGUgbXkgZW1haWwgYWRkcmVzcwoJKiBubS5jIChwcmludF9zeW1ib2xfaW5mb19ic2QpOiBVc2UgYSBzaW1wbGUgcHJpbnRmIHN0cmluZy4KCjIwMDEtMDQtMDUgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogcmVhZGVsZi5jIChkaXNwbGF5X2RlYnVnX2xpbmVzKTogRml4IHR5cG8gZm9yICJQcm9sb2d1ZSIuCgoyMDAxLTAzLTMwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3NfdW53aW5kKTogSnVzdCByZXR1cm4gaWYgZG9fdW53aW5kIGlzIDAuCgoyMDAxLTAzLTI4ICBSb2dlciBTYXlsZSAgPHJvZ2VyQG1ldGFwaG9yaWNzLmNvbT4KCgkqIGRsbHRvb2wuYyAobWFrZV9vbmVfbGliX2ZpbGUpOiBGaXggc2VjdGlvbiBmbGFncyBmb3IKCS50ZXh0LCAuZGF0YSBhbmQgLmJzcyBpbiBzdHViIGRzKi5vIGZpbGVzIHRvIG1hdGNoIHRob3NlCglnZW5lcmF0ZWQgYnkgZ2FzLgoKMjAwMS0wMy0yOSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX3Vud2luZCk6IE9ubHkgZG8gdW53aW5kIHNlY3Rpb25zIGZvcgoJSUE2NC4KCjIwMDEtMDMtMjggIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtICgkKHNyY2RpcikvZGxsdG9vbC4xKTogUmVtb3ZlIHRoZSBleHRyYSB0YXJnZXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMS0wMy0yNiAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogYmludXRpbHMudGV4aSAobm0pOiBGaXggdGV4aSBzeW50YXguCgoyMDAxLTAzLTI1ICBTdGVwaGFuZSBDYXJyZXogIDxTdGVwaGFuZS5DYXJyZXpAd29ybGRuZXQuZnI+CgoJKiBiaW51dGlscy50ZXhpOiBQdXQgQGMgbWFuIGJlZ2luIGFuZCBAYyBtYW4gZW5kIGluZGljYXRpb25zCgl0byBnZW5lcmF0ZSBtYW4gcGFnZXMgdXNpbmcgdGV4aTJwb2QgYW5kIHBvZDJtYW4uIFB1dCBAYyBtYW4gdGl0bGUKCXRvIGlkZW50aWZ5IGVhY2ggbWFuLiBBZGQgU0VFQUxTTyBlbnRyaWVzLgoJKiBNYWtlZmlsZS5hbSAoTUFOQ09ORiwgVEVYSTJQT0QsIFBPRDJNQU4pOiBOZXcgdmFyaWFibGUuCgkobWFuX01BTlMpOiBBZGQgZGxsdG9vbC4xLCBubG1jb252LjEsIHJlYWRlbGYuMSwgd2luZHJlcy4xLAoJc29ydCB0aGUgbGlzdC4KCSgqLjEpOiBCdWlsZCB0aGUgbWFuIHBhZ2VzIGZyb20gYmludXRpbHMudGV4aS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAxLTAzLTEzICBFcmljIEtvaGwgIDxla29obEByei1vbmxpbmUuZGU+CgoJKiBkZWZwYXJzZS55IChvcHRfZXF1YWxfbmFtZSk6IGFsbG93ICIuIiBpbiBuYW1lLgoJKiBkbGx0b29sLmMgKGRlZl9leHBvcnRzKTogQWRkZWQgYWJpbGl0eSB0byBnZW5lcmF0ZSBmb3J3YXJkZWQgZXhwb3J0cy4KCShnZW5fZXhwX2ZpbGUpOiBMaWtld2lzZS4KCjIwMDEtMDMtMTIgIFN0ZWZhbiBHZXVrZW4gPG1haWxAc3RlZmFuLWdldWtlbi5kZT4KCgkqIE5FV1M6IERvY3VtZW50IGFkZGl0aW9uIG9mIC1CIHN3aXRjaCB0byBvYmpjb3B5LgoJKiBiaW51dGlscy50ZXhpOiAgRG9jdW1lbnQgYWRkaXRpb24gb2YgLUIgc3dpdGNoIHRvIG9iamNvcHkuCgkqIG9iamNvcHkuYzogKGNvcHlfb3B0aW9ucyk6IEFkZCAtLWJpbmFyeS1hcmNoaXRlY3R1cmUuCgkoY29weV91c2FnZSk6IERvY3VtZW50IC1CLy0tYmluYXJ5LWFyY2hpdGVjdHVyZS4KCShjb3B5X21haW4pOiBTdXBwb3J0IC1CLy0tYmluYXJ5LWFyY2hpdGVjdHVyZS4gIFNldAoJYmZkX2V4dGVybmFsX2JpbmFyeV9hcmNoaXRlY3R1cmUuCgoyMDAxLTAzLTExICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiByZWFkZWxmLmMgKGd1ZXNzX2lzX3JlbGEpOiBIYW5kbGUgRU1fUzM5MF9PTEQuCgkoZHVtcF9yZWxvY2F0aW9ucyk6IExpa2V3aXNlLgoJKGdldF9tYWNoaW5lX25hbWUpOiBMaWtld2lzZS4KCjIwMDEtMDItMjggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmM6IChzdHJ1Y3QgdW53X2F1eF9pbmZvKTogUmVtb3ZlIGNvbnN0IG1vZGlmaWVyIGZvcgoJJ3N0cnRhYicgZmllbGQuCgkocHJvY2Vzc191bndpbmQpOiBSZW1vdmUgbm9uLUsmUiBjb21wbGlhbnQgTEhTIHR5cGUgY2FzdCBpbiBjYWxsCgl0byBHRVRfREFUQV9BTExPQyBtYWNyby4KCjIwMDEtMDItMjggIFBoaWxpcCBCbHVuZGVsbCAgPHBiQGZ1dHVyZXR2LmNvbT4KCgkqIHJlYWRlbGYuYyAoZGVjb2RlX0FSTV9tYWNoaW5lX2ZsYWdzKTogRXhwbGljaXRseSBtZW50aW9uIHdoaWNoCglBQkkgaXMgaW4gdXNlOyByZW1vdmUgYW1iaWd1aXR5IGJldHdlZW4gdGhlICJ1bmtub3duIiBFQUJJIGFuZAoJdW5yZWNvZ25pc2VkIEFCSXMuICBIYW5kbGUgdmVyc2lvbiAyIEFSTSBFQUJJLiAgVXBkYXRlIHVzZXMgb2YKCXJlbmFtZWQgRUZfeHggY29uc3RhbnRzLgoKMjAwMS0wMi0yNyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGNvbmZpZ3VyZS5pbiAoQkZEX1ZFUlNJT04pOiBOZXcuCgkoQU1fSU5JVF9BVVRPTUFLRSk6IFVzZSAkQkZEX1ZFUlNJT04uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuYW06IFJ1biAibWFrZSBkZXAtYW0iCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMS0wMi0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgIk9idmlvdXMgRml4IiBydWxlLgoKMjAwMS0wMi0xMSAgTWljaGFlbCBTb2tvbG92ICA8bXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHPgoKCSogdW53aW5kLWlhNjQuYzogRG9uJ3QgdXNlIEFOU0kgQyBwcmVwcm9jZXNzb3Igc3RyaW5naXNhdGlvbiBhbmQgc3RyaW5nCglsaXRlcmFsIGNvbmNhdGVuYXRpb24uCgoyMDAxLTAyLTExICBNaWNoYWVsIFNva29sb3YgIDxtc29rb2xvdkBpdmFuLkhhcmhhbi5PUkc+CgoJKiByZWFkZWxmLmMgKHN0cnVjdCB1bndfYXV4X2luZm8pOiBSZW1vdmUgY29uc3QgZnJvbSB0aGUgaW5mbyBtZW1iZXIuCgkocHJvY2Vzc191bndpbmQpOiBEb24ndCB0eXBlLWNhc3QgdGhlIHRoaXJkIGFyZ3VtZW50IHRvIHRoZQoJR0VUX0RBVEFfQUxMT0MgbWFjcm8uCgoyMDAxLTAyLTExICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkdW1wX3JlbG9jYXRpb25zKTogRnJlZSBjb3JyZWN0ZWQgYWxsb2NhdGVkCglhcnJheS4KCShwcm9jZXNzX3Vud2luZCk6IEZpeCBjb21waWxlIHRpbWUgd2FybmluZy4KCjIwMDEtMDItMTAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBiaW51dGlscy50ZXhpOiBEb2N1bWVudCBuZXcgLS11bndpbmQgb3B0aW9uIHRvIHJlYWRlbGYuCgoyMDAxLTAyLTA5ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogcmVhZGVsZi5jOiBBZGQgbGludXggdGFyZ2V0IGZvciBTLzM5MC4KCjIwMDEtMDItMTAgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBubS5jIChwcmludF9zeW1ib2xfaW5mb19ic2QpOiBEb24ndCAjaWZkZWYgaW5zaWRlIHByaW50ZiBpbiBjYXNlCglwcmludGYgaXMgYSBtYWNyby4KCjIwMDEtMDItMDggIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGFjaW5jbHVkZS5tNCAoQU1fUFJPR19MRVgpOiBPdmVycmlkZSBpbnN0YWxsZWQgZGVmaW5pdGlvbi4KCSogYWNsb2NhbC5tNDogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMS0wMi0wNyAgVG9kZCBWaWVybGluZyAgPHR2QHdhc2FiaXN5c3RlbXMuY29tPgoKCSogYnVjb21tLmMgKGJmZF90YXJnZXRfdmVjdG9yKTogQ2hhbmdlIGV4dGVybiBhcnJheSB0byBwb2ludGVyLgoJKiBvYmpkdW1wLmMgKGJmZF90YXJnZXRfdmVjdG9yKTogTGlrZXdpc2UuCgoyMDAxLTAyLTA3ICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc191bndpbmQpOiBOZXcgZnVuY3Rpb24uCgkoc2x1cnBfaWE2NF91bndpbmRfdGFibGUpOiBEaXR0by4KCShkdW1wX2lhNjRfdW53aW5kKTogRGl0dG8uCgkoZmluZF9zeW1ib2xfZm9yX2FkZHJlc3MpOiBEaXR0by4KCShzbHVycF9yZWxhX3JlbG9jcyk6IE5ldyBmdW5jdGlvbiAoc3BsaXQgb2ZmIGZyb20gZHVtcF9yZWxvY2F0aW9ucygpKS4KCShzbHVycF9yZWxfcmVsb2NzKTogRGl0dG8uCgkocGFyc2VfYXJncyk6IEhhbmRsZSAnLXUnIG9wdGlvbi4KCgkqIHVud2luZC1pYTY0LmM6IE5ldyBmaWxlLgoJKiB1bndpbmQtaWE2NC5oOiBOZXcgZmlsZS4KCSogTWFrZWZpbGUuYW06IEluY2x1ZGUgdW53aW5kLWlhNjQuYyBpbiByZWFkZWxmIGJ1aWxkLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vYmludXRpbHMucG90OiBSZWdlbmVyYXRlLgoKMjAwMS0wMi0wNCAgUGhpbGlwIEJsdW5kZWxsICA8cGhpbGJAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS5pbiAoT0JKRFVNUF9ERUZTKTogTWF0Y2ggYGFybSotKicsIG5vdCBqdXN0IGBhcm0tKicuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDEtMDEtMzEgIFN0ZXZlIGRlUm9zaWVyICA8c2Rlcm9zaWVyQHZhcmktbGl0ZS5jb20+CgoJKiBpZWVlLmMgKGllZWVfYWRkX2JiMTEpOiBEb24ndCBjaGVjayBmb3IgYmFja3NsYXNoZXMKCXVubGVzcyBIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTSBpcyBkZWZpbmVkLgoKMjAwMS0wMS0yNCAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0BiaWdmb290LmNvbT4KCgkqIGllZWUuYzogVXBkYXRlIGNvcHlyaWdodC4KCShpZWVlX3N0YXJ0X2NvbXBpbGF0aW9uX3VuaXQpOiBEb24ndCBjaGVjayBmb3IgYmFja3NsYXNoZXMKCXVubGVzcyBIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTSBpcyBkZWZpbmVkLgoKCSogc3RhYnMuYzogVXBkYXRlIGNvcHlyaWdodC4gSW5jbHVkZSAiZmlsZW5hbWVzLmgiLgoJKHBhcnNlX3N0YWIpOiBVc2UgSVNfQUJTT0xVVEVfUEFUSC4gSWdub3JlIE5fV0FSTklORyBzdGFicy4KCjIwMDEtMDEtMjMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX3ZlcnNpb25fc2VjdGlvbnMpOiBDaGVjayBpZiBWRVJERUYgb3IgVkVSTkVFRAoJc2VjdGlvbnMgYXJlIHByZXNlbnQgYmVmb3JlIHVzaW5nIHRoZW0uICBSZW1vdmUgY29kZSBkdXBsaWNhdGlvbi4KCShwcm9jZXNzX3N5bWJvbF90YWJsZSk6IENoZWNrIGlmIFZFUkRFRiBvciBWRVJORUVEIHNlY3Rpb25zIGFyZQoJcHJlc2VudCBiZWZvcmUgdXNpbmcgdGhlbS4KCjIwMDEtMDEtMTcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBvYmpjb3B5LmMgKGNvcHlfb2JqZWN0KTogRmFpbCBpZiBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgdGhlCgllbmRpYW5uZXNzIG9mIHRoZSBpbnB1dCBvYmplY3QgZmlsZS4KCgkqIGJpbnV0aWxzLnRleGk6IEV4cGxhaW4gdGhhdCBvYmpjb3B5IGNhbm5vdCBjb252ZXJ0IGVuZGlhbm5lc3MuCgoyMDAxLTAxLTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChzdHJpbmdfdGFibGVfbGVuZ3RoKTogTmV3IHZhcmlhYmxlLgoJKFNFQ1RJT05fTkFNRSk6IENhdGNoIG91dCBvZiByYW5nZSBpbmRpY2VzIGFuZCBtaXNzaW5nIHNlY3Rpb24KCXBvaW50ZXJzLgoJKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogRGVsZXRlIHVzZWxlc3MgbG9jYWwgdmFyaWFibGUKCXN0cmluZ190YWJsZV9vZmZzZXQuICBTZXQgdGhlIHZhbHVlIG9mIHN0cmluZ190YWJsZV9sZW5ndGgKCWFmdGVyIGxvYWRpbmcgdGhlIHN0cmluZyB0YWJsZS4KCShwcm9jZXNzX21pcHNfc3BlY2lmaWMpOiBVc2UgU0VDVElPTl9OQU1FIG1hY3JvLgoJKHByb2Nlc3NfZmlsZSk6IFNldCBzdHJpbmdfdGFibGVfbGVuZ3RoIHRvIDAgd2hlbiBpdCBpcyBmcmVlZC4KCjIwMDEtMDEtMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiB2ZXJzaW9uLmMgKHByaW50X3ZlcnNpb24pOiBVcGRhdGUgY29weXJpZ2h0IGRhdGUuCgoyMDAxLTAxLTExICBQZXRlciBUYXJnZXR0ICA8cGV0ZXIudGFyZ2V0dEBhcmNjb3Jlcy5jb20+CgoJKiByZWFkZWxmLmMgKGR1bXBfcmVsb2NhdGlvbnMpOiBJbmNsdWRlIHNlbGVjdGlvbiB3aXRoIEVNX0FSQy4KCShnZXRfbWFjaGluZV9uYW1lKSBVcGRhdGUgbmFtZSB0byAiQVJDIi4KCjIwMDEtMDEtMDkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbTogQWRkIHJ1bGUgdG8gYnVpbGQgb2JqZHVtcC5vIGZyb20gb2JqZHVtcC5jIGFuZAoJdXNpbmcgT0JKRFVNUF9ERUZTLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIGNvbmZpZ3VyZS5pbjogRGVmaW5lIE9CSkRVTVBfREVGUy4gIERlZmF1bHQgdG8gZW1wdHkuCgkoYXJtLCB4c2NhbGUsIGQxMHYpOiBGb3IgdGhlc2UgdGFyZ2V0cyBkZWZpbmUgT0JKRFVNUF9ERUZTIHRvCgktRERJU0FTU0VNQkxFUl9ORUVEU19SRUxPQ1MuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCgkqIG9iamR1bXAuYyAoZGlzYXNzZW1ibGVfYnl0ZXMpOiBJZiBESVNBU1NFTUJMRVJfTkVFRFNfUkVMT0NTCglpcyBkZWZpbmVkIHJlYWQgaW4gdGhlIHJlbG9jcyBldmVuIGlmIGR1bXBfcmVsb2NfaW5mbyBpcwoJZmFsc2UuCgoyMDAxLTAxLTA3ICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogYmludXRpbHMudGV4aSAoQnVnIFJlcG9ydGluZyk6IFJlcGxhY2UgYGJ1Zy1nbnUtdXRpbHMnIHdpdGgKCWBidWctYmludXRpbHMnLgoJKiBSRUFETUU6IExpa2V3aXNlLgoKMjAwMC0xMi0xOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGRsbHRvb2wuYzogQWRkIG1pc3Npbmcgc3VwcG9ydCBmb3IgYXJtLWVwb2MtcGUuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIG1pc3Npbmcgc3VwcG9ydCBmb3IgYXJtLWVwb2MtcGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDAtMTItMTUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIERpZWdvIE5vdmlsbG8gYXMgYSBtYWludGFpbmVyIGZvciB0aGUgSW50ZWwKCU1vZGUgcGFydHMgb2YgdGhlIHg4NiBwb3J0LgoKMjAwMC0xMi0wNCAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogcmVhZGVsZi5jIChndWVzc19pc19yZWxhKTogQWRkIEVNX1g4Nl82NC4KCShkdW1wX3JlbG9jYXRpb25zKTogQWRkIEVNX1g4Nl82NC4KCShnZXRfbWFjaGluZV9uYW1lKTogQWRkIEVNX1g4Nl82NC4KCUluY2x1ZGUgImVsZi94ODYtNjQuaCIuCgoyMDAwLTEyLTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jOiBGaXggZm9ybWF0dGluZy4KCjIwMDAtMTItMTEgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIE1BSU5UQUlORVJTOiBBZGQgbXlzZWxmIGFuZCBBbmRyZWFzIEphZWdlciBhcyB4ODZfNjQgbWFpbnRhaW5lci4KCjIwMDAtMTItMDcgIEFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChkaXNwbGF5X2RlYnVnX2ZyYW1lcyk6IE9ubHkgZGlzcGxheSBjb2x1bW5zIHRoYXQgYXJlCglyZWZlcmVuY2VkIGJ5IHRoZSBmcmFtZSBkZWJ1ZyBpbmZvLgoKMjAwMC0xMi0wNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE1BSU5UQUlORVJTOiBBZGQgSmFzb24gTWVycmlsbCBhcyBEV0FSRjIgbWFpbnRhaW5lci4KCjIwMDAtMTItMDQgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX3NlY3Rpb25faGVhZGVycyk6IEhhbmRsZSBsaW5rb25jZS53aSBzZWN0aW9ucy4KCShkaXNwbGF5X2RlYnVnX3NlY3Rpb24pOiBMaWtld2lzZS4KCShkaXNwbGF5X2RlYnVnX2luZm8pOiBEaXNwbGF5IENVIGhlYWRlciBiZWZvcmUgYmFpbGluZy4KCjIwMDAtMTItMDEgIENocmlzIERlbWV0cmlvdSAgPGNnZEBzaWJ5dGUuY29tPgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9mbGFncyk6IFJlY29nbml6ZSBNSVBTMzIgSVNBIGluCglFRl9NSVBTX0FSQ0guICBSZXBsYWNlIHVzZSBvZiBFX01JUFNfTUFDSF9NSVBTMzIgd2l0aAoJRV9NSVBTX01BQ0hfTUlQUzMyXzRLIGFuZCBhZGp1c3QgcHJpbnRlZCBDUFUgbmFtZSBzaW1pbGFybHkuCgoJKiByZWFkZWxmLmMgKGdldF9tYWNoaW5lX2ZsYWdzKTogQWRkIGNhc2VzIGZvciBFX01JUFNfQVJDSF81LAoJYW5kIEVfTUlQU19BUkNIXzY0LgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9mbGFncyk6IEFkZCBjYXNlIGZvcgoJRV9NSVBTX01BQ0hfU0IxLgoKMjAwMC0xMS0zMCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiByZWFkZWxmLmMgKGZyYW1lX2Rpc3BsYXlfcm93KTogT3V0cHV0ICdzJyBmb3IgRFdfQ0ZBX3NhbWVfdmFsdWUuCgoyMDAwLTExLTI4ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIEqB9nJuIFJlbm5lY2tlIGFuZCBzZWxmIGFzIFNIIG1haW50YWluZXJzLgoJQ2hhbmdlIHNvdXJjZXdhcmUuY3lnbnVzLmNvbSB0byBzb3VyY2VzLnJlZGhhdC5jb20uCglGaXggdHlwbyBmb3IgImFtb25nc3QiLgoKMjAwMC0xMS0yOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHN0cmlwLjEgKENPUFlJTkcpOiBNZW50aW9uIHRoYXQgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24KCUxpY2Vuc2UgaXMgcHJlc2VudCBpbiB0aGUgc291cmNlcywgYnV0IG5vdCB0aGUgb3V0cHV0LCBhbmQKCWFsc28gYXZhaWxhYmxlIGZyb20gdGhlIEdOVSB3ZWJzaXRlLgoJKEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSk6IENvbW1lbnQgb3V0IHRoaXMgc2VjdGlvbi4KCSogc3RyaW5ncy4xOiBEaXR0by4KCSogc2l6ZS4xOiBEaXR0by4KCSogcmFubGliLjE6IERpdHRvLgoJKiBvYmpkdW1wLjE6IERpdHRvLgoJKiBvYmpjb3B5LjE6IERpdHRvLgoJKiBubS4xOiBEaXR0by4KCSogbmxtY29udi4xOiBEaXR0by4KCSogYXIuMTogRGl0dG8uCgkqIGFkZHIybGluZS4xOiBEaXR0by4KCjIwMDAtMTEtMjcgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogcmVhZGVsZi5jICh1c2FnZSk6IEFkZCAtd2YgKC0tZGVidWctZHVtcD1mcmFtZXMpIG9wdGlvbi4KCShwYXJzZV9hcmdzKTogU3VwcG9ydCAtd2Ygb3B0aW9uLgoJKHByb2Nlc3Nfc2VjdGlvbl9oZWFkZXJzKTogRGl0dG8uCgkoZGVidWdfZGlzcGxheXMpOiBEaXR0by4KCShkaXNwbGF5X2RlYnVnX2ZyYW1lcyk6IE5ldywgZHVtcCAqX2ZyYW1lIHNlY3Rpb25zLgoJKGZyYW1lX25lZWRfc3BhY2UpOiBTdXBwb3J0IGZvciBhYm92ZS4KCShmcmFtZV9kaXNwbGF5X3Jvdyk6IERpdHRvLgoJKiBiaW51dGlscy50ZXhpOiBEb2N1bWVudCBpdC4KCjIwMDAtMTEtMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBORVdTOiBBbm5vdW5jZSBzdXBwb3J0IGZvciB2NXQsIHY1dGUgYW5kIFhTY2FsZS4KCjIwMDAtMTEtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9tYWNoaW5lX25hbWUpOiBBZGQgRU1fSkFWRUxJTiwgRU1fRklSRVBBVEgsCglFTV9aU1AsIEVNX01NSVgsIEVNX0hVQU5ZLCBFTV9QUklTTS4KCShnZXRfc2VjdGlvbl90eXBlX25hbWUpOiBBZGQgU0hUX0dST1VQIGFuZCBTSFRfU1lNVEFCX1NITkRYLgoJKGdldF9lbGZfc2VjdGlvbl9mbGFnczogQWRkIFNIRl9HUk9VUC4KCShwcm9jZXNzX3NlY3Rpb25faGVhZGVycyk6IEFkanVzdCBvdXRwdXQgZm9yIDMyLWJpdCBiaW5hcmllcwoJdG8gbG9vayBuaWNlIG9uIGFuIDgwIGNvbHVtbiB0ZXJtaW5hbC4KCjIwMDAtMTEtMjAgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYyAoZ2V0X29zYWJpX25hbWUpOiBDaGFuZ2UgRUxGT1NBQklfTU9OVEVSRVkgdG8KCUVMRk9TQUJJX0FJWC4KCjIwMDAtMTEtMTcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiByZWFkZWxmLmMgKGRpc3BsYXlfZGVidWdfbGluZXMpOiBBZGp1c3QgbGFzdCBjaGFuZ2UgdG8KCXVzZSBzaXplb2YgKGV4dGVybmFsLT5saV9sZW5ndGgpLgoKMjAwMC0xMS0xNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZGlzcGxheV9kZWJ1Z19saW5lcyk6IEZpeCBzZWN0aW9uIGxlbmd0aCBjaGVjawoJYW5kIGVuZF9vZl9zZXF1ZW5jZSBjb21wdXRhdGlvbi4KCjIwMDAtMTEtMDYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBiaW51dGlscy50ZXhpOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoJKiBvYmpjb3B5LjE6IEFkZCBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuCgkqIG9iamR1bXAuMTogQWRkIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4KCSogYWRkcjJsaW5lLjE6IEFkZCBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuCgkqIGFyLjE6IEFkZCBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuCgkqIG5sbWNvbnYuMTogQWRkIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4KCSogbm0uMTogQWRkIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4KCSogcmFubGliLjE6IEFkZCBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuCgkqIHNpemUuMTogQWRkIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZS4KCSogc3RyaW5ncy4xOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoJKiBzdHJpcC4xOiBBZGQgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLgoKMjAwMC0xMC0wNiAgTHVjaWFubyBHZW1tZSA8aXNoaXRhd2FAeWFob28uY29tPgoKCSogb2JqY29weS5jICgtLXNyZWMtbGVuPW5uKTogTmV3IHBhcmFtZXRlciB0byBzZXQgdGhlCgltYXhpbXVtIGxlbmd0aCBvZiBnZW5lcmF0ZWQgU3JlY29yZHMuCgkoLS1zcmVjLWZvcmNlUzMpOiBOZXcgcGFyYW1ldGVyIHRoYXQgcmVzdHJpY3RzIHRoZSBnZW5lcmF0aW9uIG9mCglTcmVjb3JkcyB0byB0eXBlIFMzIG9ubHkuCgkqIGJpbnV0aWxzLnRleGk6IERvY3VtZW50IG5ldyBjb21tYW5kIGxpbmUgc3dpdGNoZXMuCgkqIG9iamNvcHkuMTogRG9jdWVtbnQgdGhlIG5ldyBjb21tYW5kIGxpbmUgc3dpdGNoZXMuCgkqIE5FV1M6IEFubm91bmNlIHRoZSBleGlzdGVuY2Ugb2YgdGhlIG5ldyBjb21tYW5kIGxpbmUgc3dpdGNoZXMuCgoyMDAwLTEwLTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBKaW0gV2lsc29uIGFzIHRoZSBtYWludGFpbmVyIGZvciB0aGUgSUE2NAoJY29kZS4gIEFkZCBFcmljIENocmlzb3BoZXIgYXMgbWFpbnRhaW5lciBvZiBNTjEwMzAwIHBvcnQuCgoyMDAwLTEwLTEyICBSb2dlciBTYXlsZSAgPHJvZ2VyQG1ldGFwaG9yaWNzLmNvbT4KCgkqIE1ha2UgY29tbWEgYWZ0ZXIgc3RyaW5nIGFmdGVyIGljb24vY29udHJvbCBvcHRpb25hbC4KCjIwMDAtMDktMTMgIEFuZGVycyBOb3JsYW5kZXIgIDxhbm9ybGFuZEBhY2MudW11LnNlPgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9mbGFncyk6IEFsc28gcHJpbnQgRUZfTUlQU19NQUNIIGZpZWxkLgoKCSogTkVXUzogTWVudGlvbiBzdXBwb3J0IGZvciBNSVBTMzIuCgoyMDAwLTA5LTA4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBTdGVwaGFuZSBDYXJyZXogYXMgbWFpbnRhaW5lciBmb3IgNjhIQ1sxMXwxMl0uCgoyMDAwLTA5LTA3ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBjb25maWd1cmUuaW4gKEFDX0lTQ19QT1NJWCk6IFB1dCBhZnRlciBBQ19DQU5PTklDQUxfU1lTVEVNLgoJKiBjb25maWd1cmU6IFJlYnVpbGQuCgoyMDAwLTA5LTA2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZTogUmVidWlsdCB3aXRoIG5ldyBsaWJ0b29sLm00LgoKMjAwMC0wOS0wNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMC0wOS0wNCAgVG9kZCBWaWVybGluZyAgPHR2QHdhc2FiaXN5c3RlbXMuY29tPgoKCSogc3RyaXAuMTogRml4IHN0cmF5ICdcJyBpbiAtbyBmb3JtYXR0aW5nLgoKMjAwMC0wOS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogSW5jcmVhc2UgdmVyc2lvbiBudW1iZXIgdG8gMi4xMC45MS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL2JpbnV0aWxzLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDAtMDgtMzEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogYWNpbmNsdWRlLm00OiBJbmNsdWRlIGxpYnRvb2wgYW5kIGdldHRleHQgbWFjcm9zIGZyb20gdGhlCgl0b3AgbGV2ZWwuCgkqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZTogUmVidWlsdC4KCjIwMDAtMDgtMzAgIEphbWllIEd1aW5hbiAgPGd1aW5hbkBibHVlYnV0dG9uLmNvbT4KCgkqIHJlc3JjLmMgKGNsb3NlX2lucHV0X3N0cmVhbSk6IERlbGV0ZSBleHRyYW5lb3VzIGxvZ2ljCgoyMDAwLTA4LTI0ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIE5FV1M6IE1lbnRpb24gc3VwcG9ydCBmb3IgQ1JJUy4KCjIwMDAtMDgtMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhZGRyMmxpbmUuYzogQ2hhbmdlZCBlbWFpbCBhZGRyZXNzIGZvciBVbHJpY2ggTGF1dGhlci4KCjIwMDAtMDgtMTcgIENocmlzdG9waGVyIEMuIENoaW1lbGlzIDxjaHJpc0BkZWJpYW4ub3JnPgoKCSogb2JqZHVtcC5jIChMT05HRVNUX0FSQ0gpOiBTZXQgdG8gc2l6ZW9mKCJwb3dlcnBjOmNvbW1vbiIpLgoKMjAwMC0wOC0xNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHJlYWRlbGYuYyAoZGlzcGxheV9kZWJ1Z19wdWJuYW1lcyk6IE9ubHkgaXNzdWUgd2FybmluZwoJbWVzc2FnZSBvbmNlLiAgVGVybWluYXRlIG1lc3NhZ2Ugd2l0aCBhIG5ldyBsaW5lLgoJKGRpc3BsYXlfZGVidWdfYXJhbmdlcyk6IE9ubHkgZGlzcGxheSB2ZXJzaW9uIDIgZGVidWcgaW5mby4KCjIwMDAtMDgtMTQgIFRvZGQgVmllcmxpbmcgPHR2QHdhc2FiaXN5c3RlbXMuY29tPgoKCSogb2JqY29weS5jIChzdHJpcF9tYWluKTogU2lsZW50bHkgYWNjZXB0IC1kIGFzIGFuIGFsaWFzIGZvciAtZwoJZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvbGQgQlNEIHN5c3RlbXMuCgoyMDAwLTA4LTE0ICBKYXNvbiBFY2toYXJkdCAgPGpsZUBjeWdudXMuY29tPgoKCSogTkVXUzogTWVudGlvbiBpODYwIHN1cHBvcnQuCgoyMDAwLTA4LTExICBDYXJsbyBXb29kIDxjYXJsb0BhbGlub2UuY29tPgoKCSogYWRkcjJsaW5lLmMgKG1haW4pOiBBZGQgY29uc3QgdG8gY2hhciAqLgoKMjAwMC0wOC0xMSAgR2VvZmYgS2VhdGluZyAgPGdlb2Zma0BjeWdudXMuY29tPgoKCSogYXIuYyAobWFpbik6IERvbid0IGNyYXNoIGlmIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50cwoJb3Igb25seSAnLVgzMl82NCcgYXMgYW4gYXJndW1lbnQuCgoyMDAwLTA4LTA4ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIHJlc3JjLmM6IHVzZSAiZ2NjIC14YyIgaW5zdGVhZCBvZiAteGMtaGVhZGVyCgoyMDAwLTA4LTA1ICBKYXNvbiBFY2toYXJkdCAgPGpsZUBjeWdudXMuY29tPgoKCSogcmVhZGVsZi5jIChlbGYvaTg2MC5oKTogSW5jbHVkZS4KCShkdW1wX3JlbG9jYXRpb25zKTogQWRkIHJlY29nbml0aW9uIG9mIGk4NjAgYXJjaGl0ZWN0dXJlLgoJKGd1ZXNzX2lzX3JlbGEpOiBBZGQgcmVjb2duaXRpb24gb2YgaTg2MCBhcmNoaXRlY3R1cmUuCgoyMDAwLTA4LTAzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBpbmZvcm1hdGlvbiBhYm91dCBDR0VOIG1haW50YWluZXJzLgoKMjAwMC0wNy0yNiAgR2VvZmYgS2VhdGluZyAgPGdlb2Zma0BjeWdudXMuY29tPgoKCSogbm0uYyAobWFpbik6IElnbm9yZSAnLVgzMl82NCcgYXMgYW4gb3B0aW9uLgoJKiBhci5jIChtYWluKTogTGlrZXdpc2UuCgkqIGJpbnV0aWxzLnRleGkgKG5tKTogRG9jdW1lbnQgbmV3IG9wdGlvbi4KCShhcik6IExpa2V3aXNlLgoKMjAwMC0wNy0yMyAgTWljaGFlbCBTb2tvbG92ICA8bXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHPgoKCSogcmRjb2ZmLmMgKGV4dGVybmFsX2NvZmZfc3ltYm9sX3ApOiBLJlItaXNlLgoKMjAwMC0wNy0yMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogYmludXRpbHMudGV4aTogUHV0IGJhY2sgIkBlbmQgdGFibGUiIGRlbGV0ZWQgYnkKCWFjY2lkZW50LgoKMjAwMC0wNy0wNSAgS2VubmV0aCBCbG9jayAgPGtyYmxvY2tAY29tcHV0ZXIub3JnPgoKCSogbm0uYzogQWRkIG9wdGlvbmFsIHN0eWxlIHRvIGRlbWFuZ2xlIHN3aXRjaC4KCSogb2JqZHVtcC5jOiBBZGQgb3B0aW9uYWwgc3R5bGUgdG8gZGVtYW5nbGUgc3dpdGNoLgoJKiBhZGRyMmxpbmUuYzogQWRkIG9wdGlvbmFsIHN0eWxlIHRvIGRlbWFuZ2xlIHN3aXRjaC4KCSogYmludXRpbHMudGV4aTogRG9jdW1lbnQgb3B0aW9uYWwgc3R5bGUgdG8gZGVtYW5nbGUKCXN3aXRjaC4KCjIwMDAtMDctMjAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBzZWxmIGFzIENSSVMgcG9ydCBtYWludGFpbmVyLgoJKiByZWFkZWxmLmM6IEluY2x1ZGUgZWxmL2NyaXMuaC4KCShndWVzc19pc19yZWxhKTogSGFuZGxlIEVNX0NSSVMuCgkoZHVtcF9yZWxvY2F0aW9ucyk6IERpdHRvLgoJKGdldF9tYWNoaW5lX25hbWUpOiBEaXR0by4KCSogTWFrZWZpbGUuYW06IFJlYnVpbGQgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vYmludXRpbHMucG90OiBSZWdlbmVyYXRlLgoKMjAwMC0wNy0xOSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVhZGVsZi5jIChnZXRfZHluYW1pY190eXBlKTogQ2hhbmdlICJBVVhJTEFSWSIgdG8KCSJBVVhJTElBUlkiLgoJKHByb2Nlc3NfZHluYW1pY19zZWdtZW50KTogUHJpbnQgb3V0IHN0cmluZ3MgZm9yIERUX0NPTkZJRywKCURUX0RFUEFVRElULCBEVF9BVURJVCBhbmQgRFRfUlVOUEFUSC4KCjIwMDAtMDctMTkgIE1hcmsgS2V0dGVuaXMgIDxrZXR0ZW5pc0BnbnUub3JnPgoKCSogbm0uYyAodXNhZ2UpOiBDaGFuZ2Ugb3V0cHV0IG9mIGBubSAtLWhlbHAnIHRvIGluY2x1ZGUgYQoJZGVzY3JpcHRpb24gb2YgdGhlIHB1cnBvc2Ugb2YgdGhlIHByb2dyYW0gYW5kIGEgZGV0YWlsZWQKCWRlc2NyaXB0aW9uIG9mIHRoZSBhY2NlcHRlZCBvcHRpb25zLgoKMjAwMC0wNy0xOSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVhZGVsZi5jIChwcm9jZXNzX2R5bmFtaWNfc2VnbWVudCk6IENoYW5nZSBERl8xX05PREVQTElCCgl0byBERl8xX05PREVGTElCLgoKMjAwMC0wNy0xOSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVhZGVsZi5jIChnZXRfZHluYW1pY190eXBlKTogRml4IERUX0NIRUNLU1VNLgoKMjAwMC0wNy0xOSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVhZGVsZi5jIChnZXRfZHluYW1pY190eXBlKTogQ2hhbmdlIERUX0ZFQVRVUkVfMSB0bwoJRFRfRkVBVFVSRS4KCShwcm9jZXNzX2R5bmFtaWNfc2VnbWVudCk6IExpa2V3aXNlLgoKCSogcmVhZGVsZi5jIChnZXRfZHluYW1pY190eXBlKTogSGFuZGxlIERUX0NPTkZJRywgRFRfREVQQVVESVQsCglEVF9BVURJVCwgRFRfUExUUEFELCBEVF9NT1ZFVEFCIGFuZCBEVF9DSEVDS1NVTS4KCShwcm9jZXNzX2R5bmFtaWNfc2VnbWVudCk6IEhhbmRsZSBEVEZfMV9DT05GRVhQLCBERl8xX05PREVQTElCLAoJREZfMV9OT0RVTVAgYW5kIERGXzFfQ09OTEZBVC4KCjIwMDAtMDctMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBiaW51dGlscy50ZXhpIChyZWFkZWxmKTogRml4IHNwZWxsaW5nIHR5cG8uCgoyMDAwLTA3LTExICBNYXJrIEtldHRlbmlzICA8a2V0dGVuaXNAZ251Lm9yZz4KCgkqIG9iamR1bXAuYyAodXNhZ2UpOiBNYWtlIG91dHB1dCBvZiBgb2JqZHVtcCAtLWhlbHAnIG1vcmUKCWNvbnNpc3RlbnQgd2l0aCB0aGUgcmVzdCBvZiB0aGUgR05VIHdvcmxkLiAgQWRkIGEgbGluZSBkZXNjcmliaW5nCgl0aGUgcHVycG9zZSBvZiB0aGUgcHJvZ3JhbS4KCjIwMDAtMDctMTAgIERhdmlkIEh1Z2dpbnMtRGFpbmVzICA8ZGhkQGxpbnV4Y2FyZS5jb20+CgoJKiBzdGFicy5jIChwYXJzZV9zdGFiX3JhbmdlX3R5cGUpOiBDYXN0IHRvIHByb3BlciB0eXBlIHRvIGZpeAoJd2FybmluZy4KCjIwMDAtMDctMTAgIFJ5YW4gQnJhZGV0aWNoICA8cmJyYWRldGljaEB1c3dlc3QubmV0PgoKCSogcmVhZGVsZi5jIChnZXRfZHluYW1pY19kYXRhKTogQWRkIGNhc3RzIGFuZCB1c2UgdW5zaWduZWQgY2hhcnMKCXRvIGZpeCB3YXJuaW5ncy4KCShwcm9jZXNzX3N5bWJvbF90YWJsZSk6IERpdHRvLgoJKHByb2Nlc1NfZXh0ZW5kZWRfbGluZV9vcCk6IERpdHRvLgoJKGRpc3BsYXlfZGVidWdfbGluZXMpOiBEaXR0by4KCShkaXNwbGF5X2RlYnVnX3B1Ym5hbWVzKTogRGl0dG8uCgkocmVhZF9hbmRfZGlzcGxheV9hdHRyKTogRGl0dG8uCgoyMDAwLTA3LTA5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogTUFJTlRBSU5FUlM6IEFkZCBzZXZlcmFsIG1vcmUgcG9ydCBzcGVjaWZpYyBtYWludGFpbmVycy4KCjIwMDAtMDctMDUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBNQUlOVEFJTkVSUzogQWRkIGJsYW5rZXQgd3JpdGUgcHJpdnMgZm9yIE1pY2hhZWwgTWVpc3NuZXIuCgoyMDAwLTA2LTA1ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIE1BSU5UQUlORVJTOiBOZXcuCgoyMDAwLTA3LTAxICBFcmljIEZpZmVyICA8RUZpZmVyQHNhbndhaW50LmNvbT4KCgkqIGRsbHdyYXAuYzogQ2hhbmdlZCBtaXN0YWtlbiBkeW5fc3RyaW5nX2FwcGVuZCgpIGNhbGxzCgl0byBkeW5fc3RyaW5nX2FwcGVuZF9jc3RyKCkuCgoyMDAwLTA3LTAxICBBbGV4YW5kZXIgQWdhbmljaGV2IDxBQWdhbmljaGV2QGh5cGVyY29tLmNvbT4KCgkqIHN0YWJzLmMgKHBhcnNlX3N0YWJfdHlwZSk6IERpdmlkZSBzaXplIGluIGJpdHMgYnkgOCBhcyBiaW51dGlscwoJc3RydWN0IGRlYnVnX3R5cGUgc3RvcmVzIHNpemUgaW4gYnl0ZXMuCgoyMDAwLTA3LTAxICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogTWFrZWZpbGUuYW0gKERFUCk6IEZpeCAyMDAwLTA2LTIyLiAgZ3JlcCBhZnRlciBydW5uaW5nIGRlcC5zZWQKCShDTEVBTkZJTEVTKTogQWRkIERFUEEuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wNi0yNyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGFyLmM6IFJldmVydCBpbmNvcnJlY3QgMjAwMC0wNi0yNSBwYXRjaC4KCSogYnVjb21tLmM6IExpa2V3aXNlLgoKMjAwMC0wNi0yNSBNYXJrIEVsYnJlY2h0IDxzbm93YmFsbDNAYmlnZm9vdC5jb20+CgoJKiByZGNvZmYgKHBhcnNlX2NvZmZfc3ltYm9sKTogVHJlYXQgR05VIHdlYWsgc3ltYm9scyBhcyBleHRlcm5hbC4KCShleHRlcm5hbF9jb2ZmX3N5bWJvbF9wKTogTmV3IGZ1bmN0aW9uLgoJKHBhcnNlX2NvZmYpOiBVc2UgaXQuCgoyMDAwLTA2LTI1ICBBbGV4YW5kZXIgQWdhbmljaGV2IDxBQWdhbmljaGV2QGh5cGVyY29tLmNvbT4KCgkqIGFyLmMgKG5vcm1hbGl6ZSk6IEFkdmFuY2UgcGFzdCBib3RoIGNoYXJhY3RlcnMgaW4gYSBET1MgYmFzZWQKCTxsZXR0ZXI+OiBmaWxlcGF0aCBwcmVmaXguCgkobWFpbik6IExpa2V3aXNlLgoJKiBidWNvbW0uYyAobWFrZV90ZW1wbmFtZSk6IExpa2V3aXNlLgoKMjAwMC0wNi0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIG9iamR1bXAuYyAodXNhZ2UpOiBGaXggZGVzY3JpcHRpb24gb2YgLS1zdGFicyBzd2l0Y2guCgoyMDAwLTA2LTIyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogTWFrZWZpbGUuYW0gKERFUCk6IGdyZXAgZm9yIGxlYWRpbmcgYC8nIGluIERFUDEsIGFuZCBmYWlsIGlmIHdlCglmaW5kIG9uZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAwLTA2LTIwICBBbGV4YW5kZXIgQWdhbmljaGV2IDxBQWdhbmljaGV2QGh5cGVyY29tLmNvbT4KCgkqIGFyLmMgKG5vcm1hbGl6ZSk6IENvcnJlY3QgcG9pbnRlciBjb21wYXJpc29uIHdoZW4gY2hlY2tpbmcgZm9yCgliYWNrc2xhc2hlcy4KCShtYWluKTogTGlrZXdpc2UuCgkqIGJ1Y29tbS5jIChtYWtlX3RlbXBuYW1lKTogTGlrZXdpc2UuCgoJKiBpZWVlLmMgKGllZWVfc3RhcnRfY29tcGlsYXRpb25fdW5pdCk6IENvcnJlY3QgcG9pbnRlciBjb21wYXJpc29uCglhbmQgc2VhcmNoIGZvciBiYWNrc2xhc2hlcyBpbiB0aGUgb3JpZ2luYWwgcGF0aG5hbWUuCgkoaWVlZV9hZGRfYmIxMSk6IExpa2V3aXNlLgoKMjAwMC0wNi0xOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGFyLmMgKHByaW50X2NvbnRlbnRzKTogSW1wcm92ZSB2ZXJib3NlIG1lc3NhZ2UuCgoyMDAwLTA2LTE1ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBkeW4tc3RyaW5nLmM6IFJlbW92ZWQuIE5vdCBuZWVkZWQgd2l0aCBkeW4tc3RyaW5nLmMgaW4KCWxpYmliZXJ0eS4KCSogZHluLXN0cmluZy5oOiBMaWtld2lzZS4KCgkqIE1ha2VmaWxlLmFtOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBkeW4tc3RyaW5nLmMgYW5kCglkeW4tc3RyaW5nLmguIFJlYnVpbGQgZGVwZW5kZW5jeS4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgoyMDAwLTA2LTE1ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBiaW51dGlscy50ZXhpOiBQdXQgYSB3YXJuaW5nIG9uIGNvcHlpbmcgcmVsb2NhdGFibGUgb2JqZWN0CglmaWxlcyBiZXR3ZWVuIHR3byBkaWZmZXJlbnQgZm9ybWF0cy4KCjIwMDAtMDYtMTMgIERKIERlbG9yaWUgIDxkakBjeWdudXMuY29tPgoKCSogcmNwYXJzZS55IChjb250cm9sKTogSUNPTiBjb250cm9scyB0YWtlIGFuIGlkIGFzIHRoZSBmaXJzdAoJcGFyYW1ldGVyLCBub3QgYW4gb3B0aW9uYWwgc3RyaW5nLiAgQWxzbywgY2FsbCBuZXcgY29udmVuaWVuY2UKCWZ1bmN0aW9uIHRoYXQgdGFrZXMgcmVzX2lkJ3MuCgkqIHJlc3JjLmMgKGRlZmluZV9jb250cm9sKTogbWlzc2luZyB0ZXh0IG1lYW5zIHplcm8tbGVuZ3RoIHN0cmluZywKCW5vdCB6ZXJvIElELgoJKGRlZmluZV9pY29uX2NvbnRyb2wpOiBOZXcuCgkqIHdpbmRyZXMuaDogZGVjbGFyZSBkZWZpbmVfaWNvbl9jb250cm9sLgoKMjAwMC0wNi0xMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMC0wNi0wOCAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIGNvbmZpZ3VyZS5pbiAoVkVSU0lPTik6IFVwZGF0ZSB0byBzaG93IHRoaXMgaXMgdGhlIENWUyBtYWlubGluZS4KCjIwMDAtMDYtMDIgIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRC5vcmc+CgoJKiBzdHJpbmdzLmMgKGlzZ3JhcGhpYyk6IEludGVycHJldCA8VEFCPiBhcyBhIHByaW50YWJsZSBjaGFyYWN0ZXIsCglhbmFsb2dvdXMgdG8gPFNQQUNFPi4KCjIwMDAtMDUtMzAgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBvYmpkdW1wLmMgKGRpc3BsYXlfdGFyZ2V0X2xpc3QpOiBVc2UgYmZkX2Nsb3NlX2FsbF9kb25lLCBub3QKCWJmZF9jbG9zZSB0byBmaXggY3Jhc2ggY2F1c2VkIGJ5IDIwMDAtMDUtMjQgY2hhbmdlLgoKMjAwMC0wNS0yNSAgREogRGVsb3JpZSAgPGRqQGN5Z251cy5jb20+CgoJKiByZXNyYy5jIChjbG9zZV9pbnB1dF9zdHJlYW0pOiB6ZXJvIG91dCBjcHBfcGlwZSBhZnRlciBjbG9zaW5nIGl0LgoKMjAwMC0wNS0yNiAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIE1ha2VmaWxlLmFtOiBVcGRhdGUgZGVwZW5kZW5jaWVzIHdpdGggIm1ha2UgZGVwLWFtIgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDUtMjYgIEVsaSBaYXJldHNraWkgIDxlbGl6QGlzLmVsdGEuY28uaWw+CgoJKiBhci5jOiBJbmNsdWRlIGZpbGVuYW1lcy5oLgoJKG5vcm1hbGl6ZSkgW0hBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNXTogU3VwcG9ydCBiYWNrc2xhc2hlcwoJYW5kIGRyaXZlIGxldHRlcnMgaW4gZmlsZSBuYW1lcy4KCShtYWluKTogU3VwcG9ydCBiYWNrc2xhc2hlcyBhbmQgZHJpdmUgbGV0dGVycyBpbiBhcmd2WzBdLiAgRHJvcAoJdGhlIC5leGUgc3VmZml4LCBpZiBhbnksIGluIGFyZ3ZbMF0gaWYgaXNfcmFubGliIGlzIG5lZ2F0aXZlLiAgVXNlCglGSUxFTkFNRV9DTVAgaW5zdGVhZCBvZiBzdHJjbXAgdG8gY29tcGFyZSBmaWxlIG5hbWVzLgoJKG9wZW5faW5hcmNoKSBbX19HTzMyX19dOiBEb24ndCBpZmRlZiBlcnJubyAhPSBFTk9FTlQgdGVzdCBmb3IKCURKR1BQIHYyLgoJKGRvX3F1aWNrX2FwcGVuZCkgW19fR08zMl9fXTogRGl0dG8uCgkoZ2V0X3Bvc19iZmQsIGRlbGV0ZV9tZW1iZXJzLCBtb3ZlX21lbWJlcnMsIHJlcGxhY2VfbWVtYmVycyk6CglDb21wYXJlIGZpbGUgbmFtZXMgd2l0aCBGSUxFTkFNRV9DTVAuCgoJKiBidWNvbW0uYzogSW5jbHVkZSBmaWxlbmFtZXMuaC4KCShtYWtlX3RlbXBuYW1lKSBbSEFWRV9ET1NfQkFTRURfRklMRV9TWVNURU1dOiBTdXBwb3J0IG1peGVkCglmb3J3YXJkL2JhY2t3YXJkIHNsYXNoZXMgYW5kIGRyaXZlIGxldHRlcnMgaW4gZmlsZSBuYW1lcy4KCgkqIGllZWUuYyAoaWVlZV9zdGFydF9jb21waWxhdGlvbl91bml0LCBpZWVlX2FkZF9iYjExKTogU3VwcG9ydAoJbWl4ZWQgZm9yd2FyZC9iYWNrd2FyZCBzbGFzaGVzIGFuZCBkcml2ZSBsZXR0ZXJzIGluIGZpbGUgbmFtZXMuCgoJKiBzdHJpbmdzLmMgKE9fQklOQVJZLCBzZXRtb2RlLCBTRVRfQklOQVJZKTogRGVmaW5lLgoJKG1haW4pIFtTRVRfQklOQVJZXTogVXNlIFNFVF9CSU5BUlkgdG8gc3dpdGNoIHN0ZGluIGludG8gYmluYXJ5Cgltb2RlLgoKCSogb2JqY29weS5jOiBJbmNsdWRlIGZpbGVuYW1lcy5oLgoJKG1haW4pIFtIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTV06IERyb3AgdGhlIC5leGUgc3VmZml4CgliZWZvcmUgY29tcGFyaW5nIHRvICJzdHJpcCIuCglVc2UgRklMRU5BTUVfQ01QIHRvIGNvbXBhcmUgZmlsZSBuYW1lcy4KCgkqIGFyc3VwLmM6IEluY2x1ZGUgZmlsZW5hbWVzLmguCgkobWFwX292ZXJfbGlzdCwgYXJfZGVsZXRlLCBhcl9yZXBsYWNlLCBhcl9leHRyYWN0KTogVXNlCglGSUxFTkFNRV9DTVAgdG8gY29tcGFyZSBmaWxlIG5hbWVzLgoJKGFyX29wZW4pOiBQcmVwZW5kICJ0bXAtIiBpbnN0ZWFkIG9mIGFwcGVuZGluZyAiLXRtcCIsIHRvIGNyZWF0ZQoJdGhlIHRlbXBvcmFyeSBmaWxlIG5hbWUuCgoJKiBjb25maWd1cmUuaW46IENoZWNrIGZvciBzZXRtb2RlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAwLTA1LTI0ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogb2JqZHVtcC5jIChkaXNwbGF5X3RhcmdldF9saXN0KTogQ2xvc2UgdGhlIGJmZC4KCShkaXNwbGF5X2luZm9fdGFibGUpOiBMaWtld2lzZS4KCjIwMDAtMDUtMTQgIEguSi4gTHUgIChoamxAZ251Lm9yZykKCgkqIG9iamNvcHkuYyAoZmlsdGVyX3N5bWJvbHMpOiBEb24ndCBzdHJpcCBnbG9iYWwgc3ltYm9scyBpbgoJcmVsb2NhdGFibGUgb2JqZWN0IGZpbGVzLgoKMjAwMC0wNS0xNCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIHNpemUuYyAodXNhZ2UpOiBBc3NvY2lhdGUgc2hvcnQgb3B0aW9ucyB3aXRoIGNvcnJlc3BvbmRpbmcgbG9uZwoJb3B0aW9uIHRvIGdpdmUgYSBjbHVlIGFzIHRvIHRoZWlyIGZ1bmN0aW9uLgoKMjAwMC0wNS0xNCAgUGhpbGlwcGUgRGUgTXV5dGVyICA8cGhkbUBtYWNxZWwuYmU+CgoJKiBzaXplLmMgKG1haW4pOiBBY2NlcHQgYW5kIGlnbm9yZSBgLWYnIG9wdGlvbi4KCjIwMDAtMDUtMTMgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBidWNvbW0uaCAoZ2V0dGV4dCwgZGdldHRleHQsIGRjZ2V0dGV4dCwgdGV4dGRvbWFpbiwKCWJpbmR0ZXh0ZG9tYWluKTogUmVwbGFjZSBkZWZpbmVzIHdpdGggdGhvc2UgZnJvbSBpbnRsL2xpYmdldHRleHQuaAoJdG8gcXVpZXRlbiBnY2Mgd2FybmluZ3MuCgoyMDAwLTA1LTEyICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBubG1jb252LmMgKHRlbXBfZmlsZW5hbWUpOiBSZW1vdmVkLgoKCSogbmxtY29udi5jIChsaW5rX2lucHV0cyk6IFVzZSBtYWtlX3RlbXBfZmlsZSAoKSBpbnN0ZWFkIG9mCgljaG9vc2VfdGVtcF9iYXNlICgpLgoJKiBvYmpkdW1wLmMgKGRpc3BsYXlfdGFyZ2V0X2xpc3QpOiBMaWtld2lzZS4KCShkaXNwbGF5X2luZm9fdGFibGUpOiBMaWtld2lzZS4KCjIwMDAtMDUtMDggIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBvYmpjb3B5LmMgKHNldHVwX3NlY3Rpb24pOiBBZGQgY29uc3QgYW5kIGdldHRleHQgY2FsbHMgZm9yIGVyci4KCjIwMDAtMDUtMDIgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYyAoZ2V0X29zYWJpX25hbWUpOiBIYW5kbGUgRUxGT1NBQklfTk9ORSBpbnN0ZWFkIG9mCglFTEZPU0FCSV9TWVNWLiBBbHNvIGhhbmRsZSBFTEZPU0FCSV9ORVRCU0QsIEVMRk9TQUJJX0hVUkQsCglFTEZPU0FCSV9TT0xBUklTLCBFTEZPU0FCSV9NT05URVJFWSwgRUxGT1NBQklfSVJJWCwKCUVMRk9TQUJJX0ZSRUVCU0QsIEVMRk9TQUJJX1RSVTY0LCBFTEZPU0FCSV9NT0RFU1RPCglhbmQgRUxGT1NBQklfT1BFTkJTRC4KCjIwMDAtMDUtMDIgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogY29mZmdyb2suYzogQWRkIEFUVFJJQlVURV9VTlVTRUQgYXMgYXBwcm9wcmlhdGUuCgkqIHNyY29udi5jOiBMaWtld2lzZS4KCSogc3lzZHVtcC5jOiBMaWtld2lzZS4KCjIwMDAtMDQtMjMgIERlbmlzIENoZXJ0eWtvdiAgPGRlbmlzY0BvdmVydGEucnU+CgoJKiByZWFkZWxmLmMgKGd1ZXNzX2lzX3JlbGEpOiBBVlIgdXNlcyBSRUxBIHJlbG9jYXRpb25zLgoJKGdldF9tYWNoaW5lX25hbWUpOiBtYWNoaW5lIG5hbWUgZm9yIEVNX0FWUiBhZGRlZC4KCjIwMDAtMDQtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQGN5Z251cy5jb20+CgkgICAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgoJKiBNYWtlZmlsZS5hbSAocmVhZGVsZi5vKTogQWRkIGVsZi9pYTY0LmguCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoJKiByZWFkZWxmLmM6IEluY2x1ZGUgZWxmL2lhNjQuaC4KCShndWVzc19pc19yZWxhLCBkdW1wX3JlbG9jYXRpb25zKTogSGFuZGxlIEVNX0lBXzY0LgoKMjAwMC0wNC0xNyAgVGltb3RoeSBXYWxsICA8dHdhbGxAY3lnbnVzLmNvbT4KCgkqIG9iamR1bXAuYyAoZGlzYXNzZW1ibGVfZGF0YSk6IFNldCBvY3RldHMgcGVyIGJ5dGUgKmFmdGVyKgoJcmVzb2x2aW5nIGFyY2gvbWFjaCBmb3IgYmluYXJ5IGZpbGVzLgoKMjAwMC0wNC0xNCAgTWljaGFlbCBTb2tvbG92ICA8bXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHPgoKCSogYXJsZXgubDogQWRkIGRpcmVjdGl2ZXMgdG8gaW5jcmVhc2UgbGV4IGJ1ZmZlciBzaXplLgoKCSogb2JqZHVtcC5jLCByZWFkZWxmLmM6IERvbid0IGluY2x1ZGUgc3RyYXJnLmggb3IgdmFyYXJncy5oLiBUaGV5IGFyZQoJYWxyZWFkeSBpbmNsdWRlZCBieSBidWNvbW0uaC4KCjIwMDAtMDQtMTAgIFBoaWxpcHBlIERlIE11eXRlciAgPHBoZG1AbWFjcWVsLmJlPgoKCSogcmVhZGVsZi5jIChkeW5hbWljX3NlZ21lbnRfbWlwc192YWwpOiBDYWxsIGBzcHJpbnRmJywgbm90Cglgc3RyZnRpbWUnIHNpbmNlIHN0cmZ0aW1lIGlzIG5vdCBhdmFpbGFibGUgb24gYWxsIHN5c3RlbXMuCgkocHJvY2Vzc19taXBzX3NwZWNpZmljKTogRGl0dG8uCgoyMDAwLTA0LTA3ICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QGIxLmN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW4gKFdBUk5fQ0ZMQUdTKTogU2V0IHRvIC1XIC1XYWxsIGJ5IGRlZmF1bHQuICBBZGQKCS0tZW5hYmxlLWJ1aWxkLXdhcm5pbmdzIG9wdGlvbi4KCSogTWFrZWZpbGUuYW0gKEFNX0NGTEFHUywgV0FSTl9DRkxBR1MpOiBBZGQgZGVmaW5pdGlvbnMuCgkqIE1ha2VmaWxlLmluLCBjb25maWd1cmU6IFJlLWdlbmVyYXRlLgoKMjAwMC0wNC0wNiAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGFkZHIybGluZS5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKiBvYmpjb3B5LjE6IExpa2V3aXNlLCBhbmQgdGl0bGUuCgkqIHN0cmluZ3MuMTogTGlrZXdpc2UuCgoJKiB2ZXJzaW9uLmMgKHByaW50X3ZlcnNpb24pOiBBZGQgMjAwMC4KCgkqIHJkZGJnLmMgKHJlYWRfc2VjdGlvbl9zdGFic19kZWJ1Z2dpbmdfaW5mbyk6IERvbid0IHVzZQoJYmZkX3NpemVfdHlwZSBmb3Igc3RyeCB0byBhdm9pZCBwcmludGYgcHJvYmxlbXMgaWYgQkZENjQuCgoJKiBidWNvbW0uYzogKHJlcG9ydCk6IFJlbW92ZSBgc3RhdGljJy4KCU1vdmUgaW5jbHVzaW9uIG9mIHN0ZGFyZy5oL3ZhcmFyZy5oIGZyb20gaGVyZS4KCSogYnVjb21tLmg6IFRvIGhlcmUuCgkoQ09OU1QpOiBDaGFuZ2UgYWxsIG9jY3VyZW5jZXMgdG8gY29uc3QuCgkocmVwb3J0KTogRGVjbGFyZSBpdC4KCShiZmRfZmF0YWwpOiBBZGQgQVRUUklCVVRFX05PUkVUVVJOLgoJKGZhdGFsKTogQWRkIEFUVFJJQlVURV9QUklOVEZfMSBBVFRSSUJVVEVfTk9SRVRVUk4uCgkobm9uX2ZhdGFsKTogQWRkIEFUVFJJQlVURV9QUklOVEZfMS4KCgkqIGFyLmMgKG1haW4pOiBVc2UgZmF0YWwgb3Igbm9uX2ZhdGFsIGluc3RlYWQgb2YgZnByaW50Zi4KCUNvcnJlY3QgYSB0eXBvIGluIGFuIGVycm9yIG1lc3NhZ2UuCgkoZG9fcXVpY2tfYXBwZW5kKTogVXNlIG5vbl9mYXRhbCBpbnN0ZWFkIG9mIGZwcmludGYuCgkobW92ZV9tZW1iZXJzKTogVXNlIGZhdGFsIGluc3RlYWQgb2YgZnByaW50ZiwgZXhpdC4KCSogY29mZmR1bXAuYyAobWFpbik6IFNhbWUgaGVyZS4KCgkqIGRsbHRvb2wuYyAoZGlzcGxheSk6IERlbGV0ZS4KCSh3YXJuKTogRGVsZXRlLgoJKGluZm9ybSk6IFVzZSBgcmVwb3J0JyBpbnN0ZWFkIG9mIGBkaXNwbGF5Jy4KCShydmFhZnRlcik6IFJlbW92ZSB0cmFpbGluZyBcbiBmcm9tIGZhdGFsIGVycm9yIG1zZy4KCShydmFiZWZvcmUpOiBEaXR0by4KCShhc21fcHJlZml4KTogRGl0dG8uCgkoeXllcnJvcik6IFJlcGxhY2UgYHdhcm4nIHdpdGggYG5vbl9mYXRhbCcsIGFuZCByZW1vdmUgXG4uCgkoZGVmX25hbWUpOiBMaWtld2lzZS4KCShydW4pOiBMaWtld2lzZS4KCShzY2FuX2FsbF9zeW1ib2xzKTogTGlrZXdpc2UuCgkoZ2VuX2xpYl9maWxlKTogTGlrZXdpc2UuCgkoZGVmX2xpYnJhcnkpOiBMaWtld2lzZS4gIFJlbW92ZSBleHRyYSBwcm9ncmFtX25hbWUgdG9vLgoJKHJ1bik6IFJlbW92ZSBcbiBmcm9tIGluZm9ybSBzdHJpbmdzLgoJKHNjYW5fZHJlY3R2ZV9zeW1ib2xzKTogTGlrZXdpc2UuCgkoYWRkX2V4Y2x1ZGVzKTogTGlrZXdpc2UuCgkoc2Nhbl9vcGVuX29ial9maWxlKTogTGlrZXdpc2UuCgkoZ2VuX2V4cF9maWxlKTogTGlrZXdpc2UuCgkoZ2VuX2xpYl9maWxlKTogTGlrZXdpc2UuCgkocHJvY2Vzc19kdXBsaWNhdGVzKTogTGlrZXdpc2UuCgoJKiBNYWtlZmlsZS5hbSAoZGxsd3JhcF9TT1VSQ0VTKTogQWRkIHZlcnNpb24uYy4KCSogZGxsd3JhcC5jIChwcm9ncmFtX3ZlcnNpb24pOiBEZWxldGUuCgkocHJpbnRfdmVyc2lvbik6IERlbGV0ZS4KCShkaXNwbGF5KTogQWx3YXlzIHByaW50IHRyYWlsaW5nIFxuLgoJKHdhcm4pOiBOZXcuCgkoZGVsZXRlX3RlbXBfZmlsZXMpOiBVc2Ugd2FybiBpbnN0ZWFkIG9mIGZwcmludGYuICBVc2UgZ2V0dGV4dC4KCShydW4pOiBIZXJlIHRvby4KCShtYWluKTogQW5kIGhlcmUuCgkodXNhZ2UpOiBnZXR0ZXh0J2lmeS4KCShsb25nX29wdGlvbnMpOiBBZGQgbWlzc2luZyBpbml0aWFsaXNlcnMuCgoJKiBubG1jb252LmMgKG1haW4pOiBVc2UgZmF0YWwvbm9uX2ZhdGFsIGluc3RlYWQgb2YgZnByaW50Zi4KCShzZWxlY3Rfb3V0cHV0X2Zvcm1hdCk6IExpa2V3aXNlLgoJKHBvd2VycGNfbWFuZ2xlX3JlbG9jcyk6IExpa2V3aXNlLgoJKGxpbmtfaW5wdXRzKTogTGlrZXdpc2UuCgoJKiBubS5jIChzZXRfcHJpbnRfcmFkaXgpOiBVc2UgZmF0YWwgaW5zdGVhZCBvZiBmcHJpbnRmLCBleGl0LgoJKHNldF9vdXRwdXRfZm9ybWF0KTogTGlrZXdpc2UuCgkobWFpbik6IFVzZSBub25fZmF0YWwgaW5zdGVhZCBvZiBmcHJpbnRmLgoJKGRpc3BsYXlfcmVsX2ZpbGUpOiBMaWtld2lzZS4KCgkqIG9iamR1bXAuYyAoc2x1cnBfc3ltdGFiKTogVXNlIG5vbl9mYXRhbCBpbnN0ZWFkIG9mIGZwcmludGYuCgkoc2x1cnBfZHluYW1pY19zeW10YWIpOiBTYW1lIGhlcmUuCgkoZGlzYXNzZW1ibGVfZGF0YSk6IEFuZCBoZXJlLgoJKHJlYWRfc2VjdGlvbl9zdGFicyk6IEFuZCBoZXJlLgoJKHJlYWRfc2VjdGlvbl9zdGFicyk6IEFuZCBoZXJlLgoJKGR1bXBfYmZkKTogQW5kIGhlcmUuCgkobWFpbik6IEFuZCBoZXJlLgoJKG9iamR1bXBfc3ByaW50Zik6IFVzZSBmYXRhbCBpbnN0ZWFkIG9mIGZwcmludGYsIGV4aXQuCgkoZGlzYXNzZW1ibGVfZGF0YSk6IFNhbWUgaGVyZS4KCgkqIHJkY29mZi5jIChwYXJzZV9jb2ZmX3R5cGUpOiBVc2Ugbm9uX2ZhdGFsIGluc3RlYWQgb2YgZnByaW50Zi4KCShwYXJzZV9jb2ZmX3N0cnVjdF90eXBlKTogU2FtZSBoZXJlLgoJKHBhcnNlX2NvZmZfZW51bV90eXBlKTogQW5kIGhlcmUuCgkocGFyc2VfY29mZik6IEFuZCBoZXJlLgoJKiByZGRiZy5jIChyZWFkX2RlYnVnZ2luZ19pbmZvKTogQW5kIGhlcmUuCgkqIHNpemUuYyAobWFpbik6IEFuZCBoZXJlLgoJKiB3aW5kcmVzLmMgKGZvcm1hdF9mcm9tX25hbWUpOiBBbmQgaGVyZS4KCSogd3JzdGFicy5jIChzdGFiX3dyaXRlX3N5bWJvbCk6IEhlcmUgdG9vLgoJKHdyaXRlX3N0YWJzX2luX3NlY3Rpb25zX2RlYnVnZ2luZ19pbmZvKTogQW5kIGhlcmUuCgkoc3RhYl9pbnRfdHlwZSk6IEFuZCBoZXJlLgoJKHN0YWJfc3RydWN0X2ZpZWxkKTogQW5kIGhlcmUuCgkoc3RhYl90eXBkZWYpOiBBbmQgaGVyZS4KCgkqIHJlc2NvZmYuYyAocmVhZF9jb2ZmX3JzcmMpOiBVc2UgZmF0YWwgaW5zdGVhZCBvZiBmcHJpbnRmLCBleGl0LgoJKiBzcmNvbnYuYyAobWFpbik6IFNhbWUgaGVyZS4KCSogc3RyaW5ncy5jIChtYWluKTogQW5kIGhlcmUuCgkoaW50ZWdlcl9hcmcpOiBBbmQgaGVyZS4KCSogc3lzZHVtcC5jIChtYWluKTogQW5kIGhlcmUuCgoyMDAwLTA0LTA2ICBUaW1vdGh5IFdhbGwgIDx0d2FsbEBjeWdudXMuY29tPgoKCSogb2JqZHVtcC5jIChkdW1wX3NlY3Rpb25faGVhZGVyKTogUHJpbnQgQ0xJTksgYW5kIEJMT0NLIGZsYWdzLgoKMjAwMC0wNC0wNiAgSmFzb24gTWVycmlsbCAgPGphc29uQHlvcmljay5jeWdudXMuY29tPgoKCSogcmVhZGVsZi5jIChkZWNvZGVfbG9jYXRpb25fZXhwcmVzc2lvbik6IExvb3AgdGhyb3VnaCBtdWx0aXBsZQoJb3BlcmF0aW9ucy4KCShyZWFkX2FuZF9kaXNwbGF5X2F0dHIpOiBQYXNzIGluIGxlbmd0aC4KCgkqIHJlYWRlbGYuYyAocmVhZF9hbmRfZGlzcGxheV9hdHRyKTogQWRkIENVIG9mZnNldCB0byByZWZlcmVuY2VzLgoJKGRpc3BsYXlfZGVidWdfaW5mbyk6IFBhc3MgaXQgaW4uCgoyMDAwLTA0LTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogcmVhZGVsZi5jIChkZWNvZGVfQVJNX21hY2hpbmVfZmxhZ3MpOiBOZXcgZnVuY3Rpb24uCgkoZ2V0X21hY2hpbmVfZmxhZ3MpOiBDYWxsIGRlY29kZV9BUk1fbWFjaGluZV9mbGFncyBmb3IgQVJNCgl0YXJnZXRzLgoKCShnZXRfbWFjaGluZV9uYW1lKTogQ2F0Y2ggRU1fQVZSCgoyMDAwLTA0LTA1ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogYmludXRpbHMudGV4aTogUmVtb3ZlIG9wdGlvbmFsIGA9JyBmcm9tIGxvbmcgb3B0aW9ucyB0aGF0IGhhdmUKCWFuIGA9JyBpbiB0aGUgYXJndW1lbnQuCgkqIG9iamNvcHkuMTogSGVyZSB0b28uICBSZW1vdmUgZXh0cmEgc3BhY2Ugb24gZGlzY2FyZC1hbGwuCgoJKiBiaW51dGlscy50ZXhpIChvYmpjb3B5KTogTWVudGlvbiAtLXJlZGVmaW5lLXN5bS4KCSogb2JqY29weS4xOiBIZXJlIHRvby4KCSogTkVXUzogQW5kIGhlcmUuCgoJKiBvYmpjb3B5LmMgKHBhcnNlX2ZsYWdzKTogU3BsaXQgb2ZmIGZsYWcgbmFtZXMgZnJvbSBlcnJvciBtZXNzYWdlCglnZXR0ZXh0IGFzIHRoZXkgYXJlIG5vdCB0cmFuc2xhdGVkLgoJKGNvcHlfbWFpbik6IFNpbWlsYXJseSBzcGxpdCBvZmYgb3B0aW9uIG5hbWUgZm9yIC0tYWRkLXNlY3Rpb24sCgktLXNldC1zZWN0aW9uLWZsYWdzLCAtLWNoYW5nZS1zZWN0aW9uLXZtYSwgLS1jaGFuZ2Utc2VjdGlvbi1sbWEKCWVycm9yIG1lc3NhZ2VzLgoJU29tZSB3aGl0ZSBzcGFjZSBjaGFuZ2VzLgoKCWZyb20gTWF0dGhldyBCZW5qYW1pbiA8bWF0dEBsaW51eGJveC5udT4KCSogb2JqY29weS5jIChzdHJ1Y3QgcmVkZWZpbmVfbm9kZSk6IE5ldy4KCShyZWRlZmluZV9zeW1fbGlzdCk6IE5ldy4KCShyZWRlZmluZV9saXN0X2FwcGVuZCk6IE5ldy4KCShsb29rdXBfc3ltX3JlZGVmaW5pdGlvbik6IE5ldy4KCShPUFRJT05fUkVERUZJTkVfU1lNKTogTmV3LgoJKGNvcHlfb3B0aW9ucyk6IEFkZCAtLXJlZGVmaW5lLXN5bSBvcHRpb24uCgkoY29weV91c2FnZSk6IE1lbnRpb24gaXQuCgkoZmlsdGVyX3N5bWJvbHMpOiBSZW5hbWUgc3ltYm9scyBvbiByZWRlZmluZV9zeW1fbGlzdC4KCShjb3B5X29iamVjdCk6IENhbGwgZmlsdGVyX3N5bWJvbHMgaWYgcmVkZWZpbmVfc3ltX2xpc3QgIT0gTlVMTC4KCShjb3B5X21haW4pOiBIYW5kbGUgT1BUSU9OX1JFREVGSU5FX1NZTS4KCjIwMDAtMDQtMDQgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlYWRlbGYuYyAocHJvY2Vzc19zeW1ib2xfdGFibGUpOiBDb3JyZWN0bHkgcmVhZCBpbiBzeW1ib2wKCXZlcnNpb25pbmcgaW5mb3JtYXRpb24uCgoyMDAwLTA0LTA0ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogcG8vYmludXRpbHMucG90OiBSZWdlbmVyYXRlLgoKCSogYWRkcjJsaW5lLmMgKHVzYWdlKTogUmVzdG9yZSB0cmFuc2xhdGVkIHBhcnQgb2YgYnVnIHN0cmluZy4KCSogYXIuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogbmxtY29udi5jIChzaG93X3VzYWdlKTogTGlrZXdpc2UuCgkqIG5tLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIG9iamNvcHkuYyAoY29weV91c2FnZSk6IExpa2V3aXNlLgoJKHN0cmlwX3VzYWdlKTogTGlrZXdpc2UuCgkqIG9iamR1bXAuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogcmVhZGVsZi5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiBzaXplLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIHN0cmluZ3MuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogd2luZHJlcy5jICh1c2FnZSk6IExpa2V3aXNlLgoKCSogTWFrZWZpbGUuYW0gKE1LREVQKTogVXNlIGdjYyAtTU0gcmF0aGVyIHRoYW4gbWtkZXAuCgkoREVQKTogUXVvdGUgd2hlbiBwYXNzaW5nIHZhcnMgdG8gc3ViLW1ha2UuICBBZGQgd2FybmluZwoJbWVzc2FnZSB0byBlbmQuCgkoREVQMSk6IFJld3JpdGUgZm9yICJnY2MgLU1NIi4KCShDTEVBTkZJTEVTKTogQWRkIERFUDIuCglVcGRhdGUgZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDQtMDQgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtIChHRU5FUkFURURfSEZJTEVTKTogQWRkIHJjcGFyc2UuaAoJKGFycGFyc2UuaCk6IERlcGVuZCBvbiBhcnBhcnNlLmMKCShkZWZwYXJzZS5oLCBubG1oZWFkZXIuaCwgcmNwYXJzZS5oLCBzeXNpbmZvLmgpOiBTaW1pbGFybHkuCgoyMDAwLTA0LTAzICBILkouIEx1ICAoaGpsQGdudS5vcmcpCgoJKiBzaXplLmMgKHVzYWdlKTogVXNlIFJFUE9SVF9CVUdTX1RPLgoKMjAwMC0wNC0wMyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGJ1Y29tbS5oOiAjaW5jbHVkZSAiYmluLWJ1Z3MuaCIKCSogYWRkcjJsaW5lLmMgKHVzYWdlKTogVXNlIFJFUE9SVF9CVUdTX1RPLgoJKiBhci5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiBubG1jb252LmMgKHNob3dfdXNhZ2UpOiBMaWtld2lzZS4KCSogbm0uYyAodXNhZ2UpOiBMaWtld2lzZS4KCShPUFRJT05fVEFSR0VUKTogRGVmaW5lLgoJKGxvbmdfb3B0aW9ucyk6IFVzZSBPUFRJT05fVEFSR0VUIHJhdGhlciB0aGFuIDIwMC4KCShtYWluKTogTGlrZXdpc2UuCgoJKiBvYmpjb3B5LmMgKGNvcHlfdXNhZ2UpOiBVc2UgUkVQT1JUX0JVR1NfVE8uCgkoc3RyaXBfdXNhZ2UpOiBMaWtld2lzZS4KCSogb2JqZHVtcC5jICh1c2FnZSk6IExpa2V3aXNlLgoJKiByZWFkZWxmLmMgKHVzYWdlKTogTGlrZXdpc2UuCgkqIHN0cmluZ3MuYyAodXNhZ2UpOiBMaWtld2lzZS4KCSogd2luZHJlcy5jICh1c2FnZSk6IExpa2V3aXNlLgoKMjAwMC0wMy0zMSAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIHJlYWRlbGYuYzogSW5jbHVkZSBzeXMvdHlwZXMuaCBiZWZvcmUgc3lzL3N0YXQuaCBmb3IgdWx0cml4LgoKMjAwMC0wMy0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIHJkZGJnLmMgKHJlYWRfc2VjdGlvbl9zdGFic19kZWJ1Z2dpbmdfaW5mbyk6IENhdGNoIG91dCBvZiByYW5nZQoJc3RyaW5nIG9mZnNldHMgaW4gY29ycnVwdCBzdGFicyBlbnRyaWVzLgoKMjAwMC0wMy0yNyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIHJlYWRlbGYuYzogSW5jbHVkZSBlbGYvYXZyLmgKCShkdW1wX3JlbG9jYXRpb25zKTogQWRkIEVNX0FWUiBjYXNlLgoKMjAwMC0wMy0wOSAgVGltIFdhdWdoICA8dHdhdWdoQHJlZGhhdC5jb20+CgoJKiBzdHJpbmdzLjE6IENvcnJlY3QgJy1ieXRlcycgdG8gJy0tYnl0ZXMnLgoKMjAwMC0wMy0wOCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogTWFrZWZpbGUuYW0gKGluc3RhbGwtZXhlYy1sb2NhbCk6IERlcGVuZCBvbgoJaW5zdGFsbC1iaW5QUk9HUkFNUyBmb3IgcGFyYWxsZWwgbWFrZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoKMjAwMC0wMi0yNyAgSWFuIExhbmNlIFRheWxvciAgPGlhbkB6ZW1idS5jb20+CgoJRnJvbSBCcmFkIEx1Y2llciA8bHVjaWVyQG1hdGgucHVyZHVlLmVkdT46CgkqIHJlYWRlbGYuYyAocHJvY2Vzc19keW5hbWljX3NlZ21lbnQpOiBBZGQgY2FzdCB0byBtYWtlIHN1cmUKCWFyZ3VtZW50IHRvICUqIGlzIGludC4KCjIwMDAtMDItMjUgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS5pbiAoQUNfU0VBUkNIX0xJQlMpOiBQYXNzIG0sIG5vdCAtbG0uCgoyMDAwLTAyLTI0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgYXJtLXdpbmNlLCBtaXBzLXBlIGFuZCBzaC1wZSB0YXJnZXRzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoJKiBkbGx0b29sLmM6IEFkZCBzdXBwb3J0IGZvciBzaC1wZSBhbmQgbWlwcy1wZSB0YXJnZXRzLgoJKiByZXNjb2ZmLmM6IEFkZCBzdXBwb3J0IGZvciBzaC1wZSBhbmQgbWlwcy1wZSB0YXJnZXRzLgoKMjAwMC0wMi0yMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogcmVhZGVsZi5jIChnZXRfb3NhYmlfbmFtZSk6IEhhbmRsZSBFTEZPU0FCSV9MSU5VWC4KCjIwMDAtMDItMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiByZWFkZWxmLmMgKHByb2Nlc3Nfc3ltYm9sX3RhYmxlKTogUmVtb3ZlIHVzZSBvZiBFTEZfU1RfT1RIRVIuCgoyMDAwLTAyLTIyICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQHplbWJ1LmNvbT4KCglGcm9tIEJyYWQgTHVjaWVyIDxsdWNpZXJAbWF0aC5wdXJkdWUuZWR1PjoKCSogcmVhZGVsZi5jIChwcm9jZXNzX3ZlcnNpb25fc2VjdGlvbnMpOiBBZGQgY2FzdHMgdG8gbWFrZSBzdXJlCglhcmd1bWVudCB0byAlKiBpcyBhbiBpbnQuCgkocHJvY2Vzc19taXBzX3NwZWNpZmljKTogQWRkIGNhc3RzIHRvIG1ha2UgcHJpbnRmIGFyZ3VtZW50cyBtYXRjaAoJZm9ybWF0LgoKMjAwMC0wMi0yMSAgQWxhbiBNb2RyYSAgPGFsYW5Ac3ByaS5sZXZlbHMudW5pc2EuZWR1LmF1PgoKCSogb2JqZHVtcC5jIChkdW1wX3NlY3Rpb25faGVhZGVyKTogQ2hhbmdlIGBvcGInIHRvIHVuc2lnbmVkLgoJKGZpbmRfc3ltYm9sX2Zvcl9hZGRyZXNzKTogU2FtZSBoZXJlLgoJKGRpc2Fzc2VtYmxlX2RhdGEpOiBBbmQgaGVyZS4gIENoYW5nZSBgYWRkcl9vZmZzZXQnLAoJYHN0b3Bfb2Zmc2V0JywgYG5leHRzdG9wX29mZnNldCcgdG8gdW5zaWduZWQgbG9uZy4KCShkdW1wX2RhdGEpOiBDaGFuZ2Ugb3BiIHRvIHVuc2lnbmVkLgoKMjAwMC0wMi0xOCAgRnJhbmsgQ2guIEVpZ2xlciAgPGZjaGVAcmVkaGF0LmNvbT4KCgkqIHJlc3JjLmM6IFJlbW92ZSB1bm1hdGNoZWQgI2lmIGZvciBjeWd3aW4uCgoyMDAwLTAyLTE0ICBGZXJuYW5kbyBOYXNzZXIgIDxmbmFzc2VyQHRvdGVtLnRvLmN5Z251cy5jb20+CgoJKiBiaW51dGlscy50ZXhpOiBEb2N1bWVudCB0aGUgY2hhbmdlIG9mIGZsYXZvciBuYW1lIGZyb20gYXRwY3Mtc3BlY2lhbAoJdG8gc3BlY2lhbC1hdHBjcyB0byBwcmV2ZW50IG5hbWUgY29uZmxpY3QgaW4gZ2RiLgoKMjAwMC0wMi0wOCAgVGltb3RoeSBXYWxsICA8dHdhbGxAcmVkaGF0LmNvbT4KCgkqIG9iamR1bXAuYyAoc2hvd19saW5lKTogRml4IGJ1ZyBwcmV2ZW50aW5nIHByaW50aW5nIG9mIHRoZSB2ZXJ5CglmaXJzdCBsaW5lIChsaW5lIHplcm8pIG9mIGEgZmlsZSB3aGVuIGludGVybGlzdGluZyBzb3VyY2UgYW5kCglhc3NlbWJseS4gIEFkZGVkIG9wdGlvbiB0byBwcmludCBlbnRpcmUgY29udGV4dCBmcm9tIHN0YXJ0IG9mIGZpbGUKCXdoZW4gdGhlIGZpcnN0IGxpbmUgZnJvbSB0aGF0IGZpbGUgaXMgZW5jb3VudGVyZWQuCgoyMDAwLTAyLTAzICBUaW1vdGh5IFdhbGwgPHR3YWxsQHJlZGhhdC5jb20+CgoJKiBvYmpkdW1wLmMgKGR1bXBfc2VjdGlvbl9oZWFkZXIsIGZpbmRfc3ltYm9sX2Zvcl9hZGRyZXNzLAoJc2hvd19saW5lLCBkaXNhc3NlbWJsZV9ieXRlcywgZGlzYXNzZW1ibGVfZGF0YSwgZHVtcF9kYXRhKToKCWRpc3Rpbmd1aXNoIGJldHdlZW4gb2N0ZXRzIGFuZCBieXRlcy4KCjIwMDAtMDEtMjcgIFRob21hcyBkZSBMZWxsaXMgIDx0ZGVsQHdpbmRyaXZlci5jb20+CgoJKiBubS5jIChwcmludF9zeW1ib2xfaW5mb19ic2QpOiBVc2UgYmZkX2lzX3VuZGVmaW5lZF9zeW1jbGFzcyB0bwoJY2hlY2sgdG8gdW5yZXNvbHZlZCBzeW1ib2xzLgoJKHByaW50X3N5bWJvbF9pbmZvX3N5c3YpOiAgRGl0dG8uCgkocHJpbnRfc3ltYm9sX2luZm9fcG9zaXgpOiAgRGl0dG8uCgoJKiBiaW51dGlscy50ZXhpOiBEb2N1bWVudCBuZXcgJ1YnIHN5bWNsYXNzIGZsYWcgZm9yIG5tLgoKMjAwMC0wMS0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGJpbnV0aWxzLnRleGkgKG9iamR1bXApOiBEb2N1bWVudCBuZXcgQVJNIHNwZWNpZmljCglkaXNhc3NlbWJsZXIgb3B0aW9ucy4KCgkqIG9iamR1bXAuYyAodXNhZ2UpOiBDYWxsIGRpc2Fzc2VtYmxlcl91c2FnZSgpLgoKMjAwMC0wMS0yNyAgQWxhbiBNb2RyYSAgPGFsYW5Ac3ByaS5sZXZlbHMudW5pc2EuZWR1LmF1PgoKCSogcmVhZGVsZi5jIChnZXRfZHluYW1pY19mbGFncyk6IFJldHVybiBidWZmLgoJKHByb2Nlc3NfZHluYW1pY19zZWdtZW50KTogRG9uJ3QgcGFzcyBlcnJvciBzdHJpbmdzIHRvIHByaW50ZgoJYXMgZm9ybWF0IGFyZy4KCShyZWFkX2FuZF9kaXNwbGF5X2F0dHIpOiBVc2UgbHggYW5kIGxkIHRvIHByaW50IGxvbmdzLgoJKHByb2Nlc3NfY29yZWZpbGVfbm90ZV9zZWdtZW50KTogQ2FzdCBiZmRfdm1hIHRvIHVuc2lnbmVkIGxvbmcKCWJlZm9yZSBwcmludGluZy4KCVVwZGF0ZSBjb3B5cmlnaHQuCgoyMDAwLTAxLTE3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogcmVhZGVsZi5jIChnZXRfb3NhYmlfbmFtZSk6IFJlY29nbmlzZSBFTEZPU0FCSV9BUk0uCgoyMDAwLTAxLTE1ICBBbGFuIE1vZHJhICA8YWxhbkBzcHJpLmxldmVscy51bmlzYS5lZHUuYXU+CgoJKiBkZWJ1Zy5jIChkZWJ1Z19uYW1lX3R5cGUpOiBSZXR1cm4gREVCVUdfVFlQRV9OVUxMIHJhdGhlciB0aGFuCglmYWxzZS4KCShkZWJ1Z190YWdfdHlwZSk6IEhlcmUgdG9vLgoJKiBpZWVlLmMgKGllZWVfYnVpbHRpbl90eXBlKTogQW5kIGhlcmUuCgkqIHN0YWJzLmMgKHBhcnNlX3N0YWJfdHlwZSwgcGFyc2Vfc3RhYl9hcnJheV90eXBlKTogQW5kIGhlcmUuCgoyMDAwLTAxLTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogcmVhZGVsZi5jIChnZXRfbWFjaGluZV9uYW1lKTogQ2hhbmdlIEVNX1MzNzAgdG8gcmV0dXJuICJJQk0KCVN5c3RlbS8zNzAiLgoKMjAwMC0wMS0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIHJlYWRlbGYuYyAoZ2V0X2R5bmFtaWNfdHlwZSk6IFJlbW92ZSBEVF9FTkNPRElORy4KCjIwMDAtMDEtMTAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiByZWFkZWxmLmMgKGdldF9ub3RlX3R5cGUpOiBEaXNwbGF5IE5UX1dJTjMyUFNUQVRVUyBub3Rlcy4KCjIwMDAtMDEtMDcgIE11bWl0IEtoYW4gIDxraGFuQHhyYXlsaXRoLndpc2MuZWR1PgoKCSogd2luZHJlcy5jIChsb25nX29wdGlvbnMpOiBBZGQgLS11c2UtdGVtcC1maWxlIGFuZAoJLS1uby11c2UtdGVtcC1maWxlIG9wdGlvbnMuCgkodXNhZ2UpOiBEb2N1bWVudC4KCShtYWluKTogSGFuZGxlLgoKCSogd2luZHJlcy5oOiBVcGRhdGUgcmVhZF9yY19maWxlIHByb3RvdHlwZS4KCgkqIHJlc3JjLmMgKGNwcF90ZW1wX2ZpbGUpOiBOZXcgc3RhdGljIHZhcmlhYmxlLgoJKGlzdHJlYW1fdHlwZSk6IE5ldyBzdGF0aWMgdmFyaWFibGUuCgkoY2xvc2VfcGlwZSk6IERlbGV0ZSBmdW5jdGlvbi4KCShydW5fY21kKTogTmV3IHN0YXRpYyBmdW5jdGlvbi4KCShvcGVuX2lucHV0X3N0cmVhbSk6IE5ldyBzdGF0aWMgZnVuY3Rpb24uCgkoY2xvc2VfaW5wdXRfc3RyZWFtKTogTmV3IHN0YXRpYyBmdW5jdGlvbi4KCShsb29rX2Zvcl9kZWZhdWx0KTogSGFuZGxlIERPUyBkaXJlY3Rvcnkgc2VwYXJhdG9yLiBVc2UKCW9wZW5faW5wdXRfc3RyZWFtIGluc3RlYWQgb2YgcG9wZW4uCgkocmVhZF9yY19maWxlKTogTGlrZXdpc2UuCgoJKiBiaW51dGlscy50ZXhpOiBEb2N1bWVudCAtLXVzZS10ZW1wLWZpbGUsIC0tbm8tdXNlLXRlbXAtZmlsZQoJb3B0aW9ucy4KCjIwMDAtMDEtMDQgIE11bWl0IEtoYW4gIDxraGFuQHhyYXlsaXRoLndpc2MuZWR1PgoKCSogZGxsdG9vbC5jIChjcmVhdGVfY29tcGF0X2ltcGxpYik6IE5ldyB2YXJpYWJsZS4KCShnZW5fZXhwX2ZpbGUpOiBVc2UuCgkobWFrZV9vbmVfbGliX2ZpbGUpOiBVc2UuCgkobG9uZ19vcHRpb25zKTogQWRkIC0tY29tcGF0LWltcGxpYiBvcHRpb24uCgkodXNhZ2UpOiBIYW5kbGUuCgkobWFpbik6IEhhbmRsZS4KCgkqIGRsbHdyYXAuYyAoZW51bSB0YXJnZXRfdHlwZSk6IFJlbmFtZSBNSU5HVzMyX1RBUkdFVCB0byBNSU5HV19UQVJHRVQuCgkobWFpbik6IFVzZS4gRG9uJ3QgbG9vayBmb3IgIjMyIiBpbiBjeWd3aW4gYW5kIG1pbmd3IHRhcmdldCBuYW1lcy4KCjIwMDAtMDEtMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBiaW51dGlscy50ZXhpOiBEb2N1bWVudCBuZXcsIEFSTSBzcGVjaWZpYyBkaXNhc3NlbWJsZXIKCWNvbW1hbmQgbGluZSBzd2l0Y2ggIi1NIGZvcmNlLXRodW1iIi4KCkZvciBvbGRlciBjaGFuZ2VzIHNlZSBDaGFuZ2VMb2ctOTg5OQoMCkxvY2FsIFZhcmlhYmxlczoKbW9kZTogY2hhbmdlLWxvZwpsZWZ0LW1hcmdpbjogOApmaWxsLWNvbHVtbjogNzQKdmVyc2lvbi1jb250cm9sOiBuZXZlcgpFbmQ6Cg==