MjAwOC0wNi0wOSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgliZmQvCgkqIGVsZjMyLWFybS5jIChlbGYzMl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEFsbG93IEJFOCBzaGFyZWQKCWxpYnJhcmllcy4KCjIwMDgtMDYtMDkgIENocmlzdG9waGUgTHlvbiAgPGNocmlzdG9waGUubHlvbkBzdC5jb20+CgoJKiBlbGYzMi1hcm0uYyAoYXJtX3N0dWJfaXNfdGh1bWIpOiBEZWZpbmUuCgkoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBIYW5kbGUgbmVhciBtb2RlIHN3aXRjaGluZyBzdHVicy4KCjIwMDgtMDYtMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1zcHUuYyAoc3B1X2VsZl9hdXRvX292ZXJsYXkpOiBBZGQgdmFsaWQgYXJlYSBiZWxvdyBzcAoJdG8gc3RhY2sgY2FsY3VsYXRpb24uCgoyMDA4LTA2LTA2ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCWJmZC8KCSogZWxmMzItYXJtLmMgKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogUmVqZWN0IEJFOCBpbnB1dC4KCjIwMDgtMDYtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1zcHUuYyAoc3B1X2VsZl9hdXRvX292ZXJsYXkpOiBSZWxheCByZXF1aXJlbWVudCB0aGF0CglmaWxlIG5hbWVzIGJlIHVuaXF1ZS4gIFNwZWNpZnkgYXJjaGl2ZTpwYXRoIGluIG92ZXJsYXkgc2NyaXB0LgoKMjAwOC0wNi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiBsZC82NTkwCgkqIGVsZjY0LXBwYy5jIChwcGNfYnVpbGRfb25lX3N0dWIpOiBDb3JyZWN0IHJlbG9jIG9mZnNldHMuCgoyMDA4LTA2LTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLmMgKGlnbm9yZV9zZWN0aW9uX3N5bSk6IERvbid0IHRlc3Qgc2VjdGlvbiBzeW0gdmFsdWUgaGVyZS4KCShlbGZfbWFwX3N5bWJvbHMpOiBJbnN0ZWFkIGNoZWNrIHplcm8gdmFsdWUgaGVyZSBhcyB3YXMgZG9uZSBwcmlvcgoJdG8gMjAwNi0wNS0yNiBjaGFuZ2UuCgoyMDA4LTA2LTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIGxkLzYwMTkKCSogZWxmMzItYXZyLmMgKGVsZjMyX2F2cl9yZWxheF9zZWN0aW9uKTogSGFuZGxlIHRoZSBjYXNlIHdoZXJlCgl0aGVyZSBhcmUgbm8gbG9jYWwgc3ltYm9scy4KCjIwMDgtMDYtMDQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1zcHUuYyAoZ2V0X3N5bV9oKTogRG9uJ3QgYXR0ZW1wdCB0byByZWFkIGdsb2JhbCBzeW1zLgoJKHByb2Nlc3Nfc3R1YnMpOiBMaWtld2lzZS4KCShkaXNjb3Zlcl9mdW5jdGlvbnMpOiBEb24ndCB1c2VkIGNhY2hlZCBzeW1ib2xzLgoJKG1heWJlX2luc2VydF9mdW5jdGlvbik6IENvcnJlY3QgY29uZGl0aW9uIHVuZGVyIHdoaWNoIGZ1bmN0aW9uCglhcnJheSBpcyByZWFsbG9jJ2QuCgkobWFya19mdW5jdGlvbnNfdmlhX3JlbG9jcyk6IERlbGV0ZSB1bnVzZWQgdmFyaWFibGUuCgoyMDA4LTA1LTMwICBGcmVkaWFubyBaaWdsaW8gIDxmcmVkaWFuby56aWdsaW9Adm9kYWZvbmUuY29tPgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgbGQvNjUxMQoJKiBlbGY2NC1ocHBhLmMgKGFsbG9jYXRlX2dsb2JhbF9kYXRhX29wZCk6IERlZmF1bHQgdG8gdXNpbmcgdGhlCglkeW5hbWljIHN5bWJvbCB0YWJsZSBmb3IgbG9jYWwgZnVuY3Rpb24gbmFtZXMgaW4gc2hhcmVkIGxpYnJhcmllcy4KCjIwMDgtMDUtMjkgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChhc3NpZ25fZmlsZV9wb3NpdGlvbnNfZm9yX2xvYWRfc2VjdGlvbnMpOiBBZGp1c3QgcHJlLXNlY3Rpb24KCWdhcHMgYmFzZWQgb24gVk1BIGFuZCBQX1ZBRERSIGluc3RlYWQgb2YgTE1BIGFuZCBQX1BBRERSIGFkZHJlc3Nlcy4KCjIwMDgtMDUtMjggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1zcHUuYyAoc3B1X2VsZl9vYmplY3RfcCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9vYmplY3RfcCk6IERlZmluZS4KCShidWlsZF9zdHViKTogQ29ycmVjdCBzZWNvbmQgd29yZCBvZiA4IGJ5dGUgb3ZlcmxheSBzdHVicy4KCShzcHVfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBGb3JtYXR0aW5nLgoKMjAwOC0wNS0yNCAgQ2FybG9zIEVkdWFyZG8gU2VvICA8Y3Nlb0BsaW51eC52bmV0LmlibS5jb20+CgoJKiBlbGYuYyAoZWxmY29yZV93cml0ZV9yZWdpc3Rlcl9ub3RlKTogTmV3IGZ1bmN0aW9uLgoJKiBlbGYtYmZkLmggKGVsZmNvcmVfd3JpdGVfcmVnaXN0ZXJfbm90ZSk6IE5ldyBwcm90b3R5cGUuCgoyMDA4LTA1LTIyICBDaHJpc3RvcGhlIEx5b24gIDxjaHJpc3RvcGhlLmx5b25Ac3QuY29tPgoKCSogZWxmMzItYXJtLmMgKGFybV90eXBlX29mX3N0dWIpOiBJZ25vcmUgU1RUX1NFQ1RJT04gc3ltYm9scy4KCShlbGYzMl9hcm1fc3R1Yl9hZGRfbWFwcGluZ19zeW1ib2wpOiBSZW1vdmUuCgkoZWxmMzJfYXJtX2FkZF9zdHViKTogRG9uJ3QgZ2VuZXJhdGUgbWFwcGluZyBzeW1ib2xzLiBDaGFuZ2UKCXByb3RvdHlwZS4KCShlbGYzMl9hcm1fc2l6ZV9zdHVicyk6IFVzZSBuZXcgZWxmMzJfYXJtX2FkZF9zdHViCglwcm90b3R5cGUuIERvbid0IGdlbmVyYXRlIHRodW1iIHRvIGFybSBnbHVlIGZvciBjYWxscy4KCShhcm1fbWFwX29uZV9zdHViKTogRGVmaW5lLgoJKGVsZjMyX2FybV9vdXRwdXRfYXJjaF9sb2NhbF9zeW1zKTogR2VuZXJhdGUgbWFwcGluZyBzeW1ib2xzIGZvcgoJbG9uZyBjYWxscyBzdHVicy4KCQoyMDA4LTA1LTIxICBNYXhpbSBLdXZ5cmtvdiAgPG1heGltQGNvZGVzb3VyY2VyeS5jb20+CgkKCUFkZCBtdWx0aS1HT1Qgc3VwcG9ydCBmb3IgbTY4ay4KCSogZWxmMzItbTY4ay5jIChzdHJ1Y3QgZWxmX202OGtfbGlua19oYXNoX2VudHJ5OiBnb3RfZW50cnlfa2V5LAoJZ2xpc3QpOiBOZXcgZmllbGRzLgoJKHN0cnVjdCBlbGZfbTY4a19nb3RfZW50cnlfa2V5LCBzdHJ1Y3QgZWxmX202OGtfZ290X2VudHJ5LAoJc3RydWN0IGVsZl9tNjhrX2dvdCwgc3RydWN0IGVsZl9tNjhrX2JmZDJnb3RfZW50cnksCglzdHJ1Y3QgZWxmX202OGtfbXVsdGlfZ290KTogTmV3IGRhdGEgc3RydWN0dXJlcy4KCShzdHJ1Y3QgZWxmX202OGtfbGlua19oYXNoX3RhYmxlOiBsb2NhbF9ncF9wLCB1c2VfbmVnX2dvdF9vZmZzZXRzX3AsCglhbGxvd19tdWx0aWdvdF9wLCBtdWx0aV9nb3RfKTogTmV3IGZpZWxkcy4KCShlbGZfbTY4a19tdWx0aV9nb3QpOiBOZXcgbWFjcm8uCgkoZWxmX202OGtfbGlua19oYXNoX25ld2Z1bmMpOiBJbml0aWFsaXplIG5ldyBmaWVsZHMgb2YKCXN0cnVjdCBlbGZfbTY4a19saW5rX2hhc2hfZW50cnkuCgkoZWxmX202OGtfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXRpYWxpemUgbmV3IGZpZWxkcyBvZgoJc3RydWN0IGVsZl9tNjhrX2xpbmtfaGFzaF90YWJsZS4KCShlbGZfbTY4a19saW5rX2hhc2hfdGFibGVfZnJlZSk6IE5ldyBzdGF0aWMgZnVuY3Rpb24gaW1wbGVtZW50aW5nIGhvb2suCgkoZWxmX202OGtfaW5pdF9nb3QsIGVsZl9tNjhrX2NsZWFyX2dvdCwgZWxmX202OGtfY3JlYXRlX2VtcHR5X2dvdCk6IE5ldwoJc3RhdGljIGZ1bmN0aW9ucyBmb3Igc3RydWN0IGVsZl9tNjhrX2dvdC4JCgkoZWxmX202OGtfaW5pdF9nb3RfZW50cnlfa2V5LCBlbGZfbTY4a19nb3RfZW50cnlfaGFzaCwKCWVsZl9tNjhrX2dvdF9lbnRyeV9lcSk6IE5ldyBzdGF0aWMgZnVuY3Rpb25zIGZvcgoJc3RydWN0IGVsZl9tNjhrX2dvdF9lbnRyeS4KCShFTEZfTTY4S19SRUxfOE9fTUFYX05fRU5UUklFU19JTl9HT1QsCglFTEZfTTY4S19SRUxfOE9fMTZPX01BWF9OX0VOVFJJRVNfSU5fR09UKTogTmV3IG1hY3Jvcy4KCShlbnVtIGVsZl9tNjhrX2dldF9lbnRyeV9ob3d0byk6IE5ldyBlbnVtLgoJKGVsZl9tNjhrX2dldF9nb3RfZW50cnksIGVsZl9tNjhrX3VwZGF0ZV9nb3RfZW50cnlfdHlwZSwKCWVsZl9tNjhrX3JlbW92ZV9nb3RfZW50cnlfdHlwZSk6IE5ldyBzdGF0aWMgZnVuY3Rpb25zIGZvcgoJc3RydWN0IGVsZl9tNjhrX2dvdF9lbnRyeS4KCShlbGZfbTY4a19hZGRfZW50cnlfdG9fZ290KTogTmV3IHN0YXRpYyBmdW5jdGlvbi4KCShlbGZfbTY4a19iZmQyZ290X2VudHJ5X2hhc2gsIGVsZl9tNjhrX2JmZDJnb3RfZW50cnlfZXEsCgllbGZfbTY4a19iZmQyZ290X2VudHJ5X2RlbCwgZWxmX202OGtfZ2V0X2JmZDJnb3RfZW50cnkpOiBOZXcgc3RhdGljCglmdW5jdGlvbnMgZm9yIHN0cnVjdCBlbGZfbTY4a19iZmQyZ290X2VudHJ5LgoJKHN0cnVjdCBlbGZfbTY4a19jYW5fbWVyZ2VfZ290c19hcmcsIGVsZl9tNjhrX2Nhbl9tZXJnZV9nb3RzXzEsCgllbGZfbTY4a19jYW5fbWVyZ2VfZ290cyk6IE5ldyB0cmF2ZXJzYWwuCgkoc3RydWN0IGVsZl9tNjhrX21lcmdlX2dvdHNfYXJnLCBlbGZfbTY4a19tZXJnZV9nb3RzXzEsCgllbGZfbTY4a19tZXJnZV9nb3RzKTogRGl0dG8uCgkoc3RydWN0IGVsZl9tNjhrX2ZpbmFsaXplX2dvdF9vZmZzZXRzX2FyZywKCWVsZl9tNjhrX2ZpbmFsaXplX2dvdF9vZmZzZXRzXzEsIGVsZl9tNjhrX2ZpbmFsaXplX2dvdF9vZmZzZXRzKTogRGl0dG8uCgkoc3RydWN0IGVsZl9tNjhrX3BhcnRpdGlvbl9tdWx0aV9nb3RfYXJnLAoJZWxmX202OGtfcGFydGl0aW9uX211bHRpX2dvdF8xLCBlbGZfbTY4a19pbml0X3N5bW5keDJoXzEsCgllbGZfbTY4a19wYXJ0aXRpb25fbXVsdGlfZ290KTogRGl0dG8uCgkoZWxmX202OGtfZmluZF9nb3RfZW50cnlfcHRyLCBlbGZfbTY4a19yZW1vdmVfZ290X2VudHJ5KTogTmV3IHN0YXRpYwoJZnVuY3Rpb25zLgoJKGVsZl9tNjhrX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTmV3IHN0YXRpYyBmdW5jdGlvbiBpbXBsZW1lbnRpbmcKCWEgaG9vay4KCShlbGZfbTY4a19jaGVja19yZWxvY3MpOiBVcGRhdGUgdG8gYWRkIGVudHJpZXMgdG8gbXVsdGktR09ULgoJKGVsZl9tNjhrX2djX3N3ZWVwX2hvb2spOiBVcGRhdGUgdG8gcmVtb3ZlIGVudHJpZXMgZnJvbSBtdWx0aS1HT1QuCgkoZWxmX202OGtfYWx3YXlzX3NpemVfc2VjdGlvbnMpOiBBc3NpZ24gQkZEcyB0byBHT1RzLgoJKGVsZl9tNjhrX3JlbG9jYXRlX3NlY3Rpb24pOiBVcGRhdGUgdG8gcHJvcGVybHkgaGFuZGxlIEdPVCByZWxvY2F0aW9ucy4KCShlbGZfbTY4a19maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVcGRhdGUgdG8gdHJhdmVyc2UgYWxsIEdPVCBlbnRyaWVzCglvZiBhIGdsb2JhbCBzeW1ib2wuCgkoYmZkX2VsZl9tNjhrX3NldF90YXJnZXRfb3B0aW9ucyk6IE5ldyBmdW5jdGlvbi4KCShiZmRfZWxmMzJfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lIGhvb2suCgkoYmZkX2VsZjMyX2JmZF9maW5hbF9saW5rKTogQ2hhbmdlIGV4cGFuc2lvbiB0byBiZmRfZWxmX2ZpbmFsX2xpbmsKCXRvIHNraXAgZ2VuZXJpYyBjYWxjdWxhdGlvbiBvZiBHT1Qgb2Zmc2V0cy4KCShlbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERlZmluZSBob29rLgoJKiBiZmQtaW4uaCAoYmZkX2VsZl9tNjhrX3NldF90YXJnZXRfb3B0aW9ucyk6IERlY2xhcmUgZnVuY3Rpb24uCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDgtMDUtMjEgIEFuZHLpIEpvaGFuc2VuICA8YW5kcmVqb2hAZ21haWwuY29tPgoKCVBSIDg2OAoJKiBkd2FyZjIuYyAoX2JmZF9kd2FyZjJfY2xlYW51cF9kZWJ1Z19pbmZvKTogRnJlZSBtZW1vcnkgYWxsb2NhdGVkCglmb3IgZmlsZW5hbWVzIGluIGZ1bmN0aW9uIHRhYmxlcyBhbmQgdmFyaWFibGUgdGFibGVzLgoKMjAwOC0wNS0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiAyOTk1LCBQUiA2NDczCgkqIGVsZi5jIChfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogTGVhdmUgbG1hIGVxdWFsIHRvCgl2bWEgd2hlbiBhbGwgcF9wYWRkciBmaWVsZHMgYXJlIHplcm8gYW5kIHRoZXJlIGlzIG1vcmUgdGhhbgoJb25lIFBUX0xPQUQgaGVhZGVyLgoKMjAwOC0wNS0xNSAgQ2hyaXN0b3BoZSBMeW9uICA8Y2hyaXN0b3BoZS5seW9uQHN0LmNvbT4KCglBZGQgbG9uZyBjYWxsIHN1cHBvcnQgZm9yIEFSTS4KCSogZWxmMzItYXJtLmMgKFRITTJfTUFYX0ZXRF9CUkFOQ0hfT0ZGU0VUKTogRGVmaW5lLgoJKFRITTJfTUFYX0JXRF9CUkFOQ0hfT0ZGU0VUKTogRGVmaW5lLgoJKEFSTV9NQVhfRldEX0JSQU5DSF9PRkZTRVQpOiBEZWZpbmUuCgkoQVJNX01BWF9CV0RfQlJBTkNIX09GRlNFVCk6IERlZmluZS4KCShUSE1fTUFYX0ZXRF9CUkFOQ0hfT0ZGU0VUKTogRGVmaW5lLgoJKFRITV9NQVhfQldEX0JSQU5DSF9PRkZTRVQpOiBEZWZpbmUuCgkoYXJtX2xvbmdfYnJhbmNoX3N0dWIpOiBEZWZpbmUuCgkoYXJtX3BpY19sb25nX2JyYW5jaF9zdHViKTogRGVmaW5lLgoJKGFybV90aHVtYl92NHRfbG9uZ19icmFuY2hfc3R1Yik6IERlZmluZS4KCShhcm1fdGh1bWJfdGh1bWJfbG9uZ19icmFuY2hfc3R1Yik6IERlZmluZS4KCShhcm1fdGh1bWJfYXJtX3Y0dF9sb25nX2JyYW5jaF9zdHViKTogRGVmaW5lLgoJKFNUVUJfU1VGRklYKTogRGVmaW5lLgoJKGVsZjMyX2FybV9zdHViX3R5cGUpOiBEZWZpbmUuCgkoZWxmMzJfYXJtX3N0dWJfaGFzaF9lbnRyeSk6IERlZmluZS4KCShlbGYzMl9hcm1fbGlua19oYXNoX2VudHJ5KTogQWRkIHN0dWJfY2FjaGUgZmllbGQuCgkoYXJtX3N0dWJfaGFzaF9sb29rdXApOiBEZWZpbmUuCgkoZWxmMzJfYXJtX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBzdHViX2hhc2hfdGFibGUsIHN0dWJfYmZkLAoJYWRkX3N0dWJfc2VjdGlvbiwgbGF5b3V0X3NlY3Rpb25zX2FnYWluLCBzdHViX2dyb3VwLCBiZmRfY291bnQsCgl0b3BfaW5kZXgsIGlucHV0X2xpc3QgZmllbGRzLgoJKGVsZjMyX2FybV9saW5rX2hhc2hfbmV3ZnVuYyk6IEluaXQgbmV3IGZpZWxkLgoJKHN0dWJfaGFzaF9uZXdmdW5jKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2FybV9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCBzdHViX2hhc2hfdGFibGUuCgkoZWxmMzJfYXJtX2hhc2hfdGFibGVfZnJlZSk6IE5ldyBmdW5jdGlvbi4KCShhcm1fdHlwZV9vZl9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2FybV9zdHViX25hbWUpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfYXJtX2dldF9zdHViX2VudHJ5KTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2FybV9zdHViX2FkZF9tYXBwaW5nX3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9hcm1fYWRkX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkoYXJtX2J1aWxkX29uZV9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKGFybV9zaXplX29uZV9zdHViKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2FybV9zZXR1cF9zZWN0aW9uX2xpc3RzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2FybV9uZXh0X2lucHV0X3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24uCgkoZ3JvdXBfc2VjdGlvbnMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfYXJtX3NpemVfc3R1YnMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfYXJtX2J1aWxkX3N0dWJzKTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9lbGYzMl9hcm1fYWRkX2dsdWVfc2VjdGlvbnNfdG9fYmZkKTogU2tpcCBzdHViIHNlY3Rpb25zLgoJKGJmZF9lbGYzMl9hcm1fcHJvY2Vzc19iZWZvcmVfYWxsb2NhdGlvbik6IE5vIGxvbmdlciBoYW5kbGUKCVJfQVJNX0NBTEwgYW5kIFJfQVJNX1RITV9DQUxMLgoJKHVzaW5nX3RodW1iX29ubHkpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBSZWRpcmVjdCBjYWxscyB0byBzdHViIGlmIHJhbmdlCglleGNlZWRzIGVuY29kaW5nIGNhcGFiaWxpdGllcy4KCShiZmRfZWxmMzJfYmZkX2xpbmtfaGFzaF90YWJsZV9mcmVlKTogRGVmaW5lLgoJKiBiZmQtaW4uaCAoUl9BUk1fbWF4KTogRml4IHZhbHVlIHRvIDEzMC4KCShlbGYzMl9hcm1fc2V0dXBfc2VjdGlvbl9saXN0cyk6IFByb3R5cGUuCgkoZWxmMzJfYXJtX25leHRfaW5wdXRfc2VjdGlvbik6IFByb3R5cGUuCgkoZWxmMzJfYXJtX3NpemVfc3R1YnMpOiBQcm90eXBlLgoJKGVsZjMyX2FybV9idWlsZF9zdHVicyk6IFByb3R5cGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDgtMDUtMTQgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2dldF9zeW50aGV0aWNfc3ltdGFiKTogRml4IG1lbXNldCBjYWxscy4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9nZXRfc3ludGhldGljX3N5bXRhYik6IExpa2V3aXNlLgoKMjAwOC0wNS0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA4LTA1LTE0ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgkgICAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChzZWN0aW9uX2NvdmVyc192bWEpOiBOZXcgZnVuY3Rpb24uCgkocHBjX2VsZl9nZXRfc3ludGhldGljX3N5bXRhYik6IE5ldyBmdW5jdGlvbi4KCShiZmRfZWxmMzJfZ2V0X3N5bnRoZXRpY19zeW10YWIpOiBEZWZpbmUuCgkqIGVsZjY0LXBwYy5jIChzZWN0aW9uX2NvdmVyc192bWEpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX2dldF9zeW50aGV0aWNfc3ltdGFiKTogR2VuZXJhdGUgc3ltQHBsdCBvbiBnbGluayBicmFuY2gKCXRhYmxlIGVudHJpZXMsIGFuZCBfX2dsaW5rX1BMVHJlc29sdmUgb24gcmVzb2x2ZXIgc3R1Yi4KCShwcGM2NF9lbGZfYnVpbGRfc3R1YnMpOiBSZW5hbWUgX19nbGluayBzeW0gdG8gX19nbGlua19QTFRyZXNvbHZlLgoKMjAwOC0wNS0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiA2NDQzCgkqIGVsZjMyLXBwYy5jIChNVVNUX0JFX0RZTl9SRUxPQyk6IERlbGV0ZS4KCShtdXN0X2JlX2R5bl9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KCShwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IERvbid0IHNldCBERl9TVEFUSUNfVExTIGZvciB0cHJlbCByZWxvY3MKCWluIHBpZXMuCgkocHBjX2VsZl90bHNfb3B0aW1pemUpOiBPcHRpbWlzZSBwaWVzLgoJKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBhIHNlY3Rpb24gc3ltYm9sIHJhdGhlciB0aGFuIG5vCglzeW1ib2wgaWYgcG9zc2libGUgZm9yIExELT5JRSBUTFMgc2VxdWVuY2UsIGJ1dCBkb24ndCBlcnJvciBpZgoJd2UgbXVzdCB1c2Ugbm8gc3ltYm9sLgoJKiBlbGY2NC1wcGMuYyAoTVVTVF9CRV9EWU5fUkVMT0MpOiBBcyBmb3IgZWxmMzItcHBjLmMuCgkobXVzdF9iZV9keW5fcmVsb2MpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX3Rsc19vcHRpbWl6ZSk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDA4LTA1LTEyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItc3B1LmMgKHNwdV9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFJlbmFtZSBpc19lYSB0byBpc19lYV9zeW0uCgoyMDA4LTA1LTEwICBQYXVsIFBsdXpobmlrb3YgIDxwcGx1emhuaWtvdkBnb29nbGUuY29tPgoKCSogZWxmY29yZS5oIChlbGZfY29yZV9maWxlX3ApOiBXYXJuIGFib3V0IGNvcmUgdHJ1bmNhdGlvbi4KCjIwMDgtMDUtMDcgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbGYzMi14dGVuc2EuYyAoeHRlbnNhX3Byb3BlcnR5X3NlY3Rpb25fbmFtZSk6IE5ldy4KCSh4dGVuc2FfbWFrZV9wcm9wZXJ0eV9zZWN0aW9uKTogTmV3LgoJKHh0ZW5zYV9nZXRfcHJvcGVydHlfc2VjdGlvbik6IE1ha2Ugc3RhdGljLiAgRG8gbm90IGNyZWF0ZSBhIG5ldwoJc2VjdGlvbiBpZiBpdCBkb2VzIG5vdCBleGlzdC4KCjIwMDgtMDUtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1zcHUuYyAoc3B1X2VsZl9zcGVjaWFsX3NlY3Rpb25zKTogQWRkICIuX2VhIi4KCShzcHVfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBIYW5kbGUgcmVsb2NhdGlvbnMgYWdhaW5zdCBzeW1ib2xzCglkZWZpbmVkIGluIC5fZWEgc3BlY2lhbGx5LgoKMjAwOC0wNS0wMyAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVsZjMyLWFybS5jIChlbGYzMl9hcm1fc3ltYmlhbl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogVXNlCglBUlJBWV9TSVpFLgoJKGVsZjMyX2FybV9zeW1iaWFuX3BsdF9zeW1fdmFsKTogTmV3LgoJKGVsZl9iYWNrZW5kX3BsdF9zeW1fdmFsKTogRGVmaW5lLgoKMjAwOC0wNS0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiAyOTk1LCBQUiA2NDczCgkqIGVsZi5jIChyZXdyaXRlX2VsZl9wcm9ncmFtX2hlYWRlcik6IFJhdGhlciB0aGFuIGNsZWFyaW5nCglwX3BhZGRyX3ZhbGlkIGF0IGVuZCwgZG9uJ3Qgc2V0IGl0IGluIHRoZSBmaXJzdCBwbGFjZS4gIERlbGV0ZQoJY29tbWVudCBubyBsb25nZXIgcmVsZXZhbnQuICBXaGVuIG5vdCBwX3BhZGRyX3ZhbGlkLCBkb24ndCBzZXQKCXBhZGRyIGZyb20gdmFkZHIsIGFuZCBkb24ndCBzZXQgcF92YWRkcl9vZmZzZXQuCgoyMDA4LTA1LTAxICBDYXJ5IENvdXRhbnQgIDxjY291dGFudEBnb29nbGUuY29tPgoKCSogZWxmLmMgKGJmZF9lbGZfZ2V0X3N0cl9zZWN0aW9uKTogRml4IG1lbW9yeSBsZWFrIGNhdXNlZCBieQoJY29ycnVwdCBzdHJpbmcgdGFibGUuCgoyMDA4LTA1LTAxICBKb2VsIEJyb2JlY2tlciAgPGJyb2JlY2tlckBhZGFjb3JlLmNvbT4KCgkqIGNhY2hlLmMgKGNhY2hlX2JyZWFkXzEpOiBSZW5hbWVzIGNhY2hlX2JyZWFkLgoJKGNhY2hlX2JyZWFkKTogTmV3IGZ1bmN0aW9uLgoKMjAwOC0wNS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiAyOTk1LCBQUiA2NDczCgkqIGVsZi5jIChfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogQWx3YXlzIHNldCBsbWEgZnJvbSBwX3BhZGRyLgoJKGFzc2lnbl9maWxlX3Bvc2l0aW9uc19mb3JfbG9hZF9zZWN0aW9ucyk6IENvbWJpbmUgbmVzdGVkICJpZiIuCgkoY29weV9lbGZfcHJvZ3JhbV9oZWFkZXIpOiBEb24ndCBzZXQgcF9wYWRkcl92YWxpZCBvciBwX3ZhZGRyX29mZnNldAoJd2hlbiBhbGwgaGVhZGVyIHBfcGFkZHIgZmllbGRzIGFyZSB6ZXJvLgoKMjAwOC0wNC0zMCAgRWRtYXIgV2llbnNrb3NraSAgPGVkbWFyQGZyZWVzY2FsZS5jb20+CgoJKiBjcHUtcG93ZXJwYy5jIChiZmRfcG93ZXJwY19hcmNocyk6IEFkZCBlNTAwbWMgZW50cnkuCgoyMDA4LTA0LTI5ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZWxmLmMgKF9iZmRfZWxmX2dldF9keW5hbWljX3JlbG9jX3VwcGVyX2JvdW5kKQoJKF9iZmRfZWxmX2Nhbm9uaWNhbGl6ZV9keW5hbWljX3JlbG9jKTogRmluZCBkeW5hbWljIHJlbG9jYXRpb25zCglldmVuIGlmIHRoZXkgYXJlIG5vdCBsb2FkZWQuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfaW5pdF8yX2luZGV4X3NlY3Rpb25zKTogU2V0IGRhdGFfaW5kZXhfc2VjdGlvbgoJZmlyc3QuCgoyMDA4LTA0LTI1ICBKYXkgRm9hZCAgPGpheS5mb2FkQGdtYWlsLmNvbT4KCgkqIHJlbG9jMTYuYyAoYmZkX2NvZmZfcmVsb2MxNl9nZXRfdmFsdWUpOiBBZGQgc3VwcG9ydCBmb3IKCXVuZGVmaW5lZCB3ZWFrIHN5bWJvbHMuCgoyMDA4LTA0LTI1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogcG8vdmkucG86IFVwZGF0ZWQgVmlldG5hbWVzZSB0cmFuc2xhdGlvbi4KCjIwMDgtMDQtMjMgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA4LTA0LTIxICBDYXJ5IENvdXRhbnQgIDxjY291dGFudEBnb29nbGUuY29tPgoKCSogYXJjaGl2ZS5jIChfYmZkX3dyaXRlX2FyY2hpdmVfY29udGVudHMpOiBGaXggaW5jb3JyZWN0IHVzZSBvZgoJQVJGTUFHLgoKMjAwOC0wNC0yMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9taXBzX3Z4d29ya3NfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QKCXNldCB0aGUgdmFsdWUgb2YgdW5kZWZpbmVkIHN5bWJvbHMgaW4gc2hhcmVkIG9iamVjdHMuCgkoX2JmZF9taXBzX3Z4d29ya3NfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogQ2xlYXIgdmFsdWUgZm9yCgl1bmRlZmluZWQgc3ltYm9scyB1bmxlc3MgcG9pbnRlciBlcXVhbGl0eSBpcyBuZWVkZWQuCgoyMDA4LTA0LTE4ICBEZW5uaXMgUm9iZXJ0cyAgPGRlbm5pcy5yb2JlcnRzQHN1bnF1ZXN0aW5mby5jb20+CgoJKiBhaXg1cHBjLWNvcmUuYzogRGVmaW5lIG1hY3JvcyBmb3IgdGhlIGRlZmF1bHQgYXJjaGl0ZWN0dXJlIGFuZAoJbWFjaGluZSBmb3IgbWF0Y2hpbmcgY29yZSBmaWxlcy4KCSh4Y29mZjY0X2NvcmVfcCk6IFNldCB0aGUgYXJjaGl0ZWN0dXJlIGFuZCBtYWNoaW5lIHRvIHRoZSBkZWZhdWx0Cgl2YWx1ZXMgZGVmaW5lZCBpbiB0aGUgbWFjcm9zIG1lbnRpb25lZCBhYm92ZS4KCSogcnM2MDAwLWNvcmUuYzogRGVmaW5lIG1hY3JvcyB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlCgljb3JlIGZpbGUgaGVhZGVyIHVzZXMgdGhlIGNvcmVfZHVtcHh4IGhlYWRlciBmb3JtYXQuCgkocnM2MDAwY29mZl9jb3JlX3ApOiBEb24ndCBtYXRjaCBjb3JlIGZpbGVzIHRoYXQgdXNlIHRoZQoJY29yZV9kdW1weHggaGVhZGVyIGZvcm1hdC4KCjIwMDgtMDQtMTYgIFBlZHJvIEFsdmVzICA8cGVkcm9AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy5iZmQgKGlbMy03XTg2LSotZGljb3MqLCB4ODZfNjQtKi1kaWNvcyopOiBBZGQuCgoyMDA4LTA0LTE2ICBEYXZpZCBTLiBNaWxsZXIgIDxkYXZlbUBkYXZlbWxvZnQubmV0PgoKCSogcmVsb2MuYyAoQkZEX1JFTE9DX1NQQVJDX0dPVERBVEFfSElYMjIsCglCRkRfUkVMT0NfU1BBUkNfR09UREFUQV9MT1gxMCwgQkZEX1JFTE9DX1NQQVJDX0dPVERBVEFfT1BfSElYMjIsCglCRkRfUkVMT0NfU1BBUkNfR09UREFUQV9PUF9MT1gxMCwgQkZEX1JFTE9DX1NQQVJDX0dPVERBVEFfT1ApOiBOZXcuCgkqIGxpYmJmZC5oOiBSZWduZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogZWxmeHgtc3BhcmMuYyAoX2JmZF9zcGFyY19lbGZfaG93dG9fdGFibGUpOiBBZGQgZW50cmllcyBmb3IKCUdPVERBVEEgcmVsb2NhdGlvbnMuCgkoc3BhcmNfcmVsb2NfbWFwKTogTGlrZXdpc2UuCgkoX2JmZF9zcGFyY19lbGZfY2hlY2tfcmVsb2NzKTogSGFuZGxlIFJfU1BBUkNfR09UREFUQV8qIGxpa2UKCVJfU1BBUkNfR09UKi4KCShfYmZkX3NwYXJjX2VsZl9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoX2JmZF9zcGFyY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFRyYW5zZm9ybSBSX1NQQVJDX0dPVERBVEFfSElYMjIsCglSX1NQQVJDX0dPVERBVEFfTE9YMTAsIFJfU1BBUkNfR09UREFUQV9PUF9ISVgyMiwgYW5kCglSX1NQQVJDX0dPVERBVEFfT1BfTE9YMTAgaW50byB0aGUgZXF1aXZhbGVudCBSX1NQQVJDX0dPVCogcmVsb2MuCglTaW1wbHkgaWdub3JlIFJfU1BBUkNfR09UREFUQV9PUCByZWxvY2F0aW9ucy4KCjIwMDgtMDQtMTQgIEF1cmVsaWVuIEphcm5vICA8YXVyZWxpZW5AYXVyZWwzMi5uZXQ+CgoJKiBjb25maWd1cmUuaW46IExpbmsgd2l0aCB0aGUgUElDIHZlcnNpb24gb2YgbGliaWJlcnR5IG9uCglMaW51eC9NSVBTIGhvc3RzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA4LTA0LTE0ICBFZG1hciBXaWVuc2tvc2tpICA8ZWRtYXJAZnJlZXNjYWxlLmNvbT4KCgkqIGFyY2h1cmVzLmM6IEFkZCBiZmRfbWFjaF9wcGNfZTUwMG1jLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDA4LTA0LTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItc3B1LmMgKHNwdV9lbGZfYnVpbGRfc3R1YnMpOiBDb3JyZWN0IGVycm9yIG1lc3NhZ2UuCgkobWFya19mdW5jdGlvbnNfdmlhX3JlbG9jcyk6IFJlbW92ZSBwcmVtYXR1cmUgaW5pdCBvZiBzeW10YWJfaGRyLgoJKGNvbGxlY3Rfb3ZlcmxheXMpOiBDb21tbWVudCB0eXBvIGZpeC4KCjIwMDgtMDQtMDggIEtlZXMgQ29vayAgPGtlZXNAY2Fub25pY2FsLmNvbT4KCgkqIGVsZmxpbmsuYyAoYmZkX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBJZ25vcmUgR05VLXN0YWNrIG5vdGUKCWluIEVYRUNfUCBiZmRzLgoKMjAwOC0wNC0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXNwdS5jOiBJbmNsdWRlIGxpYmliZXJ0eS5oLgoJKHN0cnVjdCBzcHVfbGlua19oYXNoX3RhYmxlKTogQWRkIGxvY2FsX3N0aXJlLCBvdmVybGF5X2ZpeGVkLCByZXNlcnZlZCwKCW5vbl9vdmx5X3N0dWIsIHNwdV9lbGZfbG9hZF9vdmxfbWdyLCBzcHVfZWxmX29wZW5fb3ZlcmxheV9zY3JpcHQsCglzcHVfZWxmX3JlbGluaywgYXV0b19vdmVybGF5IGZpZWxkcy4KCShBVVRPX09WRVJMQVksIEFVVE9fUkVMSU5LLCBPVkVSTEFZX1JPREFUQSk6IERlZmluZS4KCShuZWVkc19vdmxfc3R1Yik6IEZsaXAgdGVzdCBzbyB0aGF0IGNhbGwgdG8gbm9uLWZ1bmN0aW9uIHdhcm5pbmcKCWlzIGVtaXR0ZWQgZHVyaW5nIHJlbG9jYXRlX3NlY3Rpb24gcmF0aGVyIHRoYW4gZWFybGllci4KCShzcHVfZWxmX2NoZWNrX3ZtYSk6IFN0YXNoIC0tYXV0by1vdmVybGF5IHBhcmFtZXRlcnMsIGFuZCBjbGVhcgoJYXV0b19vdmVybGF5IGlmIG5vIHNlY3Rpb24gZXhjZWVkcyBsb2NhbCBzdG9yZS4KCShzdHJ1Y3QgY2FsbF9pbmZvKTogQWRkIGNvdW50LCBtYXhfZGVwdGgsIGlzX3Bhc3RlZCBmaWVsZHMuCgkoc3RydWN0IGZ1bmN0aW9uX2luZm8pOiBBZGQgcm9kYXRhLCBsYXN0X2NhbGxlciwgY2FsbF9jb3VudCwKCWRlcHRoLCBuZXcgdmlzaXQgZmxhZ3MuCgkoaW5zZXJ0X2NhbGxlZSk6IEluY3JlbWVudCBjYWxsIGNvdW50LgoJKGNvcHlfY2FsbGVlKTogTmV3IGZ1bmN0aW9uLgoJKG1hcmtfZnVuY3Rpb25zX3ZpYV9yZWxvY3MpOiBJbnZlc3RpZ2F0ZSBhbGwgcmVsb2MgdHlwZXMgdG8gY291bnQKCXBvc3NpYmxlIGZ1bmN0aW9uIHBvaW50ZXIgc3R1YnMgZm9yIC0tYXV0by1vdmVybGF5LiAgVHJhY2sKCWxhc3RfY2FsbGVyIGFuZCBpbmNyZW1lbnQgZnVuY3Rpb24gY2FsbF9jb3VudC4KCShwYXN0ZWRfZnVuY3Rpb24pOiBJbnNlcnQgYSAiY2FsbCIgaW50byBjYWxsIGluZm8gZm9yIHBhc3RlZCBzZWN0aW9uLgoJKHJlbW92ZV9jeWNsZXMpOiBUcmFjayBtYXggZGVwdGggb2YgY2FsbHMuICBEb24ndCBlbWl0IGNhbGwgZ3JhcGgKCXBydW5pbmcgd2FybmluZyBmb3IgLS1hdXRvLW92ZXJsYXkuCgkoYnVpbGRfY2FsbF90cmVlKTogRG9uJ3QgdHJhbnNmZXJfY2FsbHMgZm9yIC0tYXV0by1vdmVybGF5LgoJQWRqdXN0IHJlbW92ZV9jeWNsZXMgY2FsbC4KCShzb3J0X2NhbGxzLCBzb3J0X2xpYiwgc29ydF9iZmRzKTogTmV3IGZ1bmN0aW9ucy4KCShzdHJ1Y3QgX21vc19wYXJhbSwgc3RydWN0IF91b3NfcGFyYW0sIHN0cnVjdCBfY2xfcGFyYW0pOiBOZXcuCgkobWFya19vdmVybGF5X3NlY3Rpb24sIHVubWFya19vdmVybGF5X3NlY3Rpb24pOiBOZXcgZnVuY3Rpb25zLgoJKGNvbGxlY3RfbGliX3NlY3Rpb3MsIGF1dG9fb3ZsX2xpYl9mdW5jdGlvbnMpOiBOZXcgZnVuY3Rpb25zLgoJKGNvbGxlY3Rfb3ZlcmxheXMsIGZpbmRfcGFzdGVkX2NhbGwpOiBOZXcgZnVuY3Rpb25zLgoJKHN1bV9zdGFjayk6IERlYWwgd2l0aCBpc19wYXN0ZWQgImNhbGxzIi4gIEV4aXQgYmVmb3JlIHByaW50aW5nCgl3aGVuIC0tYXV0by1vdmVybGF5LgoJKHNwdV9lbGZfYXV0b19vdmVybGF5KTogTmV3IGZ1bmN0aW9uLgoJKHNwdV9lbGZfZmluYWxfbGluayk6IENhbGwgc3B1X2VsZl9hdXRvX292ZXJsYXkuCgkqIGVsZjMyLXNwdS5oIChzcHVfZWxmX2NoZWNrX3ZtYSk6IFVwZGF0ZSBwcm90b3R5cGUuCgoyMDA4LTA0LTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItc3B1LmMgKGFsbG9jYXRlX3NwdWVhcl9zdHVicyk6IEVuc3VyZSBfU1BVRUFSXyBzeW1ib2wKCWlzIGRlZmluZWQgaW4gb3ZlcmxheSBzZWN0aW9uIGJlZm9yZSBjcmVhdGluZyBhIHN0dWIuCgkoYnVpbGRfc3B1ZWFyX3N0dWJzKTogTGlrZXdpc2UuCgkoc3B1X2VsZl9zaXplX3N0dWJzLCBzcHVfZWxmX2J1aWxkX3N0dWJzKTogQWRqdXN0IGNhbGxzLgoKMjAwOC0wNC0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXNwdS5jIChpbnNlcnRfY2FsbGVlKTogUmVvcmRlciBjYWxsIGxpc3Qgc28gbW9zdCByZWNlbnQKCWNhbGwgaXMgYWx3YXlzIGZpcnN0LgoJKGludGVyZXN0aW5nX3NlY3Rpb24pOiBNb3ZlLgoJKG1hcmtfZnVuY3Rpb25zX3ZpYV9yZWxvY3MpOiBGb2xkIGludGVyZXN0aW5nX3NlY3Rpb24gYW5kCglyZWxvY19jb3VudCB0ZXN0cyBpbiBjYWxsZXJzIHRvIGhlcmUuICBTaW1wbGlmeSBvdXRwdXQgc2VjdGlvbgoJb3duZXIgdGVzdC4KCShkaXNjb3Zlcl9mdW5jdGlvbnMpOiBTZXQgImdhcHMiIHdoZW4gbm8gc3ltYm9scyBhbmQgc29tZQoJImludGVyZXN0aW5nX3NlY3Rpb24iLiAgUnVuIHBhc3RlZF9mdW5jdGlvbiBsb29wIGZvciBubyBzeW1ib2wKCWJmZHMuCgkoZm9yX2VhY2hfbm9kZSwgdHJhbnNmZXJfY2FsbHMpOiBOZXcgZnVuY3Rpb25zLgoJKG1hcmtfbm9uX3Jvb3QpOiBBZGp1c3QgdG8gc3VpdCBmb3JfZWFjaF9ub2RlLgoJKGNhbGxfZ3JhcGhfdHJhdmVyc2UpOiBMaWtld2lzZS4gIEZpeCBtZW1vcnkgbGVhay4gIFJlbmFtZSB0by4uCgkocmVtb3ZlX2N5Y2xlcyk6IC4udGhpcy4KCShidWlsZF9jYWxsX3RyZWUpOiBVc2UgZm9yX2VhY2hfbm9kZSBhbmQgdHJhbnNmZXJfY2FsbHMuCgkoc3RydWN0IF9zdW1fc3RhY2tfcGFyYW0pOiBOZXcuCgkoc3VtX3N0YWNrKTogQWRqdXN0IHRvIHN1aXQgZm9yX2VhY2hfbm9kZS4gIFJldHVybiBlcnJvciBvbgoJbWFsbG9jIGZhaWx1cmUuICBNb3ZlIGNvZGUgdG8gcHJpbnQgcm9vdCBub2RlIGN1bXVsYXRpdmUgc3RhY2sgZnJvbS4uCgkoc3B1X2VsZl9zdGFja19hbmFseXNpcyk6IC4uaGVyZS4gIFVzZSBmb3JfZWFjaF9ub2RlLgoKMjAwOC0wMy0zMSAgQ2FyeSBDb3V0YW50ICA8Y2NvdXRhbnRAZ29vZ2xlLmNvbT4KCglQUiA2MDA2CgkqIGFyY2hpdmUuYyAoX2JmZF9zbHVycF9leHRlbmRlZF9uYW1lX3RhYmxlKTogQ2hhbmdlCglBUkZNQUdbMF0gdG8gQVJGTUFHWzFdLgoJKF9iZmRfY29uc3RydWN0X2V4dGVuZGVkX25hbWVfdGFibGUpOiBMaWtld2lzZS4KCjIwMDgtMDMtMzEgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlbGZ4eC1taXBzLmMgKG1pcHNfZWxmX3JlY29yZF9nb3RfcGFnZV9lbnRyeSk6IFVwZGF0ZSBjb21tZW50LgoJKF9iZmRfbWlwc19lbGZfY2hlY2tfcmVsb2NzKTogVXBkYXRlIGNvbW1lbnRzLiAgQWx3YXlzIGNhbGwKCW1pcHNfZWxmX3JlY29yZF9nb3RfcGFnZV9lbnRyeSBmb3IgUl9NSVBTX0dPVF9QQUdFLgoKMjAwOC0wMy0yNyAgQ2FyeSBDb3V0YW50ICA8Y2NvdXRhbnRAZ29vZ2xlLmNvbT4KCglBZGQgc3VwcG9ydCBmb3IgdGhpbiBhcmNoaXZlcy4KCSogYXJjaGl2ZS5jIChfYmZkX2ZpbmRfbmVzdGVkX2FyY2hpdmUpOiBOZXcgZnVuY3Rpb24uCgkoZ2V0X2V4dGVuZGVkX2FyZWx0X2ZpbGVuYW1lKTogQWRkIG9yaWdpbiBwYXJhbWV0ZXIuCgkoX2JmZF9nZW5lcmljX3JlYWRfYXJfaGRyX21hZyk6IERlYWwgd2l0aCBleHRlbmRlZCBuYW1lCgljb21iaW5lZCB3aXRoIGEgZmlsZSBvZmZzZXQuCgkoYXBwZW5kX3JlbGF0aXZlX3BhdGgpOiBOZXcgZnVuY3Rpb24uCgkoX2JmZF9nZXRfZWx0X2F0X2ZpbGVwb3MpOiBEZWFsIHdpdGggZXh0ZXJuYWwgbWVtYmVycyBhbmQKCW5lc3RlZCBhcmNoaXZlcy4KCShiZmRfZ2VuZXJpY19vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUpOiBUaGluIGFyY2hpdmVzLgoJKGJmZF9nZW5lcmljX2FyY2hpdmVfcCk6IFJlY29nbml6ZSBuZXcgbWFnaWMgc3RyaW5nLgoJKGFkanVzdF9yZWxhdGl2ZV9wYXRoKTogTmV3IGZ1bmN0aW9uLgoJKF9iZmRfY29uc3RydWN0X2V4dGVuZGVkX25hbWVfdGFibGUpOiBDb25zdHJ1Y3QgZXh0ZW5kZWQKCW5hbWVzIGZvciB0aGluIGFyY2hpdmUgbWVtYmVycy4KCShfYmZkX3dyaXRlX2FyY2hpdmVfY29udGVudHMpOiBFbWl0IG5ldyBtYWdpYyBzdHJpbmcsIHNraXAKCWNvcHlpbmcgZmlsZXMgZm9yIHRoaW4gYXJjaGl2ZXMuCgkqIGJmZC1pbi5oIChiZmRfaXNfdGhpbl9hcmNoaXZlKTogTmV3IG1hY3JvLgoJKiBiZmQuYyAoc3RydWN0IGJmZCk6IE5ldyBmaWVsZHMgZm9yIHRoaW4gYXJjaGl2ZXMuCgkqIGxpYmJmZC1pbi5oIChzdHJ1Y3QgYXJlbHRkYXRhKTogTmV3IGZpZWxkIGZvciB0aGluIGFyY2hpdmVzLgoJKiBvcG5jbHMuYyAoYmZkX2Nsb3NlKTogRGVsZXRlIEJGRHMgZm9yIG5lc3RlZCBhcmNoaXZlcy4KCjIwMDgtMDMtMjUgIEJlcm5kIFNjaG1pZHQgIDxiZXJuZC5zY2htaWR0QGFuYWxvZy5jb20+CgoJKiBlbGYzMi1iZmluLmMgKGJmaW5fZmluYWxfbGlua19yZWxvY2F0ZSk6IE5ldyBmdW5jdGlvbiwgd3JhcHBlciBhcm91bmQKCV9iZmRfZmluYWxfbGlua19yZWxvY2F0ZSB0aGF0IGFsc28gaGFuZGxlcyBSX3BjcmVsMjQgcmVsb2NzLgoJKGJmaW5mZHBpY19yZWxvY2F0ZV9zZWN0aW9uLCBiZmluX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgaXQuCgoyMDA4LTAzLTI1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZWxmMzItYXJtLmMgKGVsZjMyX2FybV9maW5hbF9saW5rX3JlbG9jYXRlKTogU2tpcCBkeW5hbWljIHJlbG9jcwoJaW4gdnh3b3JrcyB0bHNfdmFycyBzZWN0aW9ucy4KCShhbGxvY2F0ZV9keW5yZWxvY3MsIGVsZjMyX2FybV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChhbGxvY2F0ZV9keW5yZWxvY3MsCgllbGZfaTM4Nl9zaXplX2R5bmFtaWNfc2VjdGlvbnMsIGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKGFsbG9jYXRlX2R5bnJlbG9jcywgcHBjX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMsCglwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc2guYyAoYWxsb2NhdGVfZHlucmVsb2NzLCBzaF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zLAoJc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtc3BhcmMuYyAoYWxsb2NhdGVfZHlucmVsb2NzLAoJX2JmZF9zcGFyY19lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zLAoJX2JmZF9zcGFyY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwOC0wMy0yMSAgQWRhbSBOZW1ldCAgPGFuZW1ldEBjYXZpdW1uZXR3b3Jrcy5jb20+CgoJKiBlbGYuYyAoX2JmZF9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IFVzZSBiZmRfZnByaW50Zl92bWEgdG8KCXByaW50IHRoZSB2YWx1ZXMgZnJvbSB0aGUgZHluYW1pYyBzZWN0aW9uLgoKMjAwOC0wMy0yMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0BuaWxkcmFtLmNvLnVrPgoKCSogZWxmeHgtbWlwcy5jIChNSVBTX0VMRl9HTlVfR09UMV9NQVNLKTogTmV3IG1hY3JvLgoJKF9iZmRfbWlwc19lbGZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgaXQgaW5zdGVhZCBvZiAweDgwMDAwMDAwLgoKMjAwOC0wMy0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXNwdS5jIChzcHVfZWxmX2NyZWF0ZV9zZWN0aW9ucyk6IFJlbW92ZSBvdXRwdXRfYmZkIHBhcmFtZXRlci4KCShzcHVfZWxmX2ZpbmRfb3ZlcmxheXMsIHNwdV9lbGZfc2l6ZV9zdHVicyk6IExpa2V3aXNlCgkocHJvY2Vzc19zdHVicywgZGlzY292ZXJfZnVuY3Rpb25zLCBidWlsZF9jYWxsX3RyZWUpOiBMaWtld2lzZS4KCShzcHVfZWxmX3N0YWNrX2FuYWx5c2lzKTogTGlrZXdpc2UuCgkoc3B1X2VsZl9jaGVja192bWEpOiBMaWtld2lzZS4gIE1vdmUuCgkoc3RydWN0IGNhbGxfaW5mbyk6IE1ha2UgImlzX3RhaWwiIGEgYml0ZmllbGQuCgkoaW5zZXJ0X2NhbGxlZSk6IENsZWFyIGZ1bi0+c3RhcnQgYW5kIHNldCBmdW4tPmlzX2Z1bmMgaWYgd2UgZmluZAoJYSBub24tdGFpbCBjYWxsLgoJKiBlbGYzMi1zcHUuaCAoc3B1X2VsZl9jcmVhdGVfc2VjdGlvbnMpOiBVcGRhdGUgcHJvdG90eXBlLgoJKHNwdV9lbGZfZmluZF9vdmVybGF5cywgc3B1X2VsZl9zaXplX3N0dWJzLCBzcHVfZWxmX2NoZWNrX3ZtYSk6IERpdHRvLgoKMjAwOC0wMy0xNyAgUmFsZiBXaWxkZW5odWVzICA8UmFsZi5XaWxkZW5odWVzQGdteC5kZT4KCgkqIGFjbG9jYWwubTQ6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBMaWtld2lzZS4KCjIwMDgtMDMtMTYgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBsZC81Nzg5CglQUiBsZC81OTQzCgkqIGVsZjMyLWkzODYuYyAgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBJc3N1ZSBhbiBlcnJvcgoJZm9yIFJfMzg2X0dPVE9GRiByZWxvY2F0b24gYWdhaW5zdCB1bmRlZmluZWQgaGlkZGVuL2ludGVybmFsCglzeW1ib2xzIHdoZW4gYnVpbGRpbmcgYSBzaGFyZWQgb2JqZWN0LgoKCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogSXNzdWUgYW4KCWVycm9yIGZvciBSX1g4Nl82NF9QQzgvUl9YODZfNjRfUEMxNi9SX1g4Nl82NF9QQzMyCglyZWxvY2F0b24gYWdhaW5zdCB1bmRlZmluZWQgaGlkZGVuL2ludGVybmFsIHN5bWJvbHMgd2hlbgoJYnVpbGRpbmcgYSBzaGFyZWQgb2JqZWN0LgoJKGVsZjY0X3g4Nl82NF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBSZXR1cm4gRkFMU0Ugd2hlbiBzeW1ib2wKCWlzIHJlZmVyZW5jZWQgbG9jYWxseSwgYnV0IGlzbid0IGRlZmluZWQgaW4gYSByZWd1bGFyIGZpbGUuCgoyMDA4LTAzLTE1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBiZmQtaW4uaCAoQkZEX05PX0ZMQUdTLCBIQVNfUkVMT0MsIEVYRUNfUCwgSEFTX0xJTkVOTywKCUhBU19ERUJVRywgSEFTX1NZTVMsIEhBU19MT0NBTFMsIERZTkFNSUMsIFdQX1RFWFQsIERfUEFHRUQsCglCRkRfSVNfUkVMQVhBQkxFLCBCRkRfVFJBRElUSU9OQUxfRk9STUFULCBCRkRfSU5fTUVNT1JZLAoJSEFTX0xPQURfUEFHRSwgQkZEX0xJTktFUl9DUkVBVEVEKTogTW92ZWQgdG8gLi4uCgkqIGJmZC5jOiBIZXJlLgoKCSogYmZkLmMgKGJmZCk6IENoYW5nZSBjYWNoZWFibGUsIHRhcmdldF9kZWZhdWx0ZWQsIG9wZW5lZF9vbmNlLAoJbXRpbWVfc2V0LCBub19leHBvcnQsIG91dHB1dF9oYXNfYmVndW4gYW5kIGhhc19hcm1hcCB0byBiaXQKCWZpZWxkLgoKCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KCjIwMDgtMDMtMTQgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjYWNoZS5jIChjbG9zZV9vbmUpOiBSZW1vdmUgbXRpbWUgaGFjay4KCjIwMDgtMDMtMTQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBsZC81OTEzCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF90cHJlbF9iYXNlKTogUmVtb3ZlIEJGRF9BU1NFUlQuCgkoZWxmTk5faWE2NF9kdHByZWxfYmFzZSk6IExpa2V3aXNlLgoJKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IEdvIHRvIG1pc3NpbmdfdGxzX3NlYyBpZgoJdGxzX3NlYyBpcyBOVUxMIGJlZm9yZSBjYWxsaW5nIGVsZk5OX2lhNjRfdHByZWxfYmFzZSBvcgoJZWxmTk5faWE2NF9kdHByZWxfYmFzZS4gIFJlcG9ydCB1bnN1cHBvcnRlZCBUTFMgcmVsb2NhdGlvbnMuCgoyMDA4LTAzLTE0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItc3B1LmMgKHByb2Nlc3Nfc3R1YnMsIHNwdV9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IE1vdmUKCWNvbW1vbiBjb2RlIHRvLi4KCShtYXliZV9uZWVkc19zdHViKTogLi5oZXJlLCBhIG5ldyBmdW5jdGlvbiB0aGF0IGFsc28gb21pdHMgc3R1YnMKCWZvciAuZWhfZnJhbWUsIGFuZC4uCgkobmVlZHNfb3ZsX3N0dWIpOiAuLmhlcmUuICBDcmVhdGUgc3R1YnMgZm9yIGxhYmVscyBpbiBjb2RlIHNlY3Rpb24KCXJlZmVyZW5jZWQgYnkgc3dpdGNoIGp1bXAgdGFibGUuCgkoc3B1X2VsZl9maW5kX292ZXJsYXlzKTogU2V0IGh0YWItPm92bHlfbG9hZCBhbmQgaHRhYi0+b3ZseV9yZXR1cm4uCgkoZW51bSBfaW5zbl90eXBlKTogRGVsZXRlLgoJKGVudW0gX3N0dWJfdHlwZSk6IE5ldy4KCShjb3VudF9zdHViLCBidWlsZF9zdHViKTogQWRqdXN0LgoJKGFsbG9jYXRlX3NwdWVhcl9zdHVicywgYnVpbGRfc3B1ZWFyX3N0dWJzKTogQWRqdXN0LgoKMjAwOC0wMy0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3QuCgkoX2JmZF9lbGZfYXNzaWduX2ZpbGVfcG9zaXRpb25fZm9yX3NlY3Rpb24pOiBTaW1wbGlmeSBhbGlnbi4KCShfYmZkX2VsZl9pbml0X3JlbG9jX3NoZHIpOiBFbnN1cmUgc2hpZnQgZXhwcmVzc2lvbiB3aWRlIGVub3VnaAoJZm9yIHNoX2FkZHJhbGlnbi4KCShlbGZfZmFrZV9zZWN0aW9ucywgc3dhcF9vdXRfc3ltcyk6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmMgKGJmZF9lbGZfZmluYWxfbGluayk6IExpa2V3aXNlLgoKMjAwOC0wMy0xMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCjIwMDgtMDMtMTIgIEJlcm5kIFNjaG1pZHQgIDxiZXJuZC5zY2htaWR0QGFuYWxvZy5jb20+CgoJRnJvbSBKaWUgWmhhbmcgPGppZS56aGFuZ0BhbmFsb2cuY29tPgoJKiBlbGYzMi1iZmluLmMgKHN0cnVjdCBiZmluZmRwaWNfcmVsb2NzX2luZm8pOiBNYWtlIGdvdDE3bTQsCglnb3RoaWxvLCBmZCwgZmRnb3QxN200LCBmZGdvdGhpbG8sIGZkZ29mZjE3bTQsIGZkZ29mZmhpbG8sCglnb3RvZmYsIGNhbGwgYW5kIHN5bSBub3QgYml0ZmllbGRzLgoJKGJmaW5mZHBpY19nY19zd2VlcF9ob29rKTogTmV3IGZ1bmN0aW9uOyB1cGRhdGUgdGhlIHJlbG9jYXRpb24KCWluZm9ybWF0aW9uIGZvciB0aGUgcmVsb2NhdGlvbnMgb2YgdGhlIHNlY3Rpb24gYmVpbmcgcmVtb3ZlZC4KCShiZmluZmRwaWNfY2hlY2tfcmVsb2NzKTogQWNjdW11bGF0ZSB0aGUgbnVtYmVyIG9mIHJlbG9jYXRpb25zCgl3aGljaCBzZXQgZ290MTdtNCwgZ290aGlsbywgZmQsIGZkZ290MTdtNCwgZmRnb3RoaWxvLCBmZGdvZmYxN200LAoJZmRnb2ZmaGlsbywgZ290b2ZmLCBjYWxsIGFuZCBzeW0gZmllbGRzLgoJKGVsZl9iYWNrZW5kX2djX3N3ZWVwX2hvb2spOiBSZWRlZmluZSBmb3IgRkQtUElDLgoKMjAwOC0wMy0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiA1OTAwCgkqIGVsZi1iZmQuaDogSW5jbHVkZSBlbGYvaW50ZXJuYWwuaCBhZnRlciBlbGYvZXh0ZXJuYWwuaC4KCSogZWxmY29kZS5oIChlbGZfc3dhcF9zeW1ib2xfaW4pOiBNYXAgcmVzZXJ2ZWQgc2huZHggcmFuZ2UuCgkoZWxmX3N3YXBfc3ltYm9sX291dCk6IEFkanVzdCBTSE5fWElOREVYIHRlc3QuCgkoZWxmX3N3YXBfZWhkcl9vdXQpOiBNYXNrIFNITl9MT1JFU0VSVkUgYW5kIFNITl9YSU5ERVggdG8gdmFsdWVzCglzZWVuIGluIGV4dGVybmFsIHN0cnVjdHMuCgkodmFsaWRfc2VjdGlvbl9pbmRleF9wKTogRGVsZXRlLgoJKGVsZl9vYmplY3RfcCk6IERvbid0IGluY3JlbWVudCBzZWN0aW9uIG51bWJlcnMgb3ZlciByZXNlcnZlZCByYW5nZS4KCVNpbXBsaWZ5IHRlc3QgZm9yIHZhbGlkIHNoX2xpbmssIHNoX2luZm8gYW5kIGVfc2hzdHJuZHggZmllbGRzLgoJKGVsZl93cml0ZV9zaGRyc19hbmRfZWhkcik6IE1hc2sgU0hOX0xPUkVTRVJWRSBhbmQgU0hOX1hJTkRFWCB0byB2YWx1ZXMKCXNlZW4gaW4gZXh0ZXJuYWwgc3RydWN0cy4gIERvbid0IGluY3JlbWVudCBzZWN0aW9uIG51bWJlcnMgb3ZlcgoJcmVzZXJ2ZWQgcmFuZ2UuCgkqIGVsZi5jIChiZmRfZWxmX3N5bV9uYW1lKTogUmVtb3ZlIHJlZHVuZGFudCB0ZXN0cyBvbiBzdF9zaG5keC4KCShiZmRfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCShncm91cF9zaWduYXR1cmUpOiBSYW5nZSBjaGVjayBiZWZvcmUgYWNjZXNzaW5nIGVsZl9lbGZzZWN0aW9ucy4KCShfYmZkX2VsZl9zZXR1cF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGJmZF9zZWN0aW9uX2Zyb21fc2hkcik6IExpa2V3aXNlLgoJKGJmZF9zZWN0aW9uX2Zyb21fc2hkcik6IERvbid0IGluY3JlbWVudCBzZWN0aW9uIG51bWJlciBvdmVyCglyZXNlcnZlZCBzZWN0aW9ucy4KCShhc3NpZ25fZmlsZV9wb3NpdGlvbnNfZm9yX25vbl9sb2FkX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoYXNzaWduX2ZpbGVfcG9zaXRpb25zX2V4Y2VwdF9yZWxvY3MpOiBMaWtld2lzZS4KCShfYmZkX2VsZl93cml0ZV9vYmplY3RfY29udGVudHMpOiBMaWtld2lzZS4KCShhc3NpZ25fc2VjdGlvbl9udW1iZXJzKTogTGlrZXdpc2UuICBBZGp1c3QgZm9yIGNoYW5nZWQgU0hOXyouCgkocHJlcF9oZWFkZXJzKTogRGVsZXRlIHVudXNlZCB2YXJpYWJsZS4KCSogZWxmbGluay5jIChiZmRfZWxmX2xpbmtfcmVjb3JkX2xvY2FsX2R5bmFtaWNfc3ltYm9sKTogQWRqdXN0Cglmb3IgY2hhbmdlZCBTSE5fKiB2YWx1ZXMuCgkoY2hlY2tfZHluc3ltLCBlbGZfbGlua19pbnB1dF9iZmQpOiBMaWtld2lzZS4KCShiZmRfZWxmX2ZpbmFsX2xpbmspOiBMaWtld2lzZS4gIERvbid0IHNraXAgb3ZlciByZXNlcnZlZCBzZWN0aW9uCglyYW5nZS4KCShlbGZfZml4dXBfbGlua19vcmRlcik6IENoZWNrIHRoYXQgc2hfbGluayBmaWVsZCBpcyB2YWxpZC4KCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfYWRkX3N5bWJvbF9ob29rKTogTWFrZSAiaW5kZXgiIHVuc2lnbmVkLgoJKiBlbGYzMi1hcm0uYyAoZWxmMzJfYXJtX2djX21hcmtfZXh0cmFfc2VjdGlvbnMpOiBSYW5nZSBjaGVjayBiZWZvcmUKCWFjY2Vzc3NpbmcgZWxmX2VsZnNlY3Rpb25zLgoJKiBlbGYzMi1hdnIuYyAoZWxmMzJfYXZyX3NpemVfc3R1YnMpOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxeC5jIChlbGYzMl9tNjhoYzExX3NpemVfc3R1YnMpOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2NoZWNrX3JlbG9jcyk6IEFkanVzdCBmb3IgY2hhbmdlZAoJU0hOXyogZGVmaW5lcy4gIFRlc3QgZm9yIFNITl9CQUQgcmV0dXJuIGZyb20KCV9iZmRfZWxmX3NlY3Rpb25fZnJvbV9iZmRfc2VjdGlvbgoKMjAwOC0wMy0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoX2JmZF9lbGZfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uKTogVXBkYXRlIHByb3RvdHlwZS4KCSogZWxmLmMgKF9iZmRfZWxmX3NlY3Rpb25fZnJvbV9iZmRfc2VjdGlvbik6IFJldHVybiB1bnNpZ25lZCBpbnQsCglTSE5fQkFEIG9uIGVycm9yLgoJKF9iZmRfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBUZXN0IGZvciBTSE5fQkFEIHJlc3VsdCBmcm9tCglfYmZkX2VsZl9zZWN0aW9uX2Zyb21fYmZkX3NlY3Rpb24sIG5vdCAtMS4KCShzd2FwX291dF9zeW1zKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYyAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogTGlrZXdpc2UuCgkoYmZkX2VsZl9nZXRfYmZkX25lZWRlZF9saXN0KTogTGlrZXdpc2UuCgkoYmZkX2VsZl9tYXRjaF9zeW1ib2xzX2luX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogRG9uJ3QgYm90aGVyIHRlc3RpbmcgZm9yIHN5bWJvbHMKCXVzaW5nIG5vcm1hbCBzZWN0aW9ucyBiZWZvcmUgY2FsbGluZyBiZmRfc2VjdGlvbl9mcm9tX2VsZl9pbmRleC4KCShlbGZfbGlua19pbnB1dF9iZmQsIGJmZF9lbGZfZmluYWxfbGluayk6IExpa2V3aXNlLgoJKGJmZF9lbGZfcmVsb2Nfc3ltYm9sX2RlbGV0ZWRfcCk6IExpa2V3aXNlLgoJKiBlbGZjb2RlLmggKGVsZl9zbHVycF9zeW1ib2xfdGFibGUpOiBMaWtld2lzZS4KCSogZWxmMzItc3B1LmMgKGdldF9zeW1faCk6IExpa2V3aXNlLgoJKiBlbGYzMi14dGVuc2EuYyAoZ2V0X2VsZl9yX3N5bW5keF9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChvcGRfZW50cnlfdmFsdWUsIGdldF9zeW1faCwgcHBjNjRfZWxmX2VkaXRfdG9jKTogRGl0dG8uCgkqIGVsZjY0LXNoNjQuYyAoc2hfZWxmNjRfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgoyMDA4LTAzLTExICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItc3B1LmMgKHNwdV9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFRlc3QgaWRlbnRpY2FsIGNvbmRpdGlvbnMKCXRvIHRob3NlIGluIHByb2Nlc3Nfc3R1YnMgZm9yIG92ZXJsYXkgc3ltYm9scy4KCjIwMDgtMDMtMDkgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlbGYzMi1hcm0uYyAoZWxmMzJfYXJtX21lcmdlX2VhYmlfYXR0cmlidXRlcyk6IEhhbmRsZSBuZXcKCVRhZ19WRlBfYXJjaCB2YWx1ZXMuCgoyMDA4LTAzLTA4ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZWxmMzItYXJtLmMgKGluc2VydF90aHVtYl9icmFuY2gpOiBSZXdyaXRlLgoJKGVsZjMyX3RodW1iX3RvX2FybV9zdHViKTogVXNlIG5ldyBpbnNlcnRfdGh1bWJfYnJhbmNoLgoKMjAwOC0wMy0wNyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVsZjMyLWFybS5jIChlbGYzMl9hcm1faG93dG9fdGFibGVfMSk6IEZpeCBiaXRtYXNrcyBmb3IgTU9WVyBhbmQKCU1PVlQgcmVsb2NhdGlvbnMuCgkoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBGaXggb2ZmIGJ5IG9uZSBNT1ZXL01PVlQgc2lnbgoJZXh0ZW5zaW9uLgoJKGVsZjMyX2FybV9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIE1PVlcgYW5kIE1PVlQKCXJlbG9jYXRpb25zLiAgSW1wcm92ZSBzYWZldHkgY2hlY2sgZm9yIG90aGVyIHdlaXJkIHJlbG9jYXRpb25zLgoJKGVsZjMyX2FybV9jaGVja19yZWxvY3MpOiBPbmx5IHNldCBoLT5uZWVkc19wbHQgZm9yIGJyYW5jaC9jYWxsCglyZWxvY2F0aW9ucy4KCjIwMDgtMDMtMDMgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiB4dGVuc2EtaXNhLmMgKHh0ZW5zYV9pc2FfbnVtX3BpcGVfc3RhZ2VzKTogTWFrZSBtYXhfc3RhZ2Ugc3RhdGljIGFuZAoJb25seSBjb21wdXRlIGl0cyB2YWx1ZSBvbmNlLgoKMjAwOC0wMy0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXNwdS5jIChzdHJ1Y3QgZ290X2VudHJ5KTogQWRkICJhZGRlbmQiIGZpZWxkLgoJKGNvdW50X3N0dWIsIGJ1aWxkX3N0dWIpOiBVc2UgYSBuZXcgc3R1YiBpZiByZWxvY2F0aW9uIGFkZGVuZAoJZGlmZmVycyBmcm9tIGV4aXN0aW5nIHN0dWJzIGZvciB0aGlzIHN5bWJvbC4KCShwcm9jZXNzX3N0dWJzKTogRGVhbCB3aXRoIGFkZGVuZHMuCgkoc3B1X2VsZl9yZWxvY2F0ZV9zZWN0aW9uLCBzcHVfZWxmX291dHB1dF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoKMjAwOC0wMy0wMiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGxkLzU3ODkKCSogZWxmbGluay5jIChfYmZkX2VsZl9zeW1ib2xfcmVmc19sb2NhbF9wKTogQWx3YXlzIHJldHVybiB0cnVlCglmb3IgaGlkZGVuIGFuZCBsb2NhbCBzeW1ib2xzLgoKMjAwOC0wMy0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChhbGxvY2F0ZV9keW5yZWxvY3MpOiBEaXNjYXJkIHJlbG9jcyBvbgoJdW5kZWZpbmVkIHN5bWJvbHMgd2l0aCBpbnRlcm5hbCBvciBoaWRkZW4gdmlzaWJpbGl0eS4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4gIFVzZSBTWU1CT0xfQ0FMTFNfTE9DQUwKCXJhdGhlciB0aGFuIFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMIG9uIGJyYW5jaGVzLiAgRG9uJ3QKCXJldHVybiBpbW1lZGlhdGVseSBvbiBkeW5hbWljIHJlbG9jIGVycm9yLgoKMjAwOC0wMy0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChidWlsZF9wbHRfc3R1Yik6IEFkZCByZWxvY3Mgb24gcGx0IGNhbGwgc3R1YnMKCWlmIGVtaXRyZWxvY2F0aW9ucy4KCShnZXRfcmVsb2NzKTogTmV3IGZ1bmN0aW9uLCBzcGxpdCBvdXQgZnJvbS4uCgkocHBjX2J1aWxkX29uZV9zdHViKTogLi5oZXJlLiAgQWRkIHJlbG9jcyBvbiBwbHRfYnJhbmNoIHN0dWJzIGlmCgllbWl0cmVsb2NhdGlvbnMuICBSZW1vdmUgaW5keCB0ZW1wLgoJKHBwY19zaXplX29uZV9zdHViKTogQ291bnQgbmV3IHN0dWIgcmVsb2NzLgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogQ291bnQgbmV3IGdsaW5rIHJlbG9jLgoJKHBwYzY0X2VsZl9idWlsZF9zdHVicyk6IEVtaXQgZ2xpbmsgcmVsb2MgaWYgZW1pdHJlbG9jYXRpb25zLgoJKHBwYzY0X2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IE91dHB1dCBnbGluayByZWxvY3MuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogRGVzY3JpYmUgbm9uLXBpYwoJZ2xpbmsgY29kZS4KCjIwMDgtMDItMjggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1zcHUuYyAobWFya19mdW5jdGlvbnNfdmlhX3JlbG9jcyk6IERvbid0IGFzc3VtZSB0aGF0Cgl0aGUgIi0+c3RhcnQiIHBvaW50ZXIgcmVhY2hlcyB0byBmdW5jdGlvbiBvcmlnaW4sIHNvIHRoYXQgd2UKCWNhbiBoYW5kbGUgZnVuY3Rpb25zIHNwbGl0IG92ZXIgbW9yZSB0aGFuIHR3byBzZWN0aW9ucy4KCShidWlsZF9jYWxsX3RyZWUpOiBMaWtld2lzZS4KCShwYXN0ZWRfZnVuY3Rpb24pOiBEb24ndCBhdHRlbXB0IHRvIHNldCBmdW4tPnN0YXJ0IGJhY2sgdG8gdGhlCglmdW5jdGlvbiBvcmlnaW4sIGp1c3QgZ28gYmFjayBvbmUgc2VjdGlvbi4KCjIwMDgtMDItMjcgIENhdGhlcmluZSBNb29yZSAgPGNsbUBjb2Rlc291cmNlcnkuY29tPgoKCSogZWxmLmMgKCBfYmZkX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogQ2FsbAoJZWxmX2JhY2tlbmRfZ2V0X3RhcmdldF9kdGFnIGlmIGRlZmluZWQuCgkqIGVsZjMyLW1pcHMuYyAoZWxmX2JhY2tlbmRfZ2V0X3RhcmdldF9kdGFnKTogRGVmaW5lLgoJKiBlbGY2NC1taXBzLmM6IExpa2V3aXNlLgoJKiBlbGZuMzItbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmeHgtbWlwcy5jIChfYmZkX21pcHNfZWxmX2dldF90YXJnZXRfZHRhZyk6IE5ldy4KCSogZWxmeHgtbWlwcy5oIChfYmZkX21pcHNfZWxmX2dldF90YXJnZXRfZHRhZyk6IERlY2xhcmUuCgkqIGVsZi1iZmQuaCAoZWxmX2JhY2tlbmRfZ2V0X3RhcmdldF9kdGFnKTogQWRkIHByb3RvdHlwZS4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX2dldF90YXJnZXRfZHRhZyk6IEFkZCBkZWZhdWx0LgoJKGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgZWxmX2JhY2tlbmRfZ2V0X3RhcmdldF9kdGFnLgoKMjAwOC0wMi0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IFNldCBwb2ludGVyX2VxdWFsaXR5X25lZWRlZAoJZm9yIFJfUFBDX1JFTDMyIHN5bXMuICBEb24ndCBzZXQgbm9uX2dvdF9yZWYgb24gYnJhbmNoIHJlbG9jIHN5bXMsCglhbmQgYXNzdW1lIGJyYW5jaCByZWxvY3MgYXJlIG5vdCBkeW5hbWljIHdoZW4gbm9uLXNoYXJlZC4KCShyZWFkb25seV9keW5yZWxvY3MpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tLi4KCShtYXliZV9zZXRfdGV4dHJlbCk6IC4uaGVyZSwgcmVuYW1lZCBmcm9tIG9sZCByZWFkb25seV9keW5yZWxvY3MuCgkocHBjX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBGb3Igc3ltYm9scyBnZW5lcmF0aW5nIHBsdCBlbnRyaWVzLAoJY2xlYXIgbm9uX2dvdF9yZWYuLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IC4uYW5kIGRvbid0IHNldCB1LmRlZiBmb3IgdW5kZWZpbmVkIHdlYWsuCglEbyBhbGxvdyBkeW5hbWljIHJlbG9jcyBvbiB1bmRlZmluZWQgc3ltYm9scy4KCShwcGNfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFVzZSByZWFkb25seV9keW5yZWxvY3MuCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTWlycm9yIGR5bmFtaWMgcmVsb2MgY2hhbmdlcyBpbgoJY2hlY2tfcmVsb2NzLgoJKHBwY19lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QgZ2l2ZSBhIHdhcm5pbmcgb24gd2VhawoJcGx0IHN5bWJvbHMgbmVlZGluZyBwb2ludGVyX2VxdWFsaXR5X25lZWRlZC4KCjIwMDgtMDItMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9jaGVja19yZWxvY3MpOiBSZXZlcnQgbm9uX2dvdF9yZWYgY2hhbmdlLgoKMjAwOC0wMi0yMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQ29weQoJcG9pbnRlcl9lcXVhbGl0eV9uZWVkZWQuCgkocHBjX2VsZl9jaGVja19yZWxvY3MpOiBTcGxpdCBvdXQgbm9uLWJyYW5jaCByZWxvY3MgZnJvbSBvdGhlcnMKCXRoYXQgbWlnaHQgZW1pdCBkeW5hbWljIHJlbG9jcy4gIFNldCBwb2ludGVyX2VxdWFsaXR5X25lZWRlZAoJZm9yIHRoZWlyIHN5bWJvbHMuICBEb24ndCBzZXQgbm9uX2dvdF9yZWYgb24gYnJhbmNoIHJlbG9jIHN5bWJvbHMuCgkocHBjX2VsZl9oYXNoX3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9oYXNoX3N5bWJvbCk6IERlZmluZS4KCShwcGNfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IEhhbmRsZSBwb2ludGVyX2VxdWFsaXR5X25lZWRlZC4KCUVycm9yIGlmIHBvaW50ZXJfZXF1YWxpdHlfbmVlZGVkIG9uIHdlYWsgcGx0IHN5bWJvbC4KCjIwMDgtMDItMjIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBsZC81Nzg4CgkqIGVsZmxpbmsuYyAoZWxmX2NyZWF0ZV9zeW1idWYpOiBDb3JyZWN0IGJ1ZmZlciBzaXplIGFuZAoJcG9zaXRpb24uCgoyMDA4LTAyLTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIDg2OAoJKiBkd2FyZjIuYzogUmV2ZXJ0IHByZXZpb3VzIHBhdGNoLiAgQWxsIG9mIHRoZSBhbGxvY2F0ZSBtZW1vcnkgaXMKCW9uIGFuIG9ic3RhY2sgd2hpY2ggd2lsbCBiZSBmcmVlZCBhdCBzb21lIG90aGVyIHRpbWUuCgoyMDA4LTAyLTIwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIDg2OAoJKiBsaWJiZmQuYyAoYmZkX3JlYWxsb2Nfb3JfZnJlZSk6IE5ldyBmdW5jdGlvbi4gIFBlcmZvcm1zIGxpa2UKCWJmZF9yZWFsbG9jLCBidXQgaWYgdGhlIChyZSlhbGxvY2F0aW9uIGZhaWxzLCB0aGUgcG9pbnRlciBpcwoJZnJlZWQuCgkqIGxpYmJmZC1pbi5oOiBQcm90b3R5cGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmRpby5jIChiZmRfYndyaXRlKTogVXNlIHRoZSBuZXcgZnVuY3Rpb24uCgkoYmZkX3NlZWspOiBMaWtld2lzZS4KCSogYmZkd2luLmM6KGJmZF9nZXRfZmlsZV93aW5kb3cpOiBMaWtld2lzZS4KCSogZWxmLXN0cnRhYi5jIChfYmZkX2VsZl9zdHJ0YWJfYWRkKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzIteHRlbnNhLmMgKHZzcHJpbnRmX21zZyk6IExpa2V3aXNlLgoJKiBtYWNoLW8uYyAoYmZkX21hY2hfb19jb3JlX2ZldGNoX2Vudmlyb25tZW50KTogTGlrZXdpc2UuCgkqIHN0YWJzLmMgKF9iZmRfbGlua19zZWNpdG9uX3N0YWJzKTogTGlrZXdpc2UuCgkqIHZtcy1taXNjLmMgKF9iZmRfdm1zX2dldF9yZWNvcmQpOiBMaWtld2lzZS4KCSogdm1zLXRpci5jIChjaGVja19zZWN0aW9uKTogTGlrZXdpc2UuCgkqIHZtcy5jICh2bXNfbmV3X3NlY3Rpb25faG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1hcm0uYyAoZWxmMzJfYXJtX3NlY3Rpb25fbWFwX2FkZCk6IENoZWNrIHRoYXQgdGhlCglhbGxvY2F0aW9uIG9mIHNlY19kYXRhLT5tYXAgc3VjY2VlZGVkIGJlZm9yZSB1c2luZyBpdC4KCSogZWxmbGluay5jIChlbGZfbGlua19vdXRwdXRfc3ltKTogRG8gbm90IG92ZXJ3cml0ZSBmaW5mby0+CglzeW1zaG5keGJ1ZiB1bnRpbCBpdCBpcyBrbm93biB0aGF0IHRoZSByZWFsbG9jYXRpb24gc3VjY2VlZGVkLgoKMjAwOC0wMi0yMCAgRGlvZ28gZGUgQ2FydmFsaG8gS3JhZW1lciAgPGRpb2dvQGtyYWVtZXIuZW5nLmJyPgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgODY4CgkqIGR3YXJmMi5jIChyZWFkX2FiYnJldnMpOiBGcmVlIHRoZSBhYmJyZXZpYXRpb24gdGFibGUgaWYgd2UgcnVuCglvdXQgb2YgbWVtb3J5LgoJKGRlY29kZV9saW5lX2luZm8pOiBGcmVlIHRoZSBsaW5lX2luZm9fdGFibGUgYmVmb3JlIHJldHVybmluZyBhCglmYWlsdXJlIHJlc3VsdC4KCShfYmZkX2R3YXJmMl9jbGVhbnVwX2RlYnVnX2luZm8pOiBGcmVlIHRoZSBhYmJyZXZpYXRpb24gdGFibGUuCglGcmVlIHRoZSBsaW5lIHRhYmxlLiAgRnJlZSB0aGUgZnVuY3Rpb24gdGFibGUuICBGcmVlIHRoZSB2YXJpYWJsZQoJdGFibGUuCgoyMDA4LTAyLTE3ICBNYXJrIEtldHRlbmlzICA8a2V0dGVuaXNAZ251Lm9yZz4KCgkqIGVsZi5jIChzd2FwX291dF9zeW1zKTogQXZvaWQgcHJlcHJvY2Vzc2luZyBkaXJlY3RpdmUgd2l0aGluCgltYWNybyBhcmcuCgoyMDA4LTAyLTE3ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoYXNzaWduX2ZpbGVfcG9zaXRpb25zX2Zvcl9sb2FkX3NlY3Rpb25zKTogU2V0IHRoZSB0eXBlIG9mCglQVF9OT1RFIHNlY3Rpb25zIHRvIFNIVF9OT1RFLgoKMjAwOC0wMi0xNyAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogc2ltcGxlLmMgKGJmZF9zaW1wbGVfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogU2V0CglsaW5rX2luZm8ub3V0cHV0X2JmZC4KCjIwMDgtMDItMTYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkd2FyZjIuYyAoZmluZF9saW5lKTogRG9uJ3QgdHJ1c3QgZGVidWcgaW5mb3JtYXRpb24gYWZ0ZXIgYW4KCXVucGFyc2VhYmxlIGNvbXBpbGF0aW9uIHVuaXQuCgoyMDA4LTAyLTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVBSIDU3NjUKCSogc2VjdGlvbi5jIChTRUNfTElOS19EVVBMSUNBVEVTKTogQ29ycmVjdC4gIFJlbnVtYmVyIGZvbGxvd2luZyBmbGFncy4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwOC0wMi0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoZW51bSBlbGZfb2JqZWN0X2lkKTogQWRkIEhQUEFfRUxGX1REQVRBLgoJKiBlbGYuYyAoYmZkX2VsZl9hbGxvY2F0ZV9vYmplY3QpOiBEb24ndCBjaGVjayBmb3IgYWxyZWFkeSBhbGxvY2F0ZWQKCXRkYXRhLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfbWtvYmplY3QpOiBOZXcgZnVuY3Rpb24uCgkoYmZkX2VsZjMyX21rb2JqZWN0KTogRGVmaW5lLgoJKiBlbGYzMi1wcGMuYyAoaXNfcHBjX2VsZl90YXJnZXQpOiBEZWxldGUuICBSZXBsYWNlIGFsbCB1c2VzIHdpdGguLgoJKGlzX3BwY19lbGYpOiAuLnRoaXMgbmV3IG1hY3JvLgoJKiBlbGY2NC1wcGMuYyAoaXNfcHBjNjRfZWxmX3RhcmdldCk6IERlbGV0ZS4gIFJlcGxhY2UgYWxsIHVzZXMgd2l0aC4uCgkoaXNfcHBjNjRfZWxmKTogLi50aGlzIG5ldyBtYWNyby4KCjIwMDgtMDItMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmM6IFJlcGxhY2UgYWxsIGFjY2Vzc2VzIHRvIGhhc2gtPmNyZWF0b3IgZmllbGQgd2l0aAoJb3V0cHV0X2JmZC0+eHZlYy4KCSogY29mZmxpbmsuYzogTGlrZXdpc2UuCgkqIGNvZmYtaDgzMDAuYzogTGlrZXdpc2UuCgkqIGVjb2ZmLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhoYzF4LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmM6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmM6IExpa2V3aXNlLgoJKiBpMzg2bGludXguYzogTGlrZXdpc2UuCgkqIG02OGtsaW51eC5jOiBMaWtld2lzZS4KCSogc3BhcmNsaW51eC5jOiBMaWtld2lzZS4KCSogc3Vub3MuYzogTGlrZXdpc2UuCgkqIHhjb2ZmbGluay5jOiBMaWtld2lzZS4KCSogbGlua2VyLmM6IExpa2V3aXNlLgoJKF9iZmRfbGlua19oYXNoX3RhYmxlX2luaXQpOiBEb24ndCBzdG9yZSBjcmVhdG9yLgoKMjAwOC0wMi0xNCAgUGV0ZXIgSm9uZXMgIDxwam9uZXNAcmVkaGF0LmNvbT4KCgkqIGVmaS1ydGRydi1pYTMyLmM6IE5ldyBmaWxlLgoJKiBlZmktYnNkcnYtaWEzMi5jOiBOZXcgZmlsZS4KCSogZWZpLXJ0ZHJ2LWlhNjQuYzogTmV3IGZpbGUuCgkqIGVmaS1ic2Rydi1pYTY0LmM6IE5ldyBmaWxlLgoJKiBlZmktcnRkcnYteDg2XzY0LmM6IE5ldyBmaWxlLgoJKiBlZmktYnNkcnYteDg2XzY0LmM6IE5ldyBmaWxlLgoJKiBwZWljb2RlLmggKHBlX2JmZF9vYmplY3RfcCk6IEFkZCBzdXBwb3J0IGZvciBib290IHNlcnZpY2UgYW5kCglydW50aW1lIHNlcnZpY2UgZHJpdmVycy4KCSogbGlicGVpLmg6IEFkZCBtYWNyb3MgZm9yIEVGSSBmb3JtYXRzLCBhbmQgcmVuYW1lIHRoZSBlZmkgYXBwbGljYXRpb24KCWZvcm1hdCBtYWNyb3MgdG8gZGlzYW1iaWd1YXRlLgoJKiB0YXJnZXRzLmM6IEFkZCBiZmRfdGFyZ2V0IF92ZWMgZXh0ZXJucy4KCShfYmZkX3Rhcik6IEFkZCBFRkkgX3ZlYyBlbnRyaWVzLgoJKiBjb25maWcuYmZkOiBBZGQgRUZJIHZlY3RvcnMgaW50byB0aGUgc2VsZWN0aW9uIHJvdXRpbmVzLgoJKiBjb25maWd1cmUuaW46IGFkZCBFRkkgX3ZlYyBlbnRyaWVzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmFtOiBBZGQgRUZJIGZpbGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDgtMDItMTQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkd2FyZjEuYyAoc3RydWN0IGR3YXJmMV9kZWJ1Zyk6IEFkZCBzeW1zIG1lbWJlci4KCShhbGxvY19kd2FyZjFfdW5pdCwgYWxsb2NfZHdhcmYxX2Z1bmMpOiBDaGVjayBmb3Igb3V0IG9mIG1lbW9yeS4KCShwYXJzZV9saW5lX3RhYmxlLCBfYmZkX2R3YXJmMV9maW5kX25lYXJlc3RfbGluZSk6IFJlbG9jYXRlCglzZWN0aW9uIGNvbnRlbnRzLCBjaGVjayBmb3Igb3V0IG9mIG1lbW9yeS4KCgkqIGR3YXJmMS5jIChzdHJ1Y3QgZHdhcmYxX2RlYnVnKTogQ2hhbmdlIGRhdGEgcG9pbnRlcnMgdG8gYmZkX2J5dGUuCgkocGFyc2VfZGllKTogQ2hhbmdlIGRhdGEgcG9pbnRlcnMgdG8gYmZkX2J5dGUuCgkocGFyc2VfbGluZV90YWJsZSwgcGFyc2VfZnVuY3Rpb25zX2luX3VuaXQpOiBMaWtld2lzZS4KCjIwMDgtMDItMTQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmMgKGNvbXB1dGVfYnVja2V0X2NvdW50KTogV2FybmluZyBmaXhlcy4KCjIwMDgtMDItMTIgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogZWxmMzItaXEyMDAwLmMgKGlxMjAwMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEFkanVzdCBhZGRlbmQgb2YKCXJlbG9jYXRpb24gcG9pbnRpbmcgdG8gbG9jYWwgc3ltYm9sIGluIG1lcmdlZCBzZWN0aW9uLgoKCSogZWxmMzItaXEyMDAwLmMgKGlxMjAwMF9lbGZfcmVsb2NhdGVfb2Zmc2V0MTYpOiBOZXcuCgkoaXEyMDAwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQ2FsbCBpdC4KCjIwMDgtMDItMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgbGQvNTY5MgoJKiBlbGYtYmZkLmggKGVudW0gZWxmX29iamVjdF9pZCk6IE5ldyBlbnVtLCB1c2VkIHRvIGlkZW50aWZ5Cgl0YXJnZXQgc3BlY2lmaWMgZXh0ZW5zaW9ucyB0byB0aGUgZWxmX29ial90ZGF0YSBzdHJ1Y3R1cmUuCgkoc3RydWN0IGVsZl9vYmpfdGRhdGEpOiBOZXcgZmllbGQgJ29iamVjdF9pZCcuCgkoZWxmX29iamVjdF9pZCwgZWxmX3Byb2dyYW1faGVhZGVyX3NpemUsIGVsZl9zeW10YWJfaGRyKTogTmV3CgltYWNyb3MgZm9yIGFjY2Vzc2luZyBmaWVsZHMgaW4gdGhlIGVsZl9vYmpfdGRhdGEgc3RydWN0dXJlLgoJKGJmZF9lbGZfbWtvYmplY3QpOiBSZW5hbWUgdG8gYmZkX2VsZl9tYWtlX2dlbmVyaWNfb2JqZWN0LgoJKGJmZF9lbGZfYWxsb2NhdGVfb2JqZWN0KTogTmV3IGZ1bmN0aW9uLgoJKiBlbGYuYyAoYmZkX2VsZl9ta29iamVjdCk6IFJlbmFtZSB0byBiZmRfZWxmX21ha2VfZ2VuZXJpY19vYmplY3QKCWFuZCBpbXBsZW1lbnQgYnkgY2FsbGluZyBiZmRfZWxmX2FsbG9jYXRlX29iamVjdC4KCShiZmRfZWxmX2FsbG9jYXRlX29iamVjdCk6IE5ldyBmdW5jdGlvbjogQWxsb2NhdGVzIGFuCgllbGZfb2JqX3RkYXRhIHN0cnVjdHVyZSwgcG9zc2libHkgd2l0aCBhIHRhcmdldCBzcGVjaWZpYwoJZXh0ZW5zaW9uLgoJKiBlbGZ4eC10YXJnZXQuaCAoYmZkX2VsZk5OX21rb2JqZWN0KTogVXNlCgliZmRfZWxmX21ha2VfZ2VuZXJpY19vYmplY3QgYXMgdGhlIGRlZmF1bHQgdmFsdWUuCgkqIGVsZjMyLWFybS5jIChlbGYzMl9hcm1fb2JqX3RkYXRhKTogUmVuYW1lIHRvIGVsZl9hcm1fb2JqX3RkYXRhCglmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciwgc2ltaWxhciBzdHJ1Y3R1cmVzLgoJKGlzX2FybV9lbGYpOiBOZXcgbWFjcm8uICBDaGVja3MgYSBCRkQgdG8gbWFrZSBzdXJlIHRoYXQgaXMgYW4gQVJNCglFTEYgYmZkLgoJKGVsZjMyX2FybV9ta29iamVjdCk6IENhbGwgYmZkX2VsZl9hbGxvY2F0ZV9vYmplY3QuCgkoYmZkX2VsZjMyX2FybV92ZnAxMV9lcnJhdHVtX3NjYW4pOiBVc2UgaXNfYXJtX2VsZiBtYWNybyB0byBjaGVjawoJdGhlIGJmZCBiZWluZyBwcm9jZXNzZWQuCgkoYmZkX2VsZjMyX2FybV92ZnAxMV9maXhfdmVuZWVyX2xvY2F0aW9ucyk6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9hcm1fc2V0X3RhcmdldF9yZWxvY3MpOiBMaWtld2lzZS4KCShiZmRfZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBMaWtld2lzZS4KCShiZmRfZWxmMzJfYXJtX2NvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9hcm1fbWVyZ2VfZWFiaV9hdHRyaWJ1dGVzKTogTGlrZXdpc2UuCgkoYmZkX2VsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogTGlrZXdpc2UuCgkoYmZkX2VsZjMyX2FybV9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShiZmRfZWxmMzJfYXJtX2djX21hcmtfZXh0cmFfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShiZmRfZWxmMzJfYXJtX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9hcm1fcHJvY2Vzc19iZWZvcmVfYWxsb2NhdGlvbik6IFVzZSBlbGZfc3ltdGFiX2hkci4KCShiZmRfZWxmMzJfYXJtX2luaXRfbWFwcyk6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9hcm1fcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9hcm1fZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9hcm1fY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoYmZkX2VsZjMyX2FybV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9ta29iamVjdCk6IENhbGwgYmZkX2VsZl9hbGxvY2F0ZV9vYmplY3QuCgkoaXNfaTM4Nl9lbGYpOiBOZXcgbWFjcm8uICBDaGVja3MgYSBCRkQgdG8gbWFrZSBzdXJlIHRoYXQgaXMgYW4geDg2CglFTEYgYmZkLgoJKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyk6IFVzZSBpc19pMzg2X2VsZiBtYWNybyB0byBjaGVjayAgICB0aGUgYmZkCgliZWluZyBwcm9jZXNzZWQuCgkoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyk6IFVzZSBlbGZfc3ltdGFiX2hkci4KCShlbGZfaTM4Nl9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9ta29iamVjdCk6IENhbGwgYmZkX2VsZl9hbGxvY2F0ZV9vYmplY3QuCgkoZWxmX2NyZWF0ZV9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogVXNlIGlzX3BwY19lbGZfdGFyZ2V0IHRvCgl2ZXJpZnkgdGhhdCB0aGUgYmZkIGJlZm9yZSBhY2Nlc3NpbmcgdGFyZ2V0IHNwZWNpZmljIGZpZWxkcy4KCShwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKGVsZl9maW5pc2hfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZl9jcmVhdGVfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IFVzZSBlbGZfc3ltdGFiX2hkci4KCShwcGNfZWxmX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKHBwY19lbGZfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKHBwY19lbGZfdGxzX29wdGltaXplKTogTGlrZXdpc2UuCgkocHBjX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShwcGNfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChzdHJ1Y3QgZWxmX3MzOTBfb2JqX3RkYXRhKTogQWRkIGEgY29tbWVudAoJcmVtaW5kaW5nIHByb2dyYW1tZXJzIHRvIGtlZXAgdGhpcyBzdHJ1Y3R1cmUgaW4gc3luYyB3aXRoIHRoZSBvbmUKCWRlZmluZWQgaW4gZWxmNjQtczM5MC5jLgoJKGVsZl9zMzkwX21rb2JqZWN0KTogQ2FsbCBiZmRfZWxmX2FsbG9jYXRlX29iamVjdC4KCShpc19zMzkwX2VsZik6IE5ldyBtYWNyby4gIENoZWNrcyBhIEJGRCB0byBtYWtlIHN1cmUgdGhhdCBpcyBhbiBzMzkwCglFTEYgYmZkLgoJKGVsZl9zMzkwX2NoZWNrX3JlbG9jcyk6IFVzZSBpc19zMzkwX2VsZiBtYWNybyB0byBjaGVjayAgICB0aGUgYmZkCgliZWluZyBwcm9jZXNzZWQuCgkoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZl9zMzkwX2NoZWNrX3JlbG9jcyk6IFVzZSBlbGZfc3ltdGFiX2hkci4KCShlbGZfczM5MF9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfbWtvYmplY3QpOiBDYWxsIGJmZF9lbGZfYWxsb2NhdGVfb2JqZWN0LgoJKGlzX3NoX2VsZik6IE5ldyBtYWNyby4gIENoZWNrcyBhIEJGRCB0byBtYWtlIHN1cmUgdGhhdCBpcyBhbiBTSAoJRUxGIGJmZC4KCShzaF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGlzX3NoX2VsZiBtYWNybyB0byBjaGVjayB0aGUKCWJmZCBiZWluZyBwcm9jZXNzZWQuCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShzaF9lbGZfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoc2hfZWxmX2NvcHlfcHJpdmF0ZV9kYXRhKTogTGlrZXdpc2UuCgkoc2hfZWxmX3JlbGF4X3NlY3Rpb24pOiBVc2UgZWxmX3N5bXRhYl9oZHIuCgkoc2hfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoc2hfZWxmX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoJKHNoX2VsZl9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoc2hfZWxmX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9ta29iamVjdCk6IENhbGwgYmZkX2VsZl9hbGxvY2F0ZV9vYmplY3QuCgkoaXNfYWxwaGFfZWxmKTogTmV3IG1hY3JvLiAgQ2hlY2tzIGEgQkZEIHRvIG1ha2Ugc3VyZSB0aGF0IGlzIGFuCglBbHBoYSBFTEYgYmZkLgoJKGVsZjY0X2FscGhhX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IFVzZSBpc19hbHBoYV9lbGYgbWFjcm8gdG8gY2hlY2sKCXRoZSBiZmQgYmVpbmcgcHJvY2Vzc2VkLgoJKGVsZjY0X2FscGhhX2NyZWF0ZV9keW5hbWljX3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGY2NF9hbHBoYV9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShlbGY2NF9hbHBoYV9zaXplX2dvdF9zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfZmluYWxfbGluayk6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX2NoZWNrX3JlbG9jcyk6IFVzZSBlbGZfc3ltdGFiX2hkci4KCShlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbl9yKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX21rb2JqZWN0KTogQ2FsbCBiZmRfZWxmX2FsbG9jYXRlX29iamVjdC4KCShwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogVXNlIGlzX3BwYzY0X2VsZl90YXJnZXQgdG8gY2hlY2sgdGhlIGJmZAoJYmVpbmcgcHJvY2Vzc2VkLgoJKG9wZF9lbnRyeV92YWx1ZSk6IExpa2V3aXNlLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IFVzZSBlbGZfc3ltdGFiX2hkci4KCShvcGRfZW50cnlfdmFsdWUpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKGdldF9zeW1faCk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9lZGl0X29wZCk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl90bHNfb3B0aW1pemUpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfZWRpdF90b2MpOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkodG9jX2FkanVzdGluZ19zdHViX25lZWRlZCk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9zaXplX3N0dWJzKTogTGlrZXdpc2UuCgkocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChzdHJ1Y3QgZWxmX3MzOTBfb2JqX3RkYXRhKTogQWRkIGEgY29tbWVudAoJcmVtaW5kaW5nIHByb2dyYW1tZXJzIHRvIGtlZXAgdGhpcyBzdHJ1Y3R1cmUgaW4gc3luYyB3aXRoIHRoZSBvbmUKCWRlZmluZWQgaW4gZWxmMzItczM5MC5jLgoJKGVsZl9zMzkwX21rb2JqZWN0KTogQ2FsbCBiZmRfZWxmX2FsbG9jYXRlX29iamVjdC4KCShpc19zMzkwX2VsZik6IE5ldyBtYWNyby4gIENoZWNrcyBhIEJGRCB0byBtYWtlIHN1cmUgdGhhdCBpcyBhbiBzMzkwCglFTEYgYmZkLgoJKGVsZl9zMzkwX2NoZWNrX3JlbG9jcyk6IFVzZSBpc19zMzkwX2VsZiBtYWNybyB0byBjaGVjayAgICB0aGUgYmZkCgliZWluZyBwcm9jZXNzZWQuCgkoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZl9zMzkwX2NoZWNrX3JlbG9jcyk6IFVzZSBlbGZfc3ltdGFiX2hkci4KCShlbGZfczM5MF9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODZfNjQuYyAoZWxmNjRfeDg2XzY0X21rb2JqZWN0KTogQ2FsbCBiZmRfZWxmX2FsbG9jYXRlX29iamVjdC4KCShpc194ODZfNjRfZWxmKTogTmV3IG1hY3JvLiAgQ2hlY2tzIGEgQkZEIHRvIG1ha2Ugc3VyZSB0aGF0IGlzIGFuCgl4ODZfNjQgRUxGIGJmZC4KCShlbGY2NF94ODZfNjRfY2hlY2tfcmVsb2NzKTogVXNlIGlzX3g4Nl82NF9lbGYgbWFjcm8gdG8gY2hlY2sgdGhlIGJmZAoJYmVpbmcgcHJvY2Vzc2VkLgoJKGVsZjY0X3g4Nl82NF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZjY0X3g4Nl82NF9jaGVja19yZWxvY3MpOiBVc2UgZWxmX3N5bXRhYl9oZHIuCgkoZWxmNjRfeDg2XzY0X2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGY2NF94ODZfNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtc3BhcmMuYyAoX2JmZF9zcGFyY19lbGZfbWtvYmplY3QpOiBDYWxsIGJmZF9lbGZfYWxsb2NhdGVfb2JqZWN0LgoJKGlzX3NwYXJjX2VsZik6IE5ldyBtYWNyby4gIENoZWNrcyBhIEJGRCB0byBtYWtlIHN1cmUgdGhhdCBpcyBhIFNwYXJjCglFTEYgYmZkLgoJKF9iZmRfc3BhcmNfZWxmX2NoZWNrX3JlbG9jcyk6IFVzZSBpc19zcGFyY19lbGYgbWFjcm8gdG8gY2hlY2sgdGhlCgliZmQgYmVpbmcgcHJvY2Vzc2VkLgoJKF9iZmRfc3BhcmNfZWxmX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShfYmZkX3NwYXJjX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShfYmZkX3NwYXJjX2VsZl9jaGVja19yZWxvY3MpOiBVc2UgZWxmX3N5bXRhYl9oZHIuCgkoX2JmZF9zcGFyY19lbGZfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKF9iZmRfc3BhcmNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKF9iZmRfc3BhcmNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDgtMDItMTIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgNTMwMywgNTc1NQoJKiBhcmFuZ2Utc2V0LmM6IERlbGV0ZS4KCSogYXJhbmdlLXNldC5oOiBEZWxldGUuCgkqIGR3YXJmMi5jOiBSZXZlcnQgMjAwNy0wOS0yMSBjaGFuZ2VzLgoJKiBNYWtlZmlsZS5hbTogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgoyMDA4LTAyLTExICBCZXJuZCBTY2htaWR0ICA8YmVybmQuc2NobWlkdEBhbmFsb2cuY29tPgoKCSogZWxmMzItYmZpbi5jIChiZmluX3JlbG9jYXRlX3NlY3Rpb24pOiBTZXQgdXAgZHlub2JqIGJlZm9yZSB1c2luZyBpdAoJaWYgbmVjZXNzYXJ5LgoJKGVsZjMyX2JmaW5fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IFNpbXBsaWZ5LCBhbmQgZW5zdXJlIG9iamVjdCB0eXBlCgltaXNtYXRjaGVzIGFyZSBkZXRlY3RlZC4KCgkqIGVsZjMyLWJmaW4uYyAoYmZpbmZkcGljX3JlbG9jYXRlX3NlY3Rpb24pOiBUYWtlIG1vcmUgY2FyZSBub3QgdG8KCWVtaXQgaW52YWxpZCByZWxvY3Mgb3Igcm9maXh1cCBlbnRyaWVzIGZvciBkZWxldGVkIC5laF9mcmFtZSBlbnRyaWVzLgoKMjAwOC0wMi0xMSAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNhY2hlLmMgKGNhY2hlX2JyZWFkKTogU2V0IGJmZF9lcnJvcl9maWxlX3RydW5jYXRlZCBpZiBFT0YKCXdhcyByZWFjaGVkLgoJKiBzcmVjLmMgKHNyZWNfc2Nhbik6IENhbGN1bGF0ZSB0aGUgY2hlY2tzdW0uICBDb21wbGFpbiBvbiBtaXNtYXRjaC4KCjIwMDgtMDItMDcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1zcHUuYyAoc3B1X2VsZl9zaXplX3N0dWJzKTogUmV2ZXJ0IDIwMDgtMDEtMjggZG91YmxpbmcKCW9mIF9vdmx5X2J1Zl90YWJsZSBzaXplLgoJKHNwdV9lbGZfYnVpbGRfc3R1YnMpOiBVc2UgbG93IGJpdCBvZiAuc2l6ZSBhcyAicHJlc2VudCIgYml0LgoJQWRqdXN0IGluaXRpYWxpc2F0aW9ucyByZWxhdGluZyB0byBfb3ZseV9idWZfdGFibGUuCgoyMDA4LTAyLTA0ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZWxmMzIteHRlbnNhIChlbGZfeHRlbnNhX3JlbG9jYXRlX3NlY3Rpb24pOiBBZnRlciBmaW5kaW5nIGFuIGludmFsaWQKCXJlbG9jYXRpb24sIGRvIG5vdCBjb250aW51ZSBwcm9jZXNzaW5nIGl0LiAgSWdub3JlIFJfWFRFTlNBX0FTTV9FWFBBTkQKCXJlbG9jYXRpb25zIGFnYWluc3QgZHluYW1pYyBzeW1ib2xzLgoJKGVsZl94dGVuc2FfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBEbyBub3QgZmFpbCBpZiB0aGVyZSBpcyBubwoJLnh0LmxpdCBzZWN0aW9uLgoKMjAwOC0wMi0wNCAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgkgICAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIDU3MTUKCSogd2FybmluZy5tNDogRW5hYmxlIC1Xbm8tZm9ybWF0IGJ5IGRlZmF1bHQgd2hlbiB1c2luZyBnY2Mgb24KCW1pbmd3LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwOC0wMi0wNCAgQWRhbSBOZW1ldCAgPGFuZW1ldEBjYXZpdW1uZXR3b3Jrcy5jb20+CgoJKiBhcmNodXJlcy5jOiBVcGRhdGUgY29weXJpZ2h0LgoJKGJmZF9tYWNoX21pcHNfb2N0ZW9uKTogTmV3IG1hY3JvLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGVsZnh4LW1pcHMuYyAoX2JmZF9lbGZfbWlwc19tYWNoKTogSGFuZGxlIE9jdGVvbi4KCShtaXBzX3NldF9pc2FfZmxhZ3MpOiBMaWtld2lzZS4KCShtaXBzX21hY2hfZXh0ZW5zaW9ucyk6IEFkZCBPY3Rlb24uCgkqIGNwdS1taXBzLmM6IFVwZGF0ZSBjb3B5cmlnaHQuCgkoSV9taXBzb2N0ZW9uKTogTmV3IGVudW0gY29uc3RhbnQuCgkoYXJjaF9pbmZvX3N0cnVjdCk6IEFkZCBPY3Rlb24uCgoyMDA4LTAyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItc3B1LmMgKHNwdV9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IENvcnJlY3QgcmV0dXJuIHR5cGUuCglSZXR1cm4gZXJyb3Igc3RhdHVzIG9uIHVuZXhwZWN0ZWQgcmVsb2NhdGlvbiBlcnJvcnMuCgoyMDA4LTAyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVBSIGxkLzU2OTIKCSogZWxmLmMgKGJmZF9lbGZfZ2V0X2VsZl9zeW1zKTogUmV2ZXJ0IDIwMDgtMDEtMzEuICBJbnN0ZWFkIGFib3J0CglvbiBub24tRUxGIGlucHV0LgoJKiBlbGYzMi1hcm0uYyAoZWxmMzJfYXJtX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFNraXAgZ2x1ZQoJcHJvY2Vzc2luZyBvbiBub24tRUxGIGlucHV0LgoKMjAwOC0wMS0zMSAgTWFyYyBHYXV0aGllciAgPG1hcmNAdGVuc2lsaWNhLmNvbT4KCgkqIGNvbmZpZy5iZmQgKHh0ZW5zYSotKi0qKTogUmVjb2duaXplIHByb2Nlc3NvciB2YXJpYW50cy4KCjIwMDgtMDEtMzEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgbGQvNTY5MgoJKiBlbGYuYyAoYmZkX2VsZl9nZXRfZWxmX3N5bXMpOiBDaGVjayB0aGUgcmV0dXJuIHZhbHVlIG9mCglnZXRfZWxmX2JhY2tlbmRfZGF0YS4KCjIwMDgtMDEtMjggIEZhYmlhbiBHcm9mZmVuICA8Z3JvYmlhbkBnZW50b28ub3JnPgoKCSogY29uZmlnLmJmZCAoeDg2XzY0LSotc29sYXJpczIpOiBBZGQgc3VwcG9ydCBmb3IgdGhpcyB0YXJnZXQuCgoyMDA4LTAxLTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVJld3JpdGUgU1BVIG92ZXJsYXkgaGFuZGxpbmcgY29kZS4gIFB1dCBvdmVybGF5IGNhbGxzIHN0dWJzIGluIHRoZQoJb3ZlcmxheXMgd2hlcmUgcG9zc2libGUuICBVc2UgYSBmYXN0ZXIgY2FsbCBzdHViLCBvciBvcHRpb25hbGx5IGF0Cgljb21waWxlIHRpbWUsIGEgbW9yZSBjb21wYWN0IHN0dWIuICBEb3VibGUgc2l6ZSBvZiBfb3ZseV9idWZfdGFibGUKCXNvIHRoYXQgbG93IGJpdCBvZiBfb3ZseV90YWJsZS5idWYgY2FuIGJlIHVzZWQgYXMgYSAicHJlc2VudCIgYml0LgoJUmVzZXJ2ZSBhbiBleHRyYSBfb3ZseV90YWJsZSBlbnRyeSBmb3IgaW5kZXggemVyby4KCSogZWxmMzItc3B1LmM6IChzdHJ1Y3Qgc3B1X2xpbmtfaGFzaF90YWJsZSk6IERlbGV0ZSBhIG51bWJlciBvZiBmaWVsZHMsCglhZGQgbmV3IG9uZXMuCgkoc3RydWN0IGdvdF9lbnRyeSk6IE5ldy4KCShzdHJ1Y3Qgc3B1X3N0dWJfaGFzaF9lbnRyeSk6IERlbGV0ZS4KCShzdHViX2hhc2hfbmV3ZnVuYywgc3B1X2VsZl9saW5rX2hhc2hfdGFibGVfZnJlZSk6IERlbGV0ZS4KCShzcHVfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBBZGp1c3QgZm9yIHN0cnVjdCBjaGFuZ2VzLgoJKHNwdV9zdHViX25hbWUpOiBEZWxldGUuCgkoc3B1X2VsZl9maW5kX292ZXJsYXlzKTogRG9uJ3QgdHJhY2sgc2VjdGlvbnMgZnJvbSBvdmVybGF5IHJlZ2lvbnMuCglJbnN0ZWFkIHNldCBvdmxfYnVmIG51bWJlciBpbiBzcHUgZWxmIHNlY3Rpb24gZGF0YS4gIEVycm9yIGlmCglvdmVybGF5cyBpbiBvbmUgcmVnaW9uIGRvbid0IHN0YXJ0IGF0IHRoZSBzYW1lIGFkZHJlc3MuICBBZGp1c3QKCWZvciBzdHJ1Y3QgX3NwdV9lbGZfc2VjdGlvbl9kYXRhIGNoYW5nZXMuCgkoU0laRU9GX1NUVUIxLCBTSVpFT0ZfU1RVQjIsIElMQV83OSwgSUxBXzc4KTogRGVsZXRlLgoJKE9WTF9TVFVCX1NJWkUsIEJSU0wsIExOT1AsIElMQSk6IERlZmluZS4KCShuZWVkc19vdmxfc3R1Yik6IEFkanVzdCBmb3Igc3RydWN0IF9zcHVfZWxmX3NlY3Rpb25fZGF0YSBjaGFuZ2VzLgoJKGVudW0gX2luc25fdHlwZSk6IE5ldy4KCShjb3VudF9zdHViLCBidWlsZF9zdHViKTogTmV3IGZ1bmN0aW9ucy4KCShhbGxvY2F0ZV9zcHVlYXJfc3R1YnMpOiBVc2UgY291bnRfc3R1Yi4KCShidWlsZF9zcHVlYXJfc3R1YnMpOiBVc2UgYnVpbGRfc3R1Yi4KCShwb3B1bGF0ZV9zdHVicywgc29ydF9zdHVicyk6IERlbGV0ZS4KCShwcm9jZXNzX3N0dWJzKTogTmV3IGZ1bmN0aW9uLgoJKHdyaXRlX29uZV9zdHViKTogRGVsZXRlLgoJKHNwdV9lbGZfc2l6ZV9zdHVicywgc3B1X2VsZl9idWlsZF9zdHVicyk6IFJld3JpdGUuCgkoYWxsb2Nfc3RhY2tfaW5mbyk6IEFkanVzdCBmb3Igc3RydWN0IF9zcHVfZWxmX3NlY3Rpb25fZGF0YSBjaGFuZ2VzLgoJKG1heWJlX2luc2VydF9mdW5jdGlvbiwgY2hlY2tfZnVuY3Rpb25fcmFuZ2VzKTogTGlrZXdpc2UuCgkoZmluZF9mdW5jdGlvbiwgcGFzdGVkX2Z1bmN0aW9uLCBidWlsZF9jYWxsX3RyZWUpOiBMaWtld2lzZS4KCShzcHVfZWxmX3N0YWNrX2FuYWx5c2lzLCBzcHVfZWxmX21vZGlmeV9zZWdtZW50X21hcCk6IExpa2V3aXNlLgoJKHNwdV9lbGZfbW9kaWZ5X3Byb2dyYW1faGVhZGVycyk6IExpa2V3aXNlLgoJKGludGVyZXN0aW5nX3NlY3Rpb24pOiBEZXRlY3Qgc3R1YiBzZWN0aW9ucyBkaWZmZXJlbnRseS4gIERlbGV0ZQoJaHRhYiBwYXJhbSwgYWRqdXN0IGFsbCBjYWxsZXJzLgoJKHNwdV9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFJld3JpdGUgc3R1YiBoYW5kbGluZy4KCShzcHVfZWxmX291dHB1dF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKGJmZF9lbGYzMl9iZmRfbGlua19oYXNoX3RhYmxlX2ZyZWUpOiBEZWxldGUuCgkqIGVsZjMyLXNwdS5oIChzdHJ1Y3QgX3NwdV9lbGZfc2VjdGlvbl9kYXRhKTogTW92ZSBpbnB1dC1vbmx5IGFuZAoJb3V0cHV0LW9ubHkgZmllbGRzIGludG8gYSB1bmlvbi4gIEFkZCBvdmxfYnVmLgoJKHNwdV9lbGZfc2l6ZV9zdHVicywgc3B1X2VsZl9idWlsZF9zdHVicyk6IFVwZGF0ZSBwcm90b3R5cGVzLgoKMjAwOC0wMS0yNSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1tMzJjLmMgKF9iZmRfbTMyY19lbGZfZWhfZnJhbWVfYWRkcmVzc19zaXplKTogTmV3LgoKMjAwOC0wMS0yNSAgS2FpIFRpZXR6ICA8a2FpLnRpZXR6QG9uZXZpc2lvbi5jb20+CgoJKiBiZmQtaW4uaDogQWRkIG1pbmd3IEk2NCBzdXBwb3J0LgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGVkLgoJKiBiZmQuYzogKGJmZF9nZXRfc2lnbl9leHRlbmRfdm1hKTogQWRkIHBlLXg4Ni02NCBhbmQgcGVpLXg4Ni02NC4KCjIwMDgtMDEtMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgNDQ1MwoJKiBmb3JtYXQuYyAoYmZkX2NoZWNrX2Zvcm1hdF9tYXRjaGVzKTogRG9uJ3QgYWNjZXB0IGFyY2hpdmVzIGFzCglmdWxseSBtYXRjaGluZyB1bmxlc3MgdGhleSBoYXZlIGEgbWFwLgoKMjAwOC0wMS0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfbGlua19vdXRwdXRfcmVsb2NzKTogQ29ycmVjdCBlcnJvciByZXR1cm4uCgoyMDA4LTAxLTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWNvZmYuYyAoX2JmZF9lY29mZl9hcmNoaXZlX3ApOiBEZWxldGUuCgkqIGxpYmVjb2ZmLmggKF9iZmRfZWNvZmZfYXJjaGl2ZV9wKTogRGVsZXRlLgoJKiBjb2ZmLWFscGhhLmMgKGVjb2ZmYWxwaGFfbGl0dGxlX3ZlYyk6IFVzZSBiZmRfZ2VuZXJpY19hcmNoaXZlX3AuCgkqIGNvZmYtbWlwcy5jIChlY29mZl9saXR0bGVfdmVjLCBlY29mZl9iaWdfdmVjKTogTGlrZXdpc2UuCgkoZWNvZmZfYmlnbGl0dGxlX3ZlYyk6IExpa2V3aXNlLgoKMjAwOC0wMS0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiA1NjQ2CgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfdGxzX29wdGltaXplKTogRW5zdXJlIGh0YWItPnRsc19nZXRfYWRkcgoJbm9uLU5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcuCgoyMDA4LTAxLTE1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVBSIDU2MDQKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSk6IEFkZCBnY19rZWVwLiAgUmVtb3ZlIHBhcmFtCgluYW1lcyBmcm9tIG90aGVycy4KCShfYmZkX2VsZl9nY19rZWVwKTogRGVjbGFyZS4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX2djX2tlZXApOiBEZWZpbmUuCgkoZWxmTk5fYmVkKTogSW5pdCBuZXcgZmllbGQuCgkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfZ2Nfa2VlcCk6IE5ldyBmdW5jdGlvbi4KCShiZmRfZWxmX2djX3NlY3Rpb25zKTogQ2FsbCBnY19rZWVwLgoJKiBlbGY2NC1wcGMuYyAoZWxmX2JhY2tlbmRfZ2Nfa2VlcCk6IERlZmluZS4KCShzdHJ1Y3QgX3BwYzY0X2VsZl9zZWN0aW9uX2RhdGEpOiBNb3ZlIC5vcGQgcmVsYXRlZCBmaWVsZHMgdG8KCWEgc3RydWN0IHNvIHRoZXkgZG9uJ3Qgb2NjdXB5IHRoZSBzYW1lIHN0b3JhZ2UuICBBZGp1c3QgYWNjZXNzZXMKCXRocm91Z2hvdXQgZmlsZS4KCShwcGM2NF9lbGZfZ2Nfa2VlcCk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20uLgoJKHBwYzY0X2VsZl9nY19tYXJrX2hvb2spOiAuLmhlcmUuICBEb24ndCBjYWxsIF9iZmRfZWxmX2djX21hcmsKCXRvIG1hcmsgLm9wZCBzZWN0aW9uLCBqdXN0IHNldCBnY19tYXJrLgoJKHBwYzY0X2VsZl9lZGl0X29wZCk6IFJlbW92ZSBub19vcGRfb3B0IHBhcm0uICBEb24ndCBzZXQgb3BkLT5hZGp1c3QKCXVubGVzcyB3ZSBhcmUgY2hhbmdpbmcgLm9wZC4gIFRlc3Qgbm9uLU5VTEwgb3BkLT5hZGp1c3QgYXQgYWxsCglhY2Nlc3NlcyB0aHJvdWdob3V0IGZpbGUuCgkqIGVsZjY0LXBwYy5oIChwcGM2NF9lbGZfZWRpdF9vcGQpOiBVcGRhdGUgcHJvdG90eXBlLgoKMjAwOC0wMS0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGJmZC1pbi5oIChCRkRfSE9TVF9MT05HX0xPTkcpOiBEZWxldGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDgtMDEtMTEgIFRyaXN0YW4gR2luZ29sZCAgPGdpbmdvbGRAYWRhY29yZS5jb20+CgkgICAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBhZGFjb3JlLmNvbT4KCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX2djX3N3ZWVwX2hvb2spOiBFeGl0IGVhcmx5IGlmIGdlbmVyYXRpbmcgYQoJcmVsb2NhdGFibGUuCgkqIGVsZjMyLWFybS5jIChlbGYzMl9hcm1fZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXZheC5jIChlbGZfdmF4X2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzIteHRlbnNhLmMgKGVsZl94dGVuc2FfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKiBlbGZ4eC1taXBzLmMgKF9iZmRfbWlwc19lbGZfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKiBlbGZ4eC1zcGFyYy5jIChfYmZkX3NwYXJjX2VsZl9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYyAoYmZkX2VsZl9nY19zZWN0aW9ucyk6IERvIG5vdCBwdW50IG9uIHJlbG9jYXRhYmxlIG91dHB1dAoJb3IgZXhlY3V0YWJsZSBvdXRwdXQgd2l0aCByZWxvY2F0aW9ucy4KCjIwMDgtMDEtMDkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgZ2FzLzU1NTIKCSogZWxmMzItZnIzMC5jIChmcjMwX2VsZl9ob3d0b190YWJsZSk6IFNldCBwYXJ0aWFsX2lucGxhY2UgZmllbGQKCXRvIEZBTFNFIGZvciBhbGwgcmVsb2NzLgoKMjAwOC0wMS0wOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0BuaWxkcmFtLmNvLnVrPgoKCVBSIGxkLzU1MjYKCSogZWxmLWJmZC5oIChlaF9jaWVfZmRlKTogQWRkIHUuY2llLnUuZnVsbF9jaWUgYW5kIHUuY2llLm1lcmdlZAoJZmllbGRzLiAgUmVuYW1lIHUuY2llLnUubWVyZ2VkIHRvIHUuY2llLnUubWVyZ2VkX3dpdGguCgkoZWhfZnJhbWVfc2VjX2luZm8pOiBBZGQgYSBjaWVzIGZpZWxkLgoJKGVoX2ZyYW1lX2hkcl9pbmZvKTogQWRkIGEgbWVyZ2VfY2llcyBmaWVsZC4KCSogZWxmLWVoLWZyYW1lLmMgKGNpZSk6IEFkZCBhIHJlbG9jX2luZGV4IG1lbWJlciB0byB0aGUgcGVyc29uYWxpdHkKCXVuaW9uLgoJKF9iZmRfZWxmX2JlZ2luX2VoX2ZyYW1lX3BhcnNpbmcpOiBTZXQgaGRyX2luZm8tPm1lcmdlX2NpZXMgaW5zdGVhZAoJb2YgaGRyX2luZm8tPmNpZXMuCgkoX2JmZF9lbGZfcGFyc2VfZWhfZnJhbWUpOiBSZW1vdmUgdG1wX2NpZS4gIENjcmVhdGUgYW4gYXJyYXkgb2YKCWNpZSBzdHJ1Y3R1cmVzIGluIGFsbCBjYXNlcyBhbmQgdXNlIGl0IGluc3RlYWQgb2YgZXh0ZW5kZWRfY2llcy4KCUlmIG1lcmdpbmcsIHN0b3JlIHRoZSBjaWUgYXJyYXkgaW4gc2VjX2luZm8tPmNpZXMgYW5kIHBvaW50IGVhY2gKCUNJRSdzIGVoX2ZkZV9jaWUgYXQgdGhlIGFzc29jaWF0ZWQgZWxlbWVudC4gIERvIG5vdCB0cnkgdG8KCWNhbGN1bGF0ZSB0aGUgdmFsdWUgb2YgdGhlIHBlcnNvbmFsaXR5IHJvdXRpbmUgaGVyZTsgcmVjb3JkIHRoZQoJb2Zmc2V0IG9mIHRoZSByZWxvY2F0aW9uIGluc3RlYWQuICBEbyBub3QgbWVyZ2UgQ0lFcyBoZXJlLgoJKF9iZmRfZWxmX2VuZF9laF9mcmFtZV9wYXJzaW5nKTogRG8gbm90IGZyZWUgaGRyX2luZm8tPmNpZXMgaGVyZS4uLgoJKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZV9oZHIpOiAuLi5kbyBpdCBoZXJlIGluc3RlYWQuCgkoX2JmZF9lbGZfZ2NfbWFya19mZGVzKTogTWFyayB0aGUgb3JpZ2luYWwgKHVubWVyZ2VkKSBDSUUuCgkoZmluZF9tZXJnZWRfY2llKTogTmV3IGZ1bmN0aW9uLgoJKF9iZmRfZWxmX2djX21hcmtfZmRlcyk6IFVzZSBpdC4gIEZyZWUgc2VjX2luZm8tPmNpZXMuCgoyMDA4LTAxLTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIGJpbnV0aWxzLzU1MzUKCSogdm1zLmMgKHZtc19jbG9zZV9hbmRfY2xlYW51cCk6IENoZWNrIGZvciB0aGUgcHJlc2VuY2Ugb2YgYQoJdm1zX3ByaXZhdGVfZGF0YV9zdHJ1Y3QgYmVmb3JlIGV4YW1pbmluZyBhbnkgb2YgaXRzIGZpZWxkcy4KCjIwMDgtMDEtMDcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBsZC81NTIyCgkqIGVsZmxpbmsuYyAoZWxmX2xpbmtfaW5wdXRfYmZkKTogRG9uJ3Qgd3JpdGUgb3V0IGEgc2VjdGlvbiBpZgoJaXRzIG91dHB1dCBzZWN0aW9uIGlzIG1hcmtlZCB3aXRoIFNFQ19ORVZFUl9MT0FELgoKRm9yIG9sZGVyIGNoYW5nZXMgc2VlIENoYW5nZUxvZy0yMDA3CgwKTG9jYWwgVmFyaWFibGVzOgptb2RlOiBjaGFuZ2UtbG9nCmxlZnQtbWFyZ2luOiA4CmZpbGwtY29sdW1uOiA3NAp2ZXJzaW9uLWNvbnRyb2w6IG5ldmVyCkVuZDoK