MjAwMS0xMi0zMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZmluYWxfbGluayk6IENoZWNrIGlmIGR5bm9iaiBpcyBub3QgTlVMTAoJYmVmb3JlIGxvb2tpbmcgZm9yIC5laF9mcmFtZV9oZHIgc2VjdGlvbi4KCSogZWxmLWVoLWZyYW1lLmMgKF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWVfaGRyKTogSWYKCS5laF9mcmFtZV9oZHIgc2VjdGlvbiBpcyBiZWluZyBzdHJpcHBlZCBmcm9tIG91dHB1dCwgZG9uJ3QgZG8KCWFueXRoaW5nLgoKMjAwMS0xMi0yNyAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX2dlbmVyYXRlX3J0aW5pdCk6IENsZWFuIGRhdGFfYnVmZmVyIGFsbG9jL2ZyZWUuCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9nZW5lcmF0ZV9ydGluaXQpOiBTYW1lLgoJKHhjb2ZmX3dyaXRlX2FyY2hpdmVfY29udGVudHNfYmlnKTogUmV3cml0ZS4KCSh4Y29mZl93cml0ZV9hcm1hcF9iaWcpOiBSZXdyaXRlLgoJKHhjb2ZmX3dyaXRlX29uZV9hcm1hcF9iaWcpOiBEZWxldGUuCgkqIGxpYnhjb2ZmLmggOiBDbGVhbiB1cC4KCjIwMDEtMTItMjEgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgogICAgICAgICogeGNvZmZsaW5rLmMgKGJmZF94Y29mZl9saW5rX2dlbmVyYXRlX3J0aW5pdCk6IE5ldyBmdW5jdGlvbi4KCUludGVyZmFjZSB0byBsaW5rZXIgZm9yIGdlbmVyYXRpb24gb2YgX19ydGluaXQuCgkqIGxpYnhjb2ZmLmggKHN0cnVjdCB4Y29mZl9iYWNrZW5kX2RhdGFfcmVjKTogQWRkIG5ldyBvcHMgdG8geGNvZmYKCWJhY2tlbmQgdG8gZ2VuZXJhdGUgc3BlY2lhbCBsaW5rZXIgc3ltYm9sIF9fcnRpbml0LgoJKiBjb2ZmLXJzNjAwMC5jIChiZmRfeGNvZmZfYmFja2VuZF9kYXRhLCBiZmRfcG1hY194Y29mZl9iYWNrZW5kX2RhdGEpCgk6ICBBZGQgbmV3IHJ0aW5pdCBvcHMKCSogY29mZjY0LXJzNjAwMC5jIChiZmRfeGNvZmZfYWl4NV9iYWNrZW5kX2RhdGEsCgliZmRfeGNvZmZfYmFja2VuZF9kYXRhKTogU2FtZS4KCSogYmZkLWluLmg6IEFkZCBiZmRfeGNvZmZfbGlua19nZW5lcmF0ZV9ydGluaXQuCgkqIGJmZC1pbjIuaCA6IFJlZ2VuZXJhdGUuCgoyMDAxLTEyLTIxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNwYXJjLmMgKF9iZmRfc3BhcmNfZWxmX2hvd3RvX3RhYmxlKTogRml4IGRzdF9tYXNrIGZvcgoJUl9TUEFSQ19ESVNQMzIuICBTdXBwb3J0IFJfU1BBUkNfUExUMzIuCgkoc3BhcmNfcmVsb2NfbWFwKTogQWRkIEJGRF9SRUxPQ18xNl9QQ1JFTCBhbmQgQkZEX1JFTE9DX1NQQVJDX1BMVDMyLgoJKGVsZjMyX3NwYXJjX2NoZWNrX3JlbG9jcyk6IEhhbmRsZSBSX1NQQVJDX1BMVDMyLgoJKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfaG93dG9fdGFibGUpOiBGaXggZHN0X21hc2sgZm9yCglSX1NQQVJDX0RJU1AzMi4gIFN1cHBvcnQgUl9TUEFSQ19QTFQzMiBhbmQgUl9TUEFSQ19QTFQ2NC4KCShzcGFyY19yZWxvY19tYXApOiBBZGQgQkZEX1JFTE9DXzE2X1BDUkVMLCBCRkRfUkVMT0NfNjRfUENSRUwKCWFuZCBCRkRfUkVMT0NfU1BBUkNfUExUMzIuCgkoc3BhcmM2NF9lbGZfY2hlY2tfcmVsb2NzKTogSGFuZGxlIFJfU1BBUkNfUExUMzIgYW5kIFJfU1BBUkNfUExUNjQuCgkoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiByZWxvYy5jIChiZmRfcmVsb2NfY29kZV90eXBlKTogQWRkIEJGRF9SRUxPQ19TUEFSQ19QTFQzMi4KCSogYmZkLWluMi5oLCBsaWJiZmQuaDogUmVidWlsdC4KCjIwMDEtMTItMjAgIFRvbSBSaXggIDx0cml4QHJlZGhhdC5jb20+CgoJKiBjb2ZmY29kZS5oIChjb2ZmX2NvbXB1dGVfc2VjdGlvbl9maWxlX3Bvc2l0aW9ucyk6IEFkZCBzcGVjaWFsIEFJWAoJbG9hZGVyIGFsaWdubWVudCBvZiB0ZXh0IHNlY3Rpb24uCgoyMDAxLTEyLTIwICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnLmJmZCAobWlwcy1kZWMtbmV0YnNkKik6IERlbGV0ZSBhbGlhcyBmb3IgbWlwcyplbC0qLW5ldGJzZCouCgoJKiBjb25maWcuYmZkIChhcm0tKi1uZXRic2RlbGYqKTogQWRkIHRhcmdldC4KCSogY29uZmlndXJlLmluOiBJbmNsdWRlIG5ldGJzZC1jb3JlLmxvIGZvciBuYXRpdmUgYXJtLSotbmV0YnNkKi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMS0xMi0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmNvZGUuaCAoZWxmX3NsdXJwX3N5bWJvbF90YWJsZSk6IFRlc3QgZWxmX2VsZnNlY3Rpb25zIGZvciBOVUxMLAoJYXMgY2FuIGhhcHBlbiB3aXRoIGEgY29yZSBmaWxlLCBiZWZvcmUgZGVyZWZlcmVuY2luZy4KCjIwMDEtMTItMTkgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9ncm9rX3BzaW5mbyk6IEZpeCBjb3B5LWFuZC1wYXN0ZSBlcnJvcjoKCXRhcmdldCBpcyBpMzg2IChub3QgbWlwcyksIGFuZCBzaXplIG9mIGRlc2NkYXRhIGlzIDEyNCAobm90IDEyOCkuCgoyMDAxLTEyLTE5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi1laC1mcmFtZS5jIChfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBJZiBuZXdfc2l6ZQoJaXMgMCwgdGVtcG9yYXJpbHkgZ3JvdyBpdCB0byBtaW5pbWFsIENJRSBzaXplLgoJKF9iZmRfZWxmX3dyaXRlX3NlY3Rpb25fZWhfZnJhbWUpOiBJZiBpbnB1dCAuZWhfZnJhbWUgc2VjdGlvbiB3b3VsZAoJZW5kIHVwIGVtcHR5LCBidWlsZCBhIGZha2UgbWluaW1hbCBDSUUuCgoyMDAxLTEyLTE5ICBTdGV2ZSBFbGxjZXkgIDxzamVAY3VwLmhwLmNvbT4KCgkqIGNvbmZpZy5iZmQgKGJmZF9lbGYzMl9pYTY0X2hwdXhfYmlnX3ZlYyk6IE5ldyB2ZWN0b3IgZm9yCglpYTY0Ki0qLWhwdXgqIHRhcmdldC4KCShiZmRfZWxmNjRfaWE2NF9ocHV4X2JpZ192ZWMpOiBMaWtld2lzZS4KCSogdGFyZ2V0cy5jOiBEaXR0by4KCSogY29uZmlndXJlLmluOiBEaXR0by4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogUmVwbGFjZSB1c2Ugb2YKCWFsbG9jYSB3aXRoIGJmZF9tYWxsb2MuCgkoZ2V0X2xvY2FsX3N5bV9oYXNoKTogTGlrZXdpc2UuCgkoZWxmTk5faHB1eF9wb3N0X3Byb2Nlc3NfaGVhZGVycyk6IE5ldyBmdW5jdGlvbi4KCSNpbmNsdWRlIGVsZk5OLXRhcmdldC5oIGFnYWluIHdpdGggdmFsdWVzIGZvciBJQTY0IEhQLVVYIHZlY3Rvci4KCjIwMDEtMTItMTggIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckByZWRoYXQuY29tPgoKICAgICAgICAqIGVsZi5jIChhc3NpZ25fZmlsZV9wb3NpdGlvbnNfZm9yX3NlZ21lbnRzKTogRG9uJ3Qgc29ydCBQVF9OT1RFCiAgICAgICAgc2VjdGlvbnMgb2YgY29yZWZpbGVzLiAgQWxzbyBpdCBtYWtlcyBubyBzZW5zZSB0byBzb3J0IGlmIGNvdW50ID09IDEuCgoyMDAxLTEyLTE4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZi5jIChfYmZkX2VsZl9jb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBBbHNvIGNvcHkgR1AuCgoyMDAxLTEyLTE4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZi5jIChfYmZkX2VsZl9jb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBVcGRhdGUgY29tbWVudHMuCgoyMDAxLTEyLTE4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZi1iZmQuaCAoX2JmZF9lbGZfY29weV9wcml2YXRlX2JmZF9kYXRhKTogTmV3LiBQcm90b3R5cGUuCgkoX2JmZF9taXBzX2VsZl9jb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBSZW1vdmVkLgoKCSogZWxmLmMgKF9iZmRfZWxmX2NvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IE5ldy4gQ29weSBlX2ZsYWdzIGluCgl0aGUgRUxGIGhlYWRlci4KCgkqIGVsZjMyLWkzNzAuYyAoPz9fZWxmX2NvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IFJlbW92ZWQuCgkoYmZkX2VsZj8/X2JmZF9jb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBSZW1vdmVkLgoJKiBlbGYzMi1tMzJyLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tY29yZS5jOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi12ODUwLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmM6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmM6IExpa2V3aXNlLgoKCSogZWxmNjQtbWlwcy5jIChiZmRfZWxmNjRfYmZkX2NvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IFJlbW92ZWQuCgoJKiBlbGZ4eC10YXJnZXQuaCAoYmZkX2VsZk5OX2JmZF9jb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBEZWZpbmVkCgl0byBfYmZkX2VsZl9jb3B5X3ByaXZhdGVfYmZkX2RhdGEuCgoyMDAxLTEyLTE4ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogZWxmMzItczM5MCAoZWxmX3MzOTBfY2hlY2tfcmVsb2NzKTogUGFzcyBhZGRlbmQgdG8KCWdjX3JlY29yZF92dGVudHJ5LgoJKiBlbGY2NC1zMzkwIChlbGZfczM5MF9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCUZpeCBieSBBbmRyZWFzIEphZWdlciA8YWpAc3VzZS5kZT4uCgoyMDAxLTEyLTE4ICBKYXNvbiBUaG9ycGUgIDx0aG9ycGVqQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlndXJlLmhvc3Q6IENvcnJlY3RseSBtYXRjaCBhbGwgTmV0QlNEL21pcHMKCWhvc3RzLgoKMjAwMS0xMi0xOCAgbWF0dGhldyBncmVlbiAgPG1yZ0BldGVybmEuY29tLmF1PgoKCSogY29uZmlnLmJmZCAobTY4Ki0qLW5ldGJzZGVsZiopOiBOZXcgdGFyZ2V0LgoJKG02OCotKi1uZXRic2QpOiBBbHNvIGluY2x1ZGUgYmZkX2VsZjMyX202OGtfdmVjLgoJKG02OCotKi1uZXRic2Rhb3V0Kik6IE5ldyBhbGlhcyBmb3IgbTY4Ki0qLW5ldGJzZC4KCjIwMDEtMTItMTggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChzaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBTa2lwIGFub255bW91cyB2ZXJzaW9uIHRhZy4KCShlbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBEb24ndCBjb3VudCBhbm9ueW1vdXMgdmVyc2lvbiB0YWcuCgoyMDAxLTEyLTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi1laC1mcmFtZS5jIChzdHJ1Y3QgY2llKTogQWRkIG1ha2VfbHNkYV9yZWxhdGl2ZS4KCShzdHJ1Y3QgZWhfY2llX2ZkZSk6IEFkZCBsc2RhX2VuY29kaW5nLCBsc2RhX29mZnNldCwKCW1ha2VfbHNkYV9yZWxhdGl2ZS4KCShyZWFkX3ZhbHVlLCB3cml0ZV92YWx1ZSk6IE5ldy4KCShfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUpOiBJbmljaWFsaXplCglsc2RhX2VuY29kaW5nLCBsc2RhX29mZnNldCBhbmQgbWFrZV9sc2RhX3JlbGF0aXZlLgoJKF9iZmRfZWxmX2VoX2ZyYW1lX3NlY3Rpb25fb2Zmc2V0KTogSWYgbWFrZV9sc2RhX3JlbGF0aXZlLAoJcmVxdWVzdCBubyBkeW5hbWljIHJlbG9jIGZvciBMU0RBIGZpZWxkIG9mIEZERS4KCShfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lKTogSGFuZGxlIG1ha2VfbHNkYV9yZWxhdGl2ZS4KCUlmIGEgbm9uLURXX0VIX1BFX2Fic3B0ciB2YWx1ZSBpcyAwLCBkb24ndCBhZGp1c3QgaXQgYnkgYmFzZQoJb3IgcGNyZWwuICBGaXggYWRkcmVzcyBjb21wdXRhdGlvbiBmb3IgRFdfRUhfUEVfcGNyZWwgcmVsb2NzLgoJVXBkYXRlIExTREEgZmllbGQgaWYgTFNEQSBlbmNvZGluZyBpcyBEV19FSF9QRV9wY3JlbCwgYmVjYXVzZQoJLiBtaWdodCBoYXZlIGNoYW5nZWQgZHVlIHRvIGRlbGV0ZWQgRkRFIG9yIENJRXMuCgoyMDAxLTEyLTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi1zdHJ0YWIuYyAoc3RydWN0IGVsZl9zdHJ0YWJfaGFzaF9lbnRyeSk6IEFkZCB1Lm5leHQuCgkobGFzdF9lcSk6IFJlbW92ZS4KCShfYmZkX2VsZl9zdHJ0YWJfZmluYWxpemUpOiBEb24ndCB1c2UgYSBoYXNoIHRhYmxlIGZvciBsYXN0CgljaGFyYWN0ZXIgY2hhaW5zLCBpbnN0ZWFkIHVzZSBhbiBhcnJheS4KCjIwMDEtMTItMTggIEphc29uIFRob3JwZSAgPHRob3JwZWpAd2FzYWJpc3lzdGVtcy5jb20+CgoJKiBlbGYuYyAoZWxmY29yZV9uZXRic2RfZ2V0X2x3cGlkKTogTmV3IGZ1bmN0aW9uLgoJKGVsZmNvcmVfZ3Jva19uZXRic2RfcHJvY2luZm8pOiBOZXcgZnVuY3Rpb24uCgkoZWxmY29yZV9ncm9rX25ldGJzZF9ub3RlKTogTmV3IGZ1bmN0aW9uLgoJKGVsZmNvcmVfcmVhZF9ub3Rlcyk6IENhbGwgZWxmY29yZV9ncm9rX25ldGJzZF9ub3RlIHRvIHByb2Nlc3MKCU5ldEJTRCBFTEYgY29yZSBmaWxlIG5vdGVzLgoKMjAwMS0xMi0xOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmNvZGUuaCAoc3RydWN0IGJmZF9wcmVzZXJ2ZSk6IE5ldy4KCShlbGZfb2JqZWN0X3ApOiBSZXBsYWNlIHByZXNlcnZlZF8qIHZhcnMgd2l0aCBpbnN0YW5jZSBvZiBhYm92ZS4KCVNhdmUgYW5kIHJlc3RvcmUgYXJjaF9pbmZvIHBvaW50ZXIgcmF0aGVyIHRoYW4gYXJjaCwgbWFjaCBzbyB0aGF0Cgltb3JlIGNhc2VzIGNhbiBiZSByZXN0b3JlZC4gIFNhdmUgYW5kIHJlc3RvcmUgbmV3IHNlY3Rpb25fdGFpbCwKCXNlY3Rpb25faHRhYiBzdHJ1Y3R1cmUsIGFuZCBpbml0IGFwcHJvcHJpYXRlbHkuICBNb3ZlICJyZXN0IG9mCglzZWN0aW9uIGhlYWRlciIgY29kZSBzbyB0aGF0IGlfc2hkcnAgbmVlZHMgbm8gTlVMTCBpbml0aWFsaXNhdGlvbi4KCUZyZWUgb2xkIHNlY3Rpb25faHRhYiBvbiBzdWNjZXNzLgoJKiBlbGZjb3JlLmggKGVsZl9jb3JlX2ZpbGVfcCk6IExpa2V3aXNlLgoKMjAwMS0xMi0xNyAgVG9tIFJpeCAgPHRyaXhAcmVkaGF0LmNvbT4KCgkqIGNvZmZjb2RlLmggKHNlY190b19zdHlwX2ZsYWdzKTogQWRkIFNUWVBfRVhDRVBUIGFuZCBTVFlQX1RZUENISyBmb3IKCXhjb2ZmLgoKMjAwMS0xMi0xNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYtYmZkLmggKGVsZl9kaXNjYXJkZWRfc2VjdGlvbik6IERlZmluZS4KCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBVc2UgaXQuCgkoZWxmX3JlbG9jX3N5bWJvbF9kZWxldGVkX3ApOiBMaWtld2lzZS4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCB3YXJuIGFib3V0CglvdmVyZmxvd3MgZm9yIHBjIHJlbGF0aXZlIHJlbG9jcyBhZ2FpbnN0IGRpc2NhcmRlZCBzZWN0aW9ucy4KCjIwMDEtMTItMTcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEZvcm1hdHRpbmcuCgkqIGVsZjY0LW1pcHMuYzogQWRkIG1vc3Qgb2YgdGhlIGZpeGVzIGFuZCB0d2Vha3MgZG9uZSBpbiBlbGYzMi1taXBzLmMKCW92ZXIgdGhlIGxhc3QgbW9udGhzLiBBZGQgc29tZSBjb2RlIGZvciBtaXBzMTYgaGFuZGxpbmcuCgkobWlwc19lbGY2NF9jaGVja19taXBzMTZfc3R1YnMpOiBOZXcgZnVuY3Rpb24uCgkobWlwc19lbGY2NF9zdHViX3NlY3Rpb25fcCk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBDaGFuZ2UgaW50ZXJmYWNlIHRvIHN1cHBvcnQgbWlwczE2LgoJKG1pcHNfZWxmNjRfcGVyZm9ybV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgoyMDAxLTEyLTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVN1cHBvcnQgZm9yIG1vcmUgdGhhbiA2NGsgRUxGIHNlY3Rpb25zLgoJKiBlbGYtYmZkLmggKGVsZl9zaXplX2luZm8gPHN3YXBfc3ltYm9sX291dD4pOiBBZGQgc2huZHggcGFyYW0uCgkoYmZkX2VsZjMyX3N3YXBfc3ltYm9sX2luKTogTGlrZXdpc2UuCgkoYmZkX2VsZjMyX3N3YXBfc3ltYm9sX291dCk6IExpa2V3aXNlLgoJKGJmZF9lbGY2NF9zd2FwX3N5bWJvbF9pbik6IExpa2V3aXNlLgoJKGJmZF9lbGY2NF9zd2FwX3N5bWJvbF9vdXQpOiBMaWtld2lzZS4KCShlbGZfcmVsb2NfY29va2llKTogQWRkIGxvY3N5bV9zaG5keCBmaWVsZC4gIE1ha2UgbG9jc3ltcyBhIFBUUi4KCShlbGZfb2JqX3RkYXRhKTogQWRkIG51bV9lbGZfc2VjdGlvbnMsIHN5bXRhYl9zaG5keF9oZHIgYW5kCglzeW10YWJfc2huZHhfc2VjdGlvbi4KCShlbGZfbnVtc2VjdGlvbnMpOiBEZWZpbmUuCgkoZWxmX3N5bXRhYl9zaG5keCk6IERlZmluZS4KCSogZWxmLmMgKHNldHVwX2dyb3VwKTogVXNlIGVsZl9udW1zZWN0aW9ucyByYXRoZXIgdGhhbiBoZWFkZXIgZV9zaG51bS4KCShiZmRfZWxmX2ZpbmRfc2VjdGlvbik6IExpa2V3aXNlLgoJKGJmZF9zZWN0aW9uX2Zyb21fZWxmX2luZGV4KTogTGlrZXdpc2UuCgkoYmZkX3NlY3Rpb25fZnJvbV9zaGRyKTogTGlrZXdpc2UuICBIYW5kbGUgU0hUX1NZTVRBQl9TSE5EWC4KCShiZmRfc2VjdGlvbl9mcm9tX3Jfc3ltbmR4KTogUmVhZCBzeW1ib2wgc2huZHggZXh0ZW5zaW9uLCBhbmQKCXRyYW5zbGF0ZSBzdF9zaG5keCBmb3IgPiBTSE5fSElSRVNFUlZFLgoJKGFzc2lnbl9zZWN0aW9uX251bWJlcnMpOiBTa2lwIHJlc2VydmVkIHNlY3Rpb25zLiAgQXNzaWduCglzeW10YWJfc2huZHhfc2VjdGlvbiBhbmQgZWxmX251bXNlY3Rpb25zLiAgRXhjbHVkZSByZXNlcnZlZAoJc2VjdGlvbnMgZnJvbSBlX3NobnVtLiAgU2V0IHVwIHN5bXRhYl9zaG5keF9oZHIuCgkoX2JmZF9lbGZfY29tcHV0ZV9zZWN0aW9uX2ZpbGVfcG9zaXRpb25zKTogSGFuZGxlIHN5bXRhYl9zaG5keF9oZHIuCgkobWFwX3NlY3Rpb25zX3RvX3NlZ21lbnRzKTogRG9uJ3QgbWFwIGVoX2ZyYW1lX2hkciB1bmxlc3MgcmVxdWlyZWQuCgkoYXNzaWduX2ZpbGVfcG9zaXRpb25zX2V4Y2VwdF9yZWxvY3MpOiBVc2UgZWxmX251bXNlY3Rpb25zIHJhdGhlcgoJdGhhbiBoZWFkZXIgZV9zaG51bS4gIFNraXAgcmVzZXJ2ZWQgc2VjdGlvbnMgYW5kIHN5bXRhYl9zaG5keF9zZWN0aW9uLgoJKHByZXBfaGVhZGVycyk6IFNldCBuYW1lIGZvciBzeW10YWJfc2huZHhfaGRyLgoJKF9iZmRfZWxmX2Fzc2lnbl9maWxlX3Bvc2l0aW9uc19mb3JfcmVsb2NzKTogVXNlIGVsZl9udW1zZWN0aW9ucy4KCShfYmZkX2VsZl93cml0ZV9vYmplY3RfY29udGVudHMpOiBMaWtld2lzZS4gIFNraXAgcmVzZXJ2ZWQgc2VjdGlvbnMuCgkoX2JmZF9lbGZfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uKTogQ2hlY2sgYmZkX3thYnMsY29tLHVuZH1fc2VjdGlvbgoJZmlyc3QuICBVc2UgZWxmX3NlY3Rpb25fZGF0YSBpZiBhdmFpbGFibGUuICBVc2UgZWxmX251bXNlY3Rpb25zLgoJU3RhcnQgc2NhbiBhdCBpbmRleCAxLgoJKGNvcHlfcHJpdmF0ZV9iZmRfZGF0YSApOiBDb21tZW50IGZpeGVzLgoJKE1BUF9PTkVTWU1UQUIpOiBEZWZpbmUgYWJvdmUgU0hOX0hJT1MuCgkoTUFQX0RZTlNZTVRBQik6IExpa2V3aXNlLgoJKE1BUF9TVFJUQUIpOiBMaWtld2lzZS4KCShNQVBfU0hTVFJUQUIpOiBMaWtld2lzZS4KCShNQVBfU1lNX1NITkRYKTogTmV3IGRlZmluZS4KCShfYmZkX2VsZl9jb3B5X3ByaXZhdGVfc3ltYm9sX2RhdGEpOiBIYW5kbGUgc3ltdGFiX3NobmR4X3NlY3Rpb24uCgkoc3dhcF9vdXRfc3ltcyk6IFN3YXAgb3V0IFNIVF9TWU1UQUJfU0hORFggc2VjdGlvbiB0b28uCgkqIGVsZmNvZGUuaCAoZWxmX3N3YXBfc3ltYm9sX2luKTogQWRkIHNobmR4IHBhcmFtLCBhbmQgaGFuZGxlIHNobmR4CglleHRlbnNpb24uCgkoZWxmX3N3YXBfc3ltYm9sX291dCk6IExpa2V3aXNlLgoJKGVsZl9vYmplY3RfcCk6IFNldCBlbGZfbnVtc2VjdGlvbnMsIGFuZCB1c2UgaW5zdGVhZCBvZiBlX3NobnVtLgoJSW5pdGlhbGlhbGlzZSByZXNlcnZlZCBlbGZfZWxmc2VjdGlvbnMgdG8gcG9pbnQgYXQgc2hkclswXS4gIFJlbW92ZQoJcmVkdW5kYW50IGJmZF9yZWxlYXNlIGNhbGxzLgoJKGVsZl9zbHVycF9zeW1ib2xfdGFibGUpOiBSZWFkIHN5bWJvbCBzaG5keCBleHRlbnNpb24sIGFuZCB1c2Ugd2l0aAoJZWxmX3N3YXBfc3ltYm9sX2luLiAgVHJhbnNsYXRlIHN0X3NobmR4IGZvciA+IFNITl9ISVJFU0VSVkUgdG9vLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lzX2RlZmluZWRfYXJjaGl2ZV9zeW1ib2wpOiBSZWFkIHN5bWJvbCBzaG5keAoJZXh0ZW5zaW9uLCBhbmQgdXNlIHdpdGggZWxmX3N3YXBfc3ltYm9sX2luLgoJKGVsZl9saW5rX3JlY29yZF9sb2NhbF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IExpa2V3aXNlLiAgQWxzbyB0cmFuc2xhdGUgc3Rfc2huZHgKCWZvciBlbGYgc2VjdGlvbnMgPiBTSE5fSElSRVNFUlZFLgoJKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogQWRqdXN0IGVsZl9zd2FwX3N5bWJvbF9vdXQKCWNhbGwuCgkoc3RydWN0IGVsZl9maW5hbF9saW5rX2luZm8pOiBBZGQgbG9jc3ltX3NobmR4IGFuZCBzeW1zaG5keGJ1Zi4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBBbGxvY2F0ZSB0aGUgYWJvdmUsIGFuZCB0aWR5IGNvZGUgYWxsb2NhdGluZwoJb3RoZXIgYnVmZmVycy4gIFVzZSBlbGZfbnVtc2VjdGlvbnMgaW5zdGVhZCBvZiBlX3NobnVtLiAgQWRqdXN0CgllbGZfc3dhcF9zeW1ib2xfb3V0IGNhbGxzLgoJKGVsZl9saW5rX291dHB1dF9zeW0pOiBTd2FwIG91dCBzeW1ib2wgc2huZHggZXh0ZW5zaW9uIHRvby4KCShlbGZfbGlua19mbHVzaF9vdXRwdXRfc3ltcyk6IEFuZCBmbHVzaCB0aGVtIHRvIGRpc2suCgkoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IFVzZSBTSE5fQkFELiAgQWRqdXN0IGVsZl9zd2FwX3N5bWJvbF9vdXQKCWNhbGxzLgoJKGVsZl9nY19tYXJrKTogUmVhZCBzeW1ib2wgc2huZHggZXh0ZW5zaW9uLCBhbmQgdXNlIHdpdGgKCWVsZl9zd2FwX3N5bWJvbF9pbi4KCShlbGZfbGlua19pbnB1dF9iZmQpOiBMaWtld2lzZSwgIFRyYW5zbGF0ZSBzdF9zaG5keCBmb3IgZWxmIHNlY3Rpb25zCgk+IFNITl9ISVJFU0VSVkUgdG9vLiAgVXNlIFNITl9CQUQuCgkoZWxmX3JlbG9jX3N5bWJvbF9kZWxldGVkX3ApOiBVc2Ugc3ltYm9sIHNobmR4IGV4dGVuc2lvbnMgd2l0aAoJZWxmX3N3YXBfc3ltYm9sX2luLiAgVHJhbnNsYXRlIHN0X3NobmR4ID4gU0hOX0hJUkVTRVJWRSB0b28uCgkoZWxmX2JmZF9kaXNjYXJkX2luZm8pOiBSZWFkIHN5bWJvbCBzaG5keCBleHRlbnNpb24uICBEb24ndCBhdHRlbXB0Cgl0byBjb250aW51ZSBhZnRlciBhIGJmZCBlcnJvci4KCSogZWxmLW0xMDIwMC5jIChtbjEwMjAwX2VsZl9yZWxheF9zZWN0aW9uKTogT25seSByZWFkIGxvY2FsIHN5bXMuCglTdGFzaCB0aGVtIGltbWVkaWF0ZWx5IHRvIHN5bXRhYl9oZHItPmNvbnRlbnRzIHJhdGhlciB0aGFuIGxhdGVyCglpbiBtdWx0aXBsZSBwbGFjZXMuICBDbGVhbiB1cCBhZnRlcndhcmRzLiAgUmVhZCBzeW1ib2wgc2huZHgKCWV4dGVuc2lvbiwgYW5kIHVzZSB3aXRoIHN3YXBfc3ltYm9sX2luLiAgVHJhbnNsYXRlIFNITl9VTkRFRiwKCVNITl9BQlMsIFNITl9DT01NT04gYW5kIGVsZiBzZWN0aW9ucyA+IFNITl9ISVJFU0VSVkUgdG8gYmZkCglzZWN0aW9ucyB0b28uICBSZW1vdmUgZGVhZCBjb2RlLgoJKG1uMTAyMDBfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IFVzZSBzeW1ib2wgc2huZHggZXh0ZW5zaW9uCgl3aGVuIHN3YXBwaW5nIGluIHN5bWJvbHMuICBUaWR5IGNvZGUgYWRqdXN0aW5nIGdsb2JhbCBzeW1zLgoJRG9uJ3Qgc3dhcCBpbiBnbG9iYWwgc3ltcy4KCShtbjEwMjAwX2VsZl9zeW1ib2xfYWRkcmVzc19wKTogTGlrZXdpc2UuICBSZW1vdmUgZXh0c3ltcyBwYXJhbS4KCShtbjEwMjAwX2VsZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBSZWFkIHN5bWJvbCBzaG5keAoJZXh0ZW5zaW9uLCBhbmQgdXNlIHdpdGggc3dhcF9zeW1ib2xfaW4uICBSZW5hbWUgInNpemUiIC0+ICJhbXQiCgl0byBtYXhpbWl6ZSBjb2RlIGluIGNvbW1vbiB3aXRoIG90aGVyIGZpbGVzLiAgVHJhbnNsYXRlIHN0X3NobmR4Cglmb3IgPiBTSE5fSElSRVNFUlZFIHRvby4gIFJlbW92ZSBkZWFkIGNvZGUuCgkqIGVsZi1tMTAzMDAuYyAobW4xMDMwMF9lbGZfcmVsYXhfc2VjdGlvbik6IE9ubHkgcmVhZCBsb2NhbCBzeW1zLgoJU3Rhc2ggdGhlbSBpbW1lZGlhdGVseSB0byBzeW10YWJfaGRyLT5jb250ZW50cyByYXRoZXIgdGhhbiBsYXRlcgoJaW4gbXVsdGlwbGUgcGxhY2VzLiAgQ2xlYW4gdXAgYWZ0ZXJ3YXJkcy4gIFJlYWQgc3ltYm9sIHNobmR4CglleHRlbnNpb24sIGFuZCB1c2Ugd2l0aCBzd2FwX3N5bWJvbF9pbi4gIFJlbW92ZSBkZWFkIGNvZGUuCgkobW4xMDMwMF9lbGZfcmVsYXhfZGVsZXRlX2J5dGVzKTogQXMgZm9yIGVsZi1tMTAyMDAuYy4KCShtbjEwMzAwX2VsZl9zeW1ib2xfYWRkcmVzc19wKTogTGlrZXdpc2UuCgkobW4xMDMwMF9lbGZfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X3JlbGF4X3NlY3Rpb24pOiBBcyBmb3IgZWxmLW0xMDMwMC5jLgoJKGVsZjMyX2g4X3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKGVsZjMyX2g4X3N5bWJvbF9hZGRyZXNzX3ApOiBMaWtld2lzZS4KCShlbGYzMl9oOF9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBSZWFkIHN5bWJvbCBzaG5keAoJZXh0ZW5zaW9uLCBhbmQgdXNlIHdpdGggc3dhcF9zeW1ib2xfaW4uCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCSogZWxmMzItaTM3MC5jIChpMzcwX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IEFkanVzdCBjYWxsIHRvCgliZmRfZWxmMzJfc3dhcF9zeW1ib2xfb3V0LgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW50cyk6IFRyYW5zbGF0ZQoJZWxmIHNlY3Rpb25zID4gU0hOX0hJUkVTRVJWRSB0b28uCgkqIGVsZjMyLW02OGsuYyAoYmZkX202OGtfZWxmMzJfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IE9ubHkgcmVhZAoJbG9jYWwgc3ltcy4gIFJlYWQgc3ltYm9sIHNobmR4IGV4dGVuc2lvbiwgYW5kIHVzZSB3aXRoIHN3YXBfc3ltYm9sX2luLgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IFVzZQoJZWxmX251bXNlY3Rpb25zIHJhdGhlciB0aGFuIGhlYWRlciBlX3NobnVtLgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsYXhfc2VjdGlvbik6IEFzIGZvciBlbGYtbTEwMzAwLmMuCgkoc2hfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IExpa2V3aXNlLgoJKHNoX2VsZl9nZXRfcmVsb2NhdGVkX3NlY3Rpb25fY29udGVudHMpOiBMaWtld2lzZS4gIE9ubHkgcmVhZCBsb2NhbAoJc3ltYm9scy4KCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9zeW1ib2xfcHJvY2Vzc2luZyk6IFVzZSBhbiB1bnNpZ25lZCBpbnQgdG8KCWhvbGQgc2VjdGlvbiBpbmRleC4gIFVzZSBlbGZfbnVtc2VjdGlvbnMgcmF0aGVyIHRoYW4gZV9zaG51bS4KCVJlbmFtZSAiaW5kZXgiIC0+ICJpbmR4IiB0byBhdm9pZCBzaGFkb3dpbmcgd2FybmluZy4KCSh2ODUwX2VsZl9hZGRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsYXhfc2VjdGlvbik6IE9ubHkgcmVhZCBsb2NhbCBzeW1zLgoJUmVhZCBzeW1ib2wgc2huZHggZXh0ZW5zaW9uLCBhbmQgdXNlIHdpdGggc3dhcF9zeW1ib2xfaW4uCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCVRyYW5zbGF0ZSBTSE5fQ09NTU9OIGFuZCBlbGYgc2VjdGlvbnMgPiBTSE5fSElSRVNFUlZFIHRvby4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGZOTl9pYTY0X2FpeF9hZGRfc3ltYm9sX2hvb2spOiBVc2UgZWxmX251bXNlY3Rpb25zLgoKCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9nY19tYXJrX2hvb2spOiBSZW1vdmUgdW5uZWNlc3NhcnkgY2hlY2tzCgliZWZvcmUgY2FsbGluZyBiZmRfc2VjdGlvbl9mcm9tX2VsZl9pbmRleCBvbiBsb2NhbCBzeW1zLgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1hdnIuYyAoZWxmMzJfYXZyX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1kMTB2LmMgKGVsZjMyX2QxMHZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLWZyMzAuYyAoZnIzMF9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYyAobWNvcmVfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLW9wZW5yaXNjLmMgKG9wZW5yaXNjX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjMyLXhzdG9ybXkxNi5jICh4c3Rvcm15MTZfZWxmX2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LW1taXguYyAobW1peF9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgoyMDAxLTEyLTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCUhhc2ggYmZkIHNlY3Rpb25zIGZvciBmYXN0IGxvb2t1cCBhbmQgY3JlYXRlLgoJKiBiZmQuYyAoc3RydWN0IF9iZmQpOiBBZGQgc2VjdGlvbl9odGFiLCBzZWN0aW9uX3RhaWwuCgkqIGxpYmJmZC1pbi5oIChfYmZkX2RlbGV0ZV9iZmQpOiBEZWNsYXJlLgoJKGJmZF9zZWN0aW9uX2hhc2hfbmV3ZnVuYyk6IERlY2xhcmUuCgkqIG9wbmNscy5jIChfYmZkX25ld19iZmQpOiBGcmVlIG1lbW9yeSBvbiBmYWlsdXJlLiAgSW5pdAoJc2VjdGlvbl9odGFiIGFuZCBzZWN0aW9uX3RhaWwuCgkoX2JmZF9kZWxldGVfYmZkKTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9vcGVucik6IFVzZSBpdC4KCShiZmRfZmRvcGVucik6IExpa2V3aXNlLgoJKGJmZF9vcGVuc3RyZWFtcik6IExpa2V3aXNlLgoJKGJmZF9vcGVudyk6IExpa2V3aXNlLgoJKGJmZF9jbG9zZSk6IExpa2V3aXNlLgoJKGJmZF9jbG9zZV9hbGxfZG9uZSk6IExpa2V3aXNlLgoJKGJmZF9yZWxlYXNlKTogQ29tbWVudC4KCSogc2VjdGlvbi5jIChzdHJ1Y3Qgc2VjdGlvbl9oYXNoX2VudHJ5KTogTmV3LgoJKGJmZF9zZWN0aW9uX2hhc2hfbmV3ZnVuYyk6IE5ldyBmdW5jdGlvbi4KCShzZWN0aW9uX2hhc2hfbG9va3VwKTogRGVmaW5lLgoJKGJmZF9zZWN0aW9uX2luaXQpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tCgliZmRfbWFrZV9zZWN0aW9uX2FueXdheS4KCShiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZSk6IExvb2t1cCB2aWEgaGFzaCB0YWJsZS4KCShiZmRfZ2V0X3VuaXF1ZV9zZWN0aW9uX25hbWUpOiBMaWtld2lzZS4KCShiZmRfbWFrZV9zZWN0aW9uX29sZF93YXkpOiBSZXdyaXRlIHRvIHVzZSBoYXNoIHRhYmxlLgoJKGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5KTogTGlrZXdpc2UuCgkoYmZkX21ha2Vfc2VjdGlvbik6IExpa2V3aXNlLiAgUmV0dXJuIE5VTEwgZm9yIGF0dGVtcHRzIHRvIG1ha2UKCUJGRF97QUJTLENPTSxVTkQsSU5EfV9TRUNUSU9OX05BTUUuCgkoX2JmZF9zdHJpcF9zZWN0aW9uX2Zyb21fb3V0cHV0KTogQWRqdXN0IHNlY3Rpb25fdGFpbCBpZiBuZWVkZWQuCgkqIGNvbmZpZ3VyZS5pbjogQnVtcCBiZmQgdmVyc2lvbi4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMS0xMi0xNSAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZjY0LW1pcHMuYyAobWlwc19lbGY2NF9saW5rX2hhc2hfZW50cnkpOiBOZXcgbGluayBoYXNoLgoJKG1pcHNfZWxmNjRfaGlnaCk6IE5ldyBGdW5jdGlvbi4KCShtaXBzX2VsZjY0X2hpZ2hlcik6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfaGlnaGVzdCk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfaW5mb190b19ob3d0b19yZWwpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2luZm9fdG9faG93dG9fcmVsYSk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfd3JpdGVfcmVsKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF93cml0ZV9yZWxhKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9saW5rX2hhc2hfbmV3ZnVuYyk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfaGkxNl9yZWxvYyk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfaGlnaGVyX3JlbG9jKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9oaWdoZXN0X3JlbG9jKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9ncHJlbDE2X3JlbG9jKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9ncHJlbDE2X3JlbG9jYSk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfbGl0ZXJhbF9yZWxvYyk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfZ3ByZWwzMl9yZWxvYyk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfc2hpZnQ2X3JlbG9jKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9nb3QxNl9yZWxvYyk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfYXNzaWduX2dwKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9maW5hbF9ncCk6IExpa2V3aXNlLgoJKGdwcmVsMTZfd2l0aF9ncCk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfYWRkaXRpb25hbF9wcm9ncmFtX2hlYWRlcnMpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2dvdF9vZmZzZXRfZnJvbV9pbmRleCk6IExpa2V3aXNlLgoJKF9taXBzX2VsZjY0X2dvdF9pbmZvKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9zaWduX2V4dGVuZCk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfb3ZlcmZsb3dfcCk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfZ2xvYmFsX2dvdF9pbmRleCk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfc29ydF9oYXNoX3RhYmxlX2YpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X3NvcnRfaGFzaF90YWJsZSk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfc3dhcF9tc3ltX291dCk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfY3JlYXRlX2xvY2FsX2dvdF9lbnRyeSk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfbG9jYWxfZ290X2luZGV4KTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9nb3RfcGFnZSk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfZ290MTZfZW50cnkpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2xvY2FsX3JlbG9jYXRpb25fcCk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfbmV4dF9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfb2J0YWluX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9wZXJmb3JtX3JlbG9jYXRpb24pOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2Fsd2F5c19zaXplX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2djX21hcmtfaG9vayk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfY3JlYXRlX2dvdF9zZWN0aW9uKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9yZWNvcmRfZ2xvYmFsX2dvdF9zeW1ib2wpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2NyZWF0ZV9tc3ltX3NlY3Rpb24pOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2FsbG9jYXRlX2R5bmFtaWNfcmVsb2NhdGlvbnMpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfb3V0cHV0X2V4dHN5bSk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfc3dhcF9ncHRhYl9pbik6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfc3dhcF9ncHRhYl9vdXQpOiBMaWtld2lzZS4KCShncHRhYl9jb21wYXJlKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9maW5hbF9saW5rKTogTGlrZXdpc2UuCgkocHJldl9yZWxvY19hZGRlbmQpOiBSZW1lbmJlciBhZGRlbmQgb2YgcHJldmlvdXMgcGFydHMgb2YgYSBjb21iaW5lZAoJcmVsb2MuCgkoRUxGX01JUFNfR1BfT0ZGU0VUKTogTmV3IGRlZmluZS4KCShTVFVCX0xXLFNUVUJfTU9WRSxTVFVCX0pBTFIsU1RVQl9MSTE2KTogTGlrZXdpc2UuCgkoTUlQU19GVU5DVElPTl9TVFVCX1NJWkUpOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2hvd3RvX3JlbCk6IEZpeCBIT1dUTyBkZWZpbmVzLgoJKG1pcHNfZWxmNjRfaG93dG9fcmVsYSk6IExpa2V3aXNlLgoJKG1pcHNfZWxmNjRfc3dhcF9yZWxvY2Ffb3V0KTogRml4IHNpZ25lZG5lc3MuCgkobWlwc19lbGY2NF9iZV9zd2FwX3JlbG9jX2luKTogVXNlIEVMRjY0KiBpbnN0ZWFkIG9mIEVMRjMyKi4KCShtaXBzX2VsZjY0X2JlX3N3YXBfcmVsb2NhX2luKTogTGlrZXdpc2UuCgkobWlwc19lbGY2NF9iZV9zd2FwX3JlbG9jX291dCk6IExpa2V3aXNlLiBQcmVzZXJ2ZSBleHRlbmRlZCB0eXBlIGluZm8uCgkobWlwc19lbGY2NF9iZV9zd2FwX3JlbG9jYV9vdXQpOiBMaWtld2lzZS4KCjIwMDEtMTItMTUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmLWJmZC5oIChfYmZkX2VsZl9tYXliZV9zdHJpcF9laF9mcmFtZV9oZHIpOiBOZXcgcHJvdG90eXBlLgoJKiBlbGYtZWgtZnJhbWUuYyAoc3RydWN0IGVoX2ZyYW1lX2hkcl9pbmZvKTogQWRkIHN0cmlwLgoJKF9iZmRfZWxmX2Rpc2NhcmRfc2VjdGlvbl9laF9mcmFtZSk6IERvbid0IGNyZWF0ZSAuZWhfZnJhbWVfaGRyCglzZWNfaW5mbyBoZXJlLiAgRnJlZSBlaGJ1Zi4KCShfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWVfaGRyKTogRG9uJ3Qgc2l6ZSB0aGUgc2VjdGlvbgoJaWYgaGRyX2luZm8tPnN0cmlwLgoJKF9iZmRfZWxmX21heWJlX3N0cmlwX2VoX2ZyYW1lX2hkcik6IE5ldy4KCSogZWxmbGluay5oIChzaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBDYWxsIGl0LgoKMjAwMS0xMi0xNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9kaXNjYXJkX2luZm8pOiBGaXggc2VnZmF1bHQgd2hlbiBkeW5vYmogTlVMTC4KCjIwMDEtMTItMTMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmLWJmZC5oIChlbnVtIGVsZl9saW5rX2luZm9fdHlwZSk6IE5ldy4KCShzdHJ1Y3QgYmZkX2VsZl9zZWN0aW9uX2RhdGEpOiBSZW1vdmUgc3RhYl9pbmZvIGFuZCBtZXJnZV9pbmZvCglmaWVsZHMsIGFkZCBzZWNfaW5mbyBhbmQgc2VjX2luZm9fdHlwZS4KCShzdHJ1Y3QgZWxmX29ial90ZGF0YSk6IEFkZCBlaF9mcmFtZV9oZHIgZmllbGQuCgkoX2JmZF9lbGZfZGlzY2FyZF9zZWN0aW9uX2VoX2ZyYW1lKTogTmV3IHByb3RvdHlwZS4KCShfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWVfaGRyKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfZWhfZnJhbWVfc2VjdGlvbl9vZmZzZXQpOiBMaWtld2lzZS4KCShfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZfd3JpdGVfc2VjdGlvbl9laF9mcmFtZV9oZHIpOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuYW0gKEJGRDMyX0JBQ0tFTkRTKTogQWRkIGVsZi1laC1mcmFtZS5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmLWVoLWZyYW1lLmMuCgkoZWxmLWVoLWZyYW1lLmxvKTogTmV3LgoJKiBNYWtlZmlsZS5pbjogUmVidWlsdC4KCSogY29uZmlndXJlLmluIChlbGYpOiBBZGQgZWxmLWVoLWZyYW1lLmxvLgoJKiBjb25maWd1cmU6IFJlYnVpbHQuCgkqIGVsZi5jIChfYmZkX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogU3VwcG9ydCBQVF9HTlVfRUhfRlJBTUUuCgkobWFwX3NlY3Rpb25zX3RvX3NlZ21lbnRzKTogQ3JlYXRlIFBUX0dOVV9FSF9GUkFNRSBpZiByZXF1ZXN0ZWQuCgkoZ2V0X3Byb2dyYW1faGVhZGVyX3NpemUpOiBUYWtlIGludG8gYWNjb3VudCBQVF9HTlVfRUhfRlJBTUUKCXNlZ21lbnQuCgkoX2JmZF9lbGZfcmVsYV9sb2NhbF9zeW0pOiBVc2Ugc2VjX2luZm9fdHlwZSBhbmQgc2VjX2luZm8uCgkoX2JmZF9lbGZfcmVsX2xvY2FsX3N5bSk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX3NlY3Rpb25fb2Zmc2V0KTogTGlrZXdpc2UuICBDYWxsCglfYmZkX2VsZl9laF9mcmFtZV9zZWN0aW9uX29mZnNldCB0b28uCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIHNlY19pbmZvX3R5cGUgYW5kCglzZWNfaW5mby4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYtZWgtZnJhbWUuYzogTmV3IGZpbGUuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogRG9uJ3Qgb3B0aW1pemUgU0hGX01FUkdFCgkuc3RhYiBzZWN0aW9ucy4gIFNldCBzZWNfaW5mb190eXBlLCB1c2Ugc2VjX2luZm8gaW5zdGVhZAoJb2YgbWVyZ2VfaW5mbyBhbmQgc3RhYl9pbmZvLgoJKGVsZl9saW5rX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogQ3JlYXRlIC5laF9mcmFtZV9oZHIgc2VjdGlvbgoJaWYgLS1laC1mcmFtZS1oZHIuCgkoZWxmX2JmZF9maW5hbF9saW5rKTogV3JpdGUgLmVoX2ZyYW1lX2hkciBzZWN0aW9uLgoJKGVsZl9saW5rX3NlY19tZXJnZV9zeW1zKTogVXNlIHNlY19pbmZvX3R5cGUgYW5kIHNlY19pbmZvLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IExpa2V3aXNlLgoJQ2FsbCBfYmZkX2VsZl93cml0ZV9zZWN0aW9uX2VoX2ZyYW1lIHRvIHdyaXRlIC5laF9mcmFtZSBzZWN0aW9ucy4KCShlbGZfYmZkX2Rpc2NhcmRfaW5mbyk6IEFkZCBvdXRwdXRfYmZkIGFyZ3VtZW50LgoJQ2FsbCBfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWUgYW5kCglfYmZkX2VsZl9kaXNjYXJkX3NlY3Rpb25fZWhfZnJhbWVfaGRyLgoJKGVsZl9zZWN0aW9uX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzKTogVXNlIHNlY19pbmZvX3R5cGUsIG5vdCBzZWN0aW9uCgluYW1lcy4KCSogYmZkLWluLmggKGJmZF9lbGYzMl9kaXNjYXJkX2luZm8sIGJmZF9lbGY2NF9kaXNjYXJkX2luZm8pOiBBZGp1c3QKCXByb3RvdHlwZXMuCgkqIGJmZC1pbjIuaCAoYmZkX2VsZjMyX2Rpc2NhcmRfaW5mbywgYmZkX2VsZjY0X2Rpc2NhcmRfaW5mbyk6IExpa2V3aXNlLgoKMjAwMS0xMi0xMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHN5bXMuYyAoX2JmZF9nZW5lcmljX3JlYWRfbWluaXN5bWJvbHMpOiBFYXJseSByZXR1cm4gZm9yCglubyBzeW1ib2xzLiAgUGF0Y2ggZnJvbSBGcmVlQlNEIGZvbGs7IGV4YWN0IG9yaWdpbiB1bmtub3duLgoKMjAwMS0xMi0xMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmNvZGUuaCAoZWxmX3N3YXBfZWhkcl9vdXQpOiBBZGp1c3QgdmFsdWUgd3JpdHRlbiBmb3IgZV9zaG51bQoJYW5kIGVfc2hzdHJuZHggaWYgb3V0IG9mIHJhbmdlLgoJKGVsZl9vYmplY3RfcCk6IFJlYWQgZXh0ZW5kZWQgdmFsdWVzIGZvciBlX3NobnVtIGFuZCBlX3Noc3RybmR4Cglmcm9tIHRoZSBmaXJzdCBzZWN0aW9uIGhlYWRlci4gIEFsbG9jYXRlIHNwYWNlIGluIGVsZl9lbGZzZWN0aW9ucwoJZm9yIHJlc2VydmVkIHNlY3Rpb25zIGFuZCBzZXQgdG8gTlVMTHMuCgkoZWxmX3dyaXRlX3NoZHJzX2FuZF9laGRyKTogU2V0IG92ZXJmbG93IGZpZWxkcyBpbiBmaXJzdCBzZWN0aW9uCgloZWFkZXIuICBTa2lwIHJlc2VydmVkIHNlY3Rpb25zIGluIGVsZl9lbGZzZWN0aW9ucy4gIFJlbW92ZQoJZHVwbGljYXRlIHNpemUgY2FsY3VsYXRpb24uCgoyMDAxLTEyLTA3ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgkgICAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCSAgICBDb3Jpbm5hIFZpbnNjaGVuICA8dmluc2NoZW5AcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgc3VwcG9ydCBmb3IgeHN0b3JteTE2LgoJKiBhcmNodXJlcy5jOiBBZGQgc3VwcG9ydCBmb3IgeHN0b3JteTE2LgoJKiBjb25maWcuYmZkOiBBZGQgc3VwcG9ydCBmb3IgeHN0b3JteTE2LgoJKiBjb25maWd1cmUuaW46IEFkZCBzdXBwb3J0IGZvciB4c3Rvcm15MTYuCgkqIHJlbG9jLmM6IEFkZCBzdXBwb3J0IGZvciB4c3Rvcm15MTYuCgkqIHRhcmdldHMuYzogQWRkIHN1cHBvcnQgZm9yIHhzdG9ybXkxNi4KCSogY3B1LXhzdG9ybXkxNi5jOiBOZXcgZmlsZS4KCSogZWxmMzIteHN0b3JteTE2LmM6IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlZC4KCjIwMDEtMTItMDcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmLmMgKGFzc2lnbl9maWxlX3Bvc2l0aW9uc19mb3Jfc2VnbWVudHMpOiBDb21iaW5lIHNlbnRhbmNlCglmcmFnbWVudHMgaW50byBhIHNpbmdsZSBzZW50YW5jZSBpbiBvcmRlciB0byBwZXJtaXQgYmV0dGVyCgl0cmFuc2xhdGlvbiBpbnRvIGZvcmVpZ24gbGFuZ3VhZ2VzLgoKMjAwMS0xMi0wNyAgSmltIEJsYW5keSAgPGppbWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXMzOTAuYyAoZWxmMzJfczM5MF9ncm9rX3Byc3RhdHVzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX2dyb2tfcHJzdGF0dXMpOiBEZWZpbmUuCgoyMDAxLTEyLTA3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBSZXZlcnQKCTIwMDEtMDktMTQgY2hhbmdlLgoKMjAwMS0xMi0wNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoX2JmZF9lbGZfcmVsYV9sb2NhbF9zeW0pOiBPbmx5IGNhbGwKCV9iZmRfbWVyZ2VkX3NlY3Rpb25fb2Zmc2V0IGlmIG1lcmdlX2luZm8gaXMgbm9uLU5VTEwuCgkoX2JmZF9lbGZfcmVsX2xvY2FsX3N5bSwgX2JmZF9lbGZfc2VjdGlvbl9vZmZzZXQpOiBOZXcuCgkqIGVsZi1iZmQuaCAoX2JmZF9lbGZfcmVsX2xvY2FsX3N5bSwgX2JmZF9lbGZfc2VjdGlvbl9vZmZzZXQpOiBOZXcKCXByb3RvdHlwZXMuCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IFVzZQoJX2JmZF9lbGZfc2VjdGlvbl9vZmZzZXQuCgkoZWxmMzJfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgX2JmZF9lbGZfcmVsX2xvY2FsX3N5bS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlCglfYmZkX2VsZl9zZWN0aW9uX29mZnNldCBhbmQgX2JmZF9lbGZfcmVsX2xvY2FsX3N5bS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IFVzZQoJX2JmZF9lbGZfc2VjdGlvbl9vZmZzZXQuCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmMgKGkzNzBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2luc3RhbGxfZHluX3JlbG9jKTogTGlrZXdpc2UuCgoyMDAxLTEyLTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaHBwYS5jIChjbG9iYmVyX21pbGxpY29kZV9zeW1ib2xzKTogRG9uJ3QgZG8gYW55dGhpbmcgaWYKCWFscmVhZHkgZm9yY2VkIGxvY2FsLgoKMjAwMS0xMi0wNSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBDb21iaW5lCglmcmFnbWVudGVkIHNlbnRlbmNlIHBhcnRzIGludG8gYSB3aG9sZSBzZW50ZW5jZSB0byBwZXJtaXQKCWJldHRlciB0cmFuc2xhdGlvbiBpbnRvIGZvcmVpZ24gbGFuZ3VhZ2VzLgoKMjAwMS0xMi0wNiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMTItMDUgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBNYWtlZmlsZS5hbTogc3BsaXQgdXAgQkZEX0xJQlMgbGlrZSBzdGF0ZW1lbnRzIGluIEJGRDMyX0xJQlMgYW5kCglCRkQ2NF9MSUJTLCBtYWtlIHRoZSBsYXR0ZXIgZGVwZW5kaW5nIG9uIHRoZSBhdmFpbGFiaWxpdHkgb2YgQkZENjQuCglBZGQgYXJjaGl2ZTY0LmMgc291cmNlIGZpbGUuCgkqIGFyY2hpdmU2NC5jOiBOZXcgZmlsZSBpbXBsZW1lbnRpbmcgYmZkX2VsZjY0X2FyY2hpdmVfc2x1cnBfYXJtYXAKCWFuZCBiZmRfZWxmNjRfYXJjaGl2ZV93cml0ZV9hcm1hcCwgY29kZSBmcm9tIGVsZjY0LW1pcHMuYwoJKiBhcmNoaXZlLmMgKGJmZF9zbHVycF9hcm1hcCk6IEFkZCBFTEY2NCBhcmNoaXZlIHN1cHBvcnQuCgkqIGNvbmZpZy5iZmQgKG1pcHMqLSotaXJpeDYqKTogQWxsb3cgd2l0aCBCRkQ2NCBvbmx5LgoJKG1pcHM2NCplbC0qLWxpbnV4Kik6IExpa2V3aXNlLgoJKG1pcHMqZWwtKi1saW51eCopOiBMaWtld2lzZS4gUmVvcmRlciBlbnRyaWVzLgoJKiBjb25maWd1cmUuaW4gKGJmZF9saWJzKTogRGVmaW5lIGluIGRlcGVuZGVuY3kgb2YgQkZENjQgYW5kCglBQ19TVUJTVCBpdC4KCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X3NsdXJwX2FybWFwKTogUmVtb3ZlLCB1c2UKCWJmZF9lbGY2NF9hcmNoaXZlX3NsdXJwX2FybWFwIGluc3RlYWQuCgkobWlwc19lbGY2NF93cml0ZV9hcm1hcCk6IFJlbW92ZSwgdXNlIGJmZF9lbGY2NF9hcmNoaXZlX3dyaXRlX2FybWFwCglpbnN0ZWFkLgoKMjAwMS0xMi0wNCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy5iZmQ6IFJlbW92ZSB0cmFpbGluZyBibGFua3MuCgkqIGVsZjMyLW1pcHMuYyAoZ3ByZWwxNl93aXRoX2dwKTogUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3RzLgoKMjAwMS0xMi0wNCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1kMTB2LmMgKGVsZl9kMTB2X2hvd3RvX3RhYmxlKTogQWRqdXN0IGJpdC1zaXplIG9mCglSX0QxMFZfMTBfUENSRUxfTCwgUl9EMTBWXzEwX1BDUkVMX1IsIFJfRDEwVl8xOCwKCVJfRDEwVl8xOF9QQ1JFTC4gIENoZWNrIDEwX1BDUkVMIHJlbG9jYXRpb25zIGFzIHNpZ25lZC4KCURpc2FibGUgcG9pbnRsZXNzIG92ZXJmbG93IGNoZWNraW5nIG9mIE5PTkUgYW5kIDMyLgoKMjAwMS0xMi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHJlbG9jLmMgKGJmZF9pbnN0YWxsX3JlbG9jYXRpb24pOiBDb3JyZWN0IHJlbG9jIGFkZHJlc3MgdGVzdC4KCShiZmRfcGVyZm9ybV9yZWxvY2F0aW9uKTogRm9ybWF0dGluZyBmaXguCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZSBmb3IgMjAwMS0xMi0wMiByZWxvYy5jIGNoYW5nZS4KCjIwMDEtMTItMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluIChMSU5HVUFTKTogQWRkIHRyLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHBvL3RyLnBvOiBJbXBvcnQgZnJvbSB0cmFuc2xhdGlvbiBwcm9qZWN0J3Mgd2ViIHNpdGUuCgoyMDAxLTEyLTAzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaHBwYS5jIChocHBhX2dldF9zdHViX2VudHJ5KTogUmVtb3ZlIGRlYnVnIG1lc3NhZ2UgdGhhdAoJaGFwcGVucyB0byB0cmlnZ2VyIG9uIHVuZGVmaW5lZCBzeW1ib2xzLgoJKGZpbmFsX2xpbmtfcmVsb2NhdGUpOiBSZXR1cm4gYmZkX3JlbG9jX3VuZGVmaW5lZCBmb3IgdW5kZWZpbmVkCglzdHVicy4KCShlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBzYXkgd2UgY2FuJ3QgaGFuZGxlIGEgcmVsb2MKCWlmIHdlIGhhdmUgYWxyZWFkeSB3YXJuZWQgYWJvdXQgYW4gdW5kZWZpbmVkIHN5bWJvbC4KCjIwMDEtMTItMDIgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGYzMi1taXBzLmMgKE5FV0FCSV9QKTogTmV3IGRlZmluZS4KCShVU0VfUkVMKTogUmVtb3ZlLCByZXBsYWNlZCBieQoJKGVsZl9iYWNrZW5kX21heV91c2VfcmVsX3ApOiBOZXcgZGVmaW5lLgoJKGVsZl9iYWNrZW5kX21heV91c2VfcmVsYV9wKTogTGlrZXdpc2UuCgkoZWxmX2JhY2tlbmRfZGVmYXVsdF91c2VfcmVsYV9wKTogTGlrZXdpc2UuCgkoZWxmX21pcHNfaG93dG9fdGFibGUpOiBSZW5hbWUgdG8gZWxmX21pcHNfaG93dG9fdGFibGVfcmVsLgoJRml4IHNvbWUgcmVsb2NhdGlvbiBkZWZpbml0aW9ucy4KCShlbGZfbWlwc19ob3d0b190YWJsZV9yZWxhKTogTmV3IFJFTEEgcmVsb2NhdGlvbiBkZWZpbml0aW9ucyBmb3IKCU5ld0FCSSBzdXBwb3J0LgoJKG1pcHMzMl82NGJpdF9yZWxvYyk6IFVzZSB0aGUgcmVuYW1lZCBlbGZfbWlwc19ob3d0b190YWJsZV9yZWwuCgkoYmZkX2VsZjMyX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKG1pcHNfcnR5cGVfdG9faG93dG8pOiBMaWtld2lzZS4KCShfYmZkX21pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShfYmZkX21pcHNfZWxmX29iamVjdF9wKTogVHlwby4KCShlbGZfYmFja2VuZF9zaWduX2V4dGVuZF92bWEpOiBSZW9yZGVyZWQgdG9nZXRoZXIgd2l0aCBtYW55IG90aGVyCglkZWZpbmVzIG5lYXJieSB0byByZXNlbWJsZSB0aGUgb3JkZXIgb2YgZGVjbGFyYXRpb24gaW4gdGhlIGhlYWRlcgoJZmlsZS4KCjIwMDEtMTItMDIgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBjb2ZmLW1pcHMuYyAobWlwc19iZmRfcmVsb2NfdHlwZV9sb29rdXApOiBSZXBsYWNlCglCRkRfUkVMT0NfTUlQU19HUFJFTCBieSBCRkRfUkVMT0NfR1BSRUwxNi4KCSogcGUtbWlwcy5jIChtaXBzX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfcmVsb2NfbWFwKTogTGlrZXdpc2UuIFJlcGxhY2UKCUJGRF9SRUxPQ19NSVBTX0dQUkVMMzIgYnkgQkZEX1JFTE9DX0dQUkVMMzIuCgkqIGVsZjY0LW1pcHMuYyAobWlwc19yZWxvY19tYXApOiBMaWtld2lzZS4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX01JUFNfR1BSRUwpOiBSZW1vdmUuCgkoQkZEX1JFTE9DX01JUFNfR1BSRUwzMik6IFJlbW92ZS4KCjIwMDEtMTEtMzAgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfYWRkX2RlZmF1bHRfc3ltYm9sKTogTmV3LgoJKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IENhbGwgZWxmX2FkZF9kZWZhdWx0X3N5bWJvbCAoKQoJdG8gY3JlYXRlIGFuIGluZGlyZWN0IHN5bWJvbCBmcm9tIHRoZSBkZWZhdWx0IGZvciB0aGUgc3ltYm9sCgl3aXRoIHRoZSBkZWZhdWx0IHZlcnNpb24gaWYgbmVlZGVkLgoKMjAwMS0xMS0yOSAgIlBldGVyLlNjaGF1ZXIiIDxQZXRlci5TY2hhdWVyQHJlZ2VudC5lLXRlY2huaWsudHUtbXVlbmNoZW4uZGU+CgoJKiBlbGYuYyAoZWxmY29yZV9ncm9rX3Byc3RhdHVzKTogRG8gbm90IG92ZXJ3aXRlIHRoZSBjb3JlIHNpZ25hbAoJaWYgaXQgaGFzIGFscmVhZHkgYmVlbiBzZXQgYnkgYW5vdGhlciB0aHJlYWQuCgoyMDAxLTExLTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKEFMUEhBX0VMRl9HT1RfRU5UUllfUkVMT0NTX1hMQVRFRCk6IERlZmluZWQuCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IFRyYW5zbGF0ZSBsb2NhbF9nb3RfZW50cmllcwoJZm9yIFNUVF9TRUNUSU9OIHN5bWJvbCB0byBTSEZfTUVSR0Ugc2VjdGlvbiB0aGUgZmlyc3QgdGltZQoJd2Ugc2VlIGl0LgoJKiBlbGZ4eC1pYTY0LmMgKHN0cnVjdCBlbGZOTl9pYTY0X2xvY2FsX2hhc2hfZW50cnkpOiBBZGQKCXNlY19tZXJnZV9kb25lLgoJKGdldF9sb2NhbF9zeW1faGFzaCk6IE5ldywgZXh0cmFjdGVkIGZyb20gZ2V0X2R5bl9zeW1faW5mby4KCShnZXRfZHluX3N5bV9pbmZvKTogVXNlIGl0LgoJKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IFRyYW5zbGF0ZSBsb2NhbCBkeW4gZW50cmllcwoJZm9yIFNUVF9TRUNUSU9OIHN5bWJvbCB0byBTSEZfTUVSR0Ugc2VjdGlvbiB0aGUgZmlyc3QgdGltZQoJd2Ugc2VlIGl0LgoKMjAwMS0xMS0yNyAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZGlzY2FyZF9pbmZvKTogU2tpcCBpZiB0aGUgaW5wdXQgYmZkIGlzbid0CglFTEYuCgoyMDAxLTExLTI2ICBKZWZmcmV5IEEgTGF3ICAobGF3QGN5Z251cy5jb20pCgoJKiBzdGFicy5jIChfYmZkX2Rpc2NhcmRfc2VjdGlvbl9zdGFicyk6IFVzZSBQQVJBTVMgaW4gZnVuY3Rpb24KCXByb3RvdHlwZXMuCgoyMDAxLTExLTI0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBEZWNyZWFzZSBkZWZhdWx0IHN0dWIKCWdyb3VwIHNpemVzIHRvIGFjY29tbW9kYXRlIGMrKy4KCjIwMDEtMTEtMjMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGNsZWFyCglyZWxvY2F0aW9ucyBpbiBub24tYWxsb2NlZCBzZWN0aW9ucyBhZ2FpbnN0IGdsb2JhbCBzeW1ib2xzCglkZWZpbmVkIGluIHNoYXJlZCBsaWJyYXJ5IGJlaW5nIGJ1aWx0LgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAxLTExLTIzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChfYmZkX2VsZl9yZWxhX2xvY2FsX3N5bSk6IE5ldy4KCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBEb24ndCBjb25zaWRlciBlbXB0eQoJbWVyZ2VkIHNlY3Rpb25zIGFzIHJlbW92ZWQgaW4gcmVsb2NhdGlvbiB0ZXN0cy4KCSogZWxmLWJmZC5oIChfYmZkX2VsZl9yZWxhX2xvY2FsX3N5bSk6IEFkZCBwcm90b3R5cGUuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZSByZWxvY3MKCWFnYWluc3QgU1RUX1NFQ1RJT04gc3ltYm9sIG9mIFNIRl9NRVJHRSBzZWN0aW9uLgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItYXZyLmMgKGVsZjMyX2F2cl9yZWxvY2F0ZV9zZWN0aW9uKTogQ2FsbAoJX2JmZF9lbGZfcmVsYV9sb2NhbF9zeW0uCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1kMTB2LmMgKGVsZjMyX2QxMHZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1mcjMwLmMgKGZyMzBfZmluYWxfbGlua19yZWxvY2F0ZSk6IExpa2V3aXNlLgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pODYwLmMgKGVsZjMyX2k4NjBfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmMgKG0zMnJfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1jb3JlLmMgKG1jb3JlX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW9wZW5yaXNjLmMgKG9wZW5yaXNjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItdjg1MC5jICh2ODUwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtbW1peC5jIChtbWl4X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYtbTEwMjAwLmMgKG1uMTAyMDBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UgZm9yCgkhcGFydGlhbF9pbnBsYWNlIHJlbG9jcy4gSGFuZGxlIHJlbG9jcyBhZ2FpbnN0IFNUVF9TRUNUSU9OCglzeW1ib2wgb2YgU0hGX01FUkdFIGZvciBwYXJ0aWFsX2lucGxhY2UgcmVsb2NzLgoKMjAwMS0xMS0yMSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBwby9NYWtlLWluIChkaXN0Y2xlYW4pOiBNb3ZlIFNSQy1QT1RGSUxFUy5pbiBhbmQKCUJMRC1QT1RGSUxFUy5pbiB0byBtYWludGFpbmVyLWNsZWFuIHRhcmdldC4KCjIwMDEtMTEtMjEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IFRlc3Qgcl9zeW1uZHggcmF0aGVyCgl0aGFuIHN5bV9zZWMtPm91dHB1dF9zZWN0aW9uIHRvIGRldGVjdCByZWxvY3MgYWdhaW5zdCBkaXNjYXJkZWQKCXNlY3Rpb25zLgoKMjAwMS0xMS0xOSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQpOiBBc3NlcnQgcl9zeW1uZHggIT0gMCB3aGVuCglkaXNjYXJkaW5nIHJlbG9jYXRpb25zLgoKMjAwMS0xMS0xOSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBzZWN0aW9uLmMgKGJmZF9pc19jb25zdF9zZWN0aW9uKTogTmV3IG1hY3JvLiAgUmV0dXJuIHRydWUgaWYgdGhlCglnaXZlbiBzZWNpdG9uIGlzIG9uZSBvZiB0aGUgc3BlY2lhbCwgY29uc3RhbnQsIHNlY3Rpb25zLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNvZmZnZW4uYyAoY29mZl9jb3VudF9saW5lbnVtYmVycyk6IFVzZSBiZmRfaXNfY29uc3Rfc2VjdGlvbi4KCShjb2ZmX3dyaXRlX25hdGl2ZV9zeW1ib2wpOiBVc2UgYmZkX2lzX2NvbnN0X3NlY3Rpb24uCgoyMDAxLTExLTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaHBwYS5jIChjbG9iYmVyX21pbGxpY29kZV9zeW1ib2xzKTogRGVjIGR5bnN0ciByZWZjb3VudC4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogRG9uJ3QgY29uc2lkZXIgdW5kZWZpbmVkCgltaWxsaWNvZGUgc3ltcyBhcyBjYW5kaWRhdGVzIGZvciBpbXBvcnQgc3R1YnMuCgoJKiBlbGYzMi1ocHBhLmMgKFBMQUJFTF9QTFRfRU5UUllfU0laRSk6IERlbGV0ZS4KCShhbGxvY2F0ZV9QSUNfY2FsbHMpOiBSZW5hbWUgdG8gYWxsb2NhdGVfcGx0X3N0YXRpYy4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBNb3ZlIG1vc3Qgb2YgY29kZSBoYW5kbGluZyAucGx0IGVudHJpZXMgdG8uLgoJKGFsbG9jYXRlX3BsdF9zdGF0aWMpOiAuLmhlcmUuICBEb24ndCBkcm9wIHBsYWJlbCBlbnRyaWVzLgoKMjAwMS0xMS0xOSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogbW1vLmM6IEFkanVzdCBkb2N1bWVudGF0aW9uIHRhZ3MgdG8gdXNlIHRleGluZm8gNCBmZWF0dXJlcy4KCjIwMDEtMTEtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogc2VjdGlvbi5jIChiZmRfaXNfY29uc3Rfc2VjdGlvbik6IE5ldyBtYWNyby4gIFJldHVybiB0cnVlIGlmIHRoZQoJc2VjdGlvbiBwb2ludGVyIHJlZmVycyB0byBvbmUgb2YgdGhlIHNwZWNpYWwsIGNvbnN0YW50IHNlY3Rpb25zLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoJKiBjb2ZmZ2VuLmMgKGNvZmZfY291bnRfbGluZW51bWJlcnMpOiBPbmx5IHVwZGF0ZSB0aGUgbGluZSBudW1iZXIKCWNvdW50IGluIG5vbi1zcGVjaWFsIHNlY3Rpb25zLgoJKGNvZmZfd3JpdGVfbmF0aXZlX3N5bWJvbCk6IE9ubHkgdXBkYXRlIHRoZSBsaW5lIG51bWJlciBmaWxlCglwb3NpdGlvbiBpbiBub24tc3BlY2lhbCBzZWN0aW9ucy4KCjIwMDEtMTEtMTUgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmbGluay5oIChlbGZfcmVsb2Nfc3ltYm9sX2RlbGV0ZWRfcCk6IENhdGNoIGFsbCByZWxvY3MgYWdhaW5zdAoJbG9jYWwgc3ltcyBmcm9tIGRpc2NhcmRlZCBzZWN0aW9ucy4gIFVwZGF0ZSBjb21tZW50LgoKMjAwMS0xMS0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogQ29tcGxhaW4gYWJvdXQgYWxsIHJlbG9jcwoJYWdhaW5zdCBsb2NhbCBzeW1zIGZyb20gZGlzY2FyZGVkIHNlY3Rpb25zLiAgSyZSIGZpeGVzLgoJKGVsZl9yZWxvY19zeW1ib2xfZGVsZXRlZF9wKTogRG9uJ3QgdHJ5IHRvIHN3YXAgaW4gZXh0ZXJuYWwgc3ltcy4KCUsmUiBmaXhlcy4KCjIwMDEtMTEtMTUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IERpc3JlZ2FyZAoJb3ZlcmZsb3dzIGluIHRoZSAuc3RhYiBzZWN0aW9uLgoKMjAwMS0xMS0xNCAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBiZmQtaW4uaCAoYmZkX2VsZjMyX2Rpc2NhcmRfaW5mbyk6IEFkZCBwcm90b3R5cGUuCgkoYmZkX2VsZjY0X2Rpc2NhcmRfaW5mbyk6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9yZWxvY19jb29raWUpOiBOZXcuCgkoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgZWxmX2JhY2tlbmRfZGlzY2FyZF9pbmZvLAoJZWxmX2JhY2tlbmRfaWdub3JlX2Rpc2NhcmRlZF9yZWxvY3MsIGFuZCBlbGZfYmFja2VuZF93cml0ZV9zZWN0aW9uLgoJKF9iZmRfZWxmMzJfcmVsb2Nfc3ltYm9sX2RlbGV0ZWRfcCk6IEFkZCBwcm90b3R5cGUuCgkoX2JmZF9lbGY2NF9yZWxvY19zeW1ib2xfZGVsZXRlZF9wKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9lbGYzMl9taXBzX2Rpc2NhcmRfaW5mbyk6IE5ldy4KCShfYmZkX2VsZjMyX21pcHNfaWdub3JlX2Rpc2NhcmRlZF9yZWxvY3MpOiBOZXcuCgkoX2JmZF9lbGYzMl9taXBzX3dyaXRlX3NlY3Rpb24pOiBOZXcuCgkoZWxmX2JhY2tlbmRfZGlzY2FyZF9pbmZvKTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzKTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX3dyaXRlX3NlY3Rpb24pOiBEZWZpbmUuCgkqIGVsZmNvZGUuaCAoZWxmX2JmZF9kaXNjYXJkX2luZm8pOiBEZWZpbmUuCgkoZWxmX3JlbG9jX3N5bWJvbF9kZWxldGVkX3ApOiBEZWZpbmUuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogQ2hlY2sKCWVsZl9zZWN0aW9uX2lnbm9yZV9kaXNjYXJkZWRfcmVsb2NzLiAgQ2FsbAoJYmVkLT5lbGZfYmFja2VuZF93cml0ZV9zZWN0aW9uIGlmIGF2YWlsYWJsZS4KCShlbGZfcmVsb2Nfc3ltYm9sX2RlbGV0ZWRfcCk6IE5ldy4KCShlbGZfYmZkX2Rpc2NhcmRfaW5mbyk6IE5ldy4KCShlbGZfc2VjdGlvbl9pZ25vcmVfZGlzY2FyZGVkX3JlbG9jcyk6IE5ldy4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX2Rpc2NhcmRfaW5mbyk6IERlZmluZS4KCShlbGZfYmFja2VuZF9pZ25vcmVfZGlzY2FyZGVkX3JlbG9jcyk6IERlZmluZS4KCShlbGZfYmFja2VuZF93cml0ZV9zZWN0aW9uKTogRGVmaW5lLgoJKGVsZk5OX2JlZCk6IEFkZCBlbGZfYmFja2VuZF9kaXNjYXJkX2luZm8sCgllbGZfYmFja2VuZF9pZ25vcmVfZGlzY2FyZGVkX3JlbG9jcywgYW5kCgllbGZfYmFja2VuZF93cml0ZV9zZWN0aW9uLgoJKiBsaWJiZmQtaW4uaCAoX2JmZF9kaXNjYXJkX3NlY3Rpb25fc3RhYnMpOiBBZGQgcHJvdG90eXBlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogc3RhYnMuYyAoX2JmZF9kaXNjYXJkX3NlY3Rpb25fc3RhYnMpOiBOZXcuCgoyMDAxLTExLTE0ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIHRoZSAidW5yZXNvbHZlZF9yZWxvYyIKCXNjaGVtZSB0byBnZXQgcmlkIG9mIGFuIHVnbHkgY29tcGxpY2F0ZWQgdGVzdC4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAxLTExLTE0ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBjcHUtaTM4Ni5jIChiZmRfeDg2XzY0X2FyY2hfaW50ZWxfc3ludGF4LGJmZF94ODZfNjRfYXJjaCk6IFVzZQoJeDg2LTY0IGZvciBkaXNwbGF5LgoKMjAwMS0xMS0xNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBkd2FyZjIuYyAoc3RydWN0IGxpbmVfaGVhZCkgW3RvdGFsX2xlbmd0aF06IENoYW5nZSB0eXBlIHRvCgliZmRfdm1hLgoJKHN0cnVjdCBkd2FyZjJfZGVidWcpOiBBZGQgZHdhcmZfc3RyX2J1ZmZlciBhbmQgZHdhcmZfc3RyX3NpemUuCgkoc3RydWN0IGNvbXBfdW5pdCk6IEFkZCBzdGFzaCBhbmQgb2Zmc2V0X3NpemUuCgkocmVhZF84X2J5dGVzKTogUmV0dXJuIGJmZF92bWEuCgkocmVhZF9pbmRpcmVjdF9zdHJpbmcpOiBOZXcuCgkocmVhZF9hdHRyaWJ1dGUpOiBIYW5kbGUgRFdfRk9STV9zdHJwLgoJKGRlY29kZV9saW5lX2luZm8pOiBTdXBwb3J0IDY0LWJpdCBEV0FSRiBmb3JtYXQuCgkoX2JmZF9kd2FyZjJfZmluZF9uZWFyZXN0X2xpbmUpOiBMaWtld2lzZS4KCShwYXJzZV9jb21wX3VuaXQpOiBTZXQgb2Zmc2V0X3NpemUgYW5kIHN0YXNoLgoKMjAwMS0xMS0xMyAgS2VpdGggV2Fsa2VyIDxrZWl0aC53YWxrZXJAYXJtLmNvbT4KCgkqIGR3YXJmMi5jIChyZWFkX2F0dHJpYnV0ZV92YWx1ZSk6IE5ldyBmdW5jdGlvbiB0byBoYW5kbGUKCURXX0ZPUk1faW5kaXJlY3QuCgkocmVhZF9hdHRyaWJ1dGUpOiBVc2UgaXQuCgoyMDAxLTExLTEzICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQHJlZGhhdC5jb20+CgoJKiBkd2FyZjIuYyAoZGVjb2RlX2xpbmVfaW5mbyk6IFByb3Blcmx5IGRlYWwgd2l0aCB1bmtub3duIHN0YW5kYXJkCglvcGNvZGVzLgoKMjAwMS0xMS0xMyAgSm9obiBNYXJzaGFsbCAgPGptYXJzaGFsbEBhY20ub3JnPgoJICAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzZWN0aW9uLmMgKGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5KTogRG9uJ3QgaW5jcmVtZW50IHNlY3Rpb25faWQKCWFuZCB0aGUgQkZEJ3Mgc2VjdGlvbl9jb3VudCBpZiBhZGRpbmcgdGhlIHNlY3Rpb24gZmFpbGVkLgoJKiB2bXMuYyAodm1zX25ld19zZWN0aW9uX2hvb2spOiBBZGp1c3QgZm9yIGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5CgljaGFuZ2UuCgoyMDAxLTExLTEyICBPcmphbiBGcmliZXJnICA8b3JqYW5mQGF4aXMuY29tPgoKCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9ncm9rX3Byc3RhdHVzKTogQWRqdXN0IHZhbHVlcyB0byBtYXRjaCBuZXcKCWNvcmUgZHVtcCBmb3JtYXQuCgoyMDAxLTExLTExICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IENhbGwKCV9iZmRfZWxmX3N0cnRhYl9zaXplIGluc3RlYWQgb2YgX2JmZF9zdHJpbmd0YWJfc2l6ZS4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IENoYW5nZQoJZHluc3RyIHR5cGUgdG8gYHN0cnVjdCBlbGZfc3RydGFiX2hhc2ggKicuCgoyMDAxLTExLTExICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBlbGYtc3RydGFiLmMgKF9iZmRfZWxmX3N0cnRhYl9maW5hbGl6ZSk6IE1ha2UgZmlyc3QgdmFyaWFibGUgaQoJc2l6ZV90LiAgUmVuYW1lIHNlY29uZCBpIHRvIGouCgoyMDAxLTExLTEwICBKZWZmcmV5IEEgTGF3ICAobGF3QGN5Z251cy5jb20pCgoJKiBiaW5hcnkuYzogSW5jbHVkZSBzYWZlLWN0eXBlLmggYWZ0ZXIgYmZkLmggYW5kIHN5c2RlcC5oLgoKMjAwMS0xMS0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IERvbid0IGNvcHkgU1ROX1VOREVGCglyZWxvY3MgaW50byBzaGFyZWQgbGlicy4KCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCgkqIGVsZi5jIChiZmRfc2VjdGlvbl9mcm9tX3Jfc3ltbmR4KTogTmV3IGZ1bmN0aW9uLgoJKiBlbGYtYmZkLmggKExPQ0FMX1NZTV9DQUNIRV9TSVpFKTogRGVmaW5lLgoJKHN0cnVjdCBzeW1fc2VjX2NhY2hlKTogTmV3LgoJKGJmZF9zZWN0aW9uX2Zyb21fcl9zeW1uZHgpOiBEZWNsYXJlLgoJKHN0cnVjdCBiZmRfZWxmX3NlY3Rpb25fZGF0YSk6IENoYW5nZSBsb2NhbF9keW5yZWwgdHlwZSB0byBQVFIuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogRG9uJ3QgdGVzdCBmb3IgcmVtb3ZlZCBsaW5rb25jZQoJcmVsb2NzIHdoZW4gcmVsb2NhdGFibGUuICBEb24ndAl6ZXJvIGVudGlyZSByZWxvYywganVzdCB6ZXJvIHRoZQoJYWRkZW5kIGFuZCBzeW0uCgkqIGVsZjMyLWhwcGEuYyAoc3RydWN0IGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlKTogQWRkIHN5bV9zZWMuCgkoZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCBpdC4KCShlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IFRyYWNrIGR5bmFtaWMgcmVsb2NzIG5lZWRlZCBmb3IgbG9jYWwKCXN5bXMgb24gYSBwZXItc2VjdGlvbiBiYXNpcyBhcyB3ZSBkbyBmb3IgZ2xvYmFscy4KCShlbGYzMl9ocHBhX2djX3N3ZWVwX2hvb2spOiBVcGRhdGUgZm9yIGxvY2FsX2R5bnJlbCBjaGFuZ2UuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogV2FybmluZyBmaXguCgkoZWxmMzJfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBhbGxvY2F0ZSByZWxvY3Mgd2hlbgoJc2VjdGlvbiBoYXMgYmVlbiBkaXNjYXJkZWQuCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgY29weSBTVE5fVU5ERUYgcmVsb2NzCglpbnRvIHNoYXJlZCBsaWJzLgoJKiBlbGYzMi1pMzg2LmMgKHN0cnVjdCBlbGZfaTM4Nl9saW5rX2hhc2hfdGFibGUpOiBBZGQgc3ltX3NlYy4KCShlbGZfaTM4Nl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCBpdC4KCShlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBUcmFjayBkeW5hbWljIHJlbG9jcyBuZWVkZWQgZm9yIGxvY2FsCglzeW1zIG9uIGEgcGVyLXNlY3Rpb24gYmFzaXMgYXMgd2UgZG8gZm9yIGdsb2JhbHMuCgkoZWxmX2kzODZfZ2Nfc3dlZXBfaG9vayk6IFVwZGF0ZSBmb3IgbG9jYWxfZHlucmVsIGNoYW5nZS4KCVJlbW92ZSBkZWFkIGNvZGUuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogV2FybmluZyBmaXguCgkoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgYWxsb2NhdGUgcmVsb2NzIHdoZW4KCXNlY3Rpb24gaGFzIGJlZW4gZGlzY2FyZGVkLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBjb3B5IFNUTl9VTkRFRiByZWxvY3MKCWludG8gc2hhcmVkIGxpYnMuCgkqIGVsZjMyLXMzOTAuYyAoc3RydWN0IGVsZl9zMzkwX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBzeW1fc2VjLgoJKGVsZl9zMzkwX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0IGl0LgoJKGVsZl9zMzkwX2NoZWNrX3JlbG9jcyk6IFRyYWNrIGR5bmFtaWMgcmVsb2NzIG5lZWRlZCBmb3IgbG9jYWwKCXN5bXMgb24gYSBwZXItc2VjdGlvbiBiYXNpcyBhcyB3ZSBkbyBmb3IgZ2xvYmFscy4KCShlbGZfczM5MF9nY19zd2VlcF9ob29rKTogVXBkYXRlIGZvciBsb2NhbF9keW5yZWwgY2hhbmdlLgoJUmVtb3ZlIGRlYWQgY29kZS4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBXYXJuaW5nIGZpeC4KCShlbGZfczM5MF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBhbGxvY2F0ZSByZWxvY3Mgd2hlbgoJc2VjdGlvbiBoYXMgYmVlbiBkaXNjYXJkZWQuCgkoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGNvcHkgU1ROX1VOREVGIHJlbG9jcwoJaW50byBzaGFyZWQgbGlicy4KCSogZWxmNjQtcHBjLmMgKHN0cnVjdCBwcGNfbGlua19oYXNoX3RhYmxlKTogQWRkIHN5bV9zZWMuCgkocHBjNjRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IEluaXQgaXQuCgkocHBjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IFRyYWNrIGR5bmFtaWMgcmVsb2NzIG5lZWRlZCBmb3IgbG9jYWwKCXN5bXMgb24gYSBwZXItc2VjdGlvbiBiYXNpcyBhcyB3ZSBkbyBmb3IgZ2xvYmFscy4KCShwcGM2NF9lbGZfZ2Nfc3dlZXBfaG9vayk6IFVwZGF0ZSBmb3IgbG9jYWxfZHlucmVsIGNoYW5nZS4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBDYWxsIHRoZSBjb3JyZWN0IHJlY29yZF9keW5hbWljX2R5bWJvbAoJZnVuY3Rpb24uICBXYXJuaW5nIGZpeC4KCShwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgYWxsb2NhdGUgcmVsb2NzIHdoZW4KCXNlY3Rpb24gaGFzIGJlZW4gZGlzY2FyZGVkLgoJKHBwYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgY29weSBTVE5fVU5ERUYgcmVsb2NzCglpbnRvIHNoYXJlZCBsaWJzLgoJKiBlbGY2NC1zMzkwLmMgKHN0cnVjdCBlbGZfczM5MF9saW5rX2hhc2hfdGFibGUpOiBBZGQgc3ltX3NlYy4KCShlbGZfczM5MF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCBpdC4KCShlbGZfczM5MF9jaGVja19yZWxvY3MpOiBUcmFjayBkeW5hbWljIHJlbG9jcyBuZWVkZWQgZm9yIGxvY2FsCglzeW1zIG9uIGEgcGVyLXNlY3Rpb24gYmFzaXMgYXMgd2UgZG8gZm9yIGdsb2JhbHMuCgkoZWxmX3MzOTBfZ2Nfc3dlZXBfaG9vayk6IFVwZGF0ZSBmb3IgbG9jYWxfZHlucmVsIGNoYW5nZS4KCVJlbW92ZSBkZWFkIGNvZGUuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogV2FybmluZyBmaXguCgkoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgYWxsb2NhdGUgcmVsb2NzIHdoZW4KCXNlY3Rpb24gaGFzIGJlZW4gZGlzY2FyZGVkLgoJKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBEb24ndCBjb3B5IFNUTl9VTkRFRiByZWxvY3MKCWludG8gc2hhcmVkIGxpYnMuCgoyMDAxLTExLTA4ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogZWxmMzItczM5MDogTWFqb3IgcmV3b3JrIHRoYXQgaW50cm9kdWNlcyBhbGwgcmVjZW50IGNoYW5nZXMgdG8KCXRoZSBzMzkwIGJhY2tlbmRzLiAgR2V0IGEgY2xvc2VyIG1hdGNoIHRvIGVsZjMyLWkzODYuCgkoZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbik6IE1ha2UgdXNlIG9mIGR5bmFtaWMgc2VjdGlvbiBzaG9ydC1jdXRzLgoJTG9jYWxpc2UgdmFycywgYW5kIGRlbGF5IHNldHRpbmcuICBCZXR0ZXIgZXJyb3IgcmVwb3J0aW5nLCByZXBsYWNlCglCRkRfQVNTRVJUIHdpdGggYWJvcnQuICBDaGVjayBFTEZfTElOS19IQVNIX0RFRl9EWU5BTUlDIHRvIHNlZSBpZiBhCglzeW1ib2wgaXMgbm90IGRlZmluZWQgaW4gdGhlIHJlZ3VsYXIgb2JqZWN0IGZpbGUgYW5kIHRyZWFkIHRoZSB3ZWFrCglkZWZpbml0aW9uIGFzIHRoZSBub3JtYWwgb25lLiAgRG9uJ3QgZGlzY2FyZCByZWxvY3MgZm9yIHVuZGVmd2VhayBvcgoJdW5kZWZpbmVkIHN5bWJvbHMgYW5kIGNoZWNrICFERUZfUkVHVUxBUiBhcyB3ZWxsIGFzIERFRl9EWU5BTUlDIGluCgl0ZXN0IGZvciBhdm9pZGVkIGNvcHkgcmVsb2NzLiAgUmVpbnN0YXRlIGZ1ZGdlIGZvciB1bnJlc29sdmVkIHJlbG9jcwoJaW4gZGVidWdnaW5nIHNlY3Rpb25zLgoJKGVsZjMyX3MzOTBfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogSGFuZGxlIG5vY29weXJlbG9jLiAgRG9uJ3QgZG8gY29weQoJcmVsb2MgcHJvY2Vzc2luZyBmb3Igd2Vha2RlZnMuICBSZW1vdmUgcmVkdW5kYW50IGNhc3RzIGFuZCBhYm9ydHMuCglEZWxheSBzZXR0aW5nIG9mIHZhcnMgdW50aWwgbmVlZGVkLiAgTW92ZSBjcmVhdGlvbiBvZiBkeW5hbWljIHN5bWJvbHMKCWFuZCBhbGxvY2F0aW9uIG9mIC5wbHQgYW5kIC5yZWxhLnBsdCB0byBhbGxvY2F0ZV9keW5yZWxvY3MuICBSZXBsYWNlCglCRkRfQVNTRVJUIHdpdGggYWJvcnQuICBEaXNjYXJkIC5wbHQgZW50cmllcyBmb3IgZXZlcnl0aGluZyB3aXRoCglwbHQucmVmY291bnQgPD0gMC4KCShlbGZfczM5MF9jaGVja19yZWxvY3MpOiAgRG9uJ3QgYWxsb2NhdGUgc3BhY2UgZm9yIGR5bmFtaWMgcmVsb2NzLAoJLmdvdCBvciAucmVsZ290IGhlcmUgYnV0IGRvIGl0IGluIGFsbG9jYXRlX2R5bnJlbG9jcy4gIFJlZmVyZW5jZSBjb3VudAoJcG9zc2libGUgLnBsdCBhbmQgLmdvdCBlbnRyaWVzLiAgRG9uJ3QgdGVzdCBpbnB1dCBzZWN0aW9uIFNFQ19SRUFET05MWQoJaGVyZSB0byB0cnkgdG8gYXZvaWQgY29weSByZWxvY3MsIGFuZCBrZWVwIGR5bl9yZWxvY3MgcmVnYXJkbGVzcyBvZgoJRUxGX0xJTktfTk9OX0dPVF9SRUYuICBEb24ndCBzZXQgREZfVEVYVFJFTCBoZXJlLiAgRGVsYXkgc2V0dGluZyBvZgoJdmFyaWFibGVzIHVudGlsIG5lZWRlZC4gIFJlbW92ZSBzZXBhcmF0ZSBzd2l0Y2ggc3RtdCBmb3IgY3JlYXRpbmcgLmdvdAoJc2VjdGlvbi4gIEluaXRpYWxpc2UgbG9jYWxfZ290X3JlZmNvdW50cyB0byAwLiAgQ2FjaGUgcG9pbnRlciB0bwoJInNyZWxvYyIgc2VjdGlvbiBpbiBlbGZfc2VjdGlvbl9kYXRhLiBUd2VhayBjb25kaXRpb24gdW5kZXIgd2hpY2ggLmdvdAoJY3JlYXRlZC4gIFJlcG9ydCBmaWxlcyB3aXRoIGJhZCByZWxvY2F0aW9uIHNlY3Rpb24gbmFtZXMuCgkoZWxmX3MzOTBfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QgY29weSByZWxvY3MgZm9yIHN5bWJvbHMgdGhhdAoJaGF2ZSBiZWVuIGZvcmNlZCBsb2NhbC4gIFVzZSBzYW1lIHRlc3QgdG8gZGVjaWRlIGlmIHdlIGNhbiB1c2UgYQoJcmVsYXRpdmUgcmVsb2MgZm9yIGdvdCBhcyBlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uLiAgRXhwYW5kIFNITl9VTkRFRgoJY29tbWVudC4gIE1vdmUgZXhwcmVzc2lvbnMgb3V0IG9mIGZ1bmN0aW9uIGNhbGxzLiAgUmVwbGFjZSBCRkRfQVNTRVJUCgl3aXRoIGFib3J0LgoJKGVsZl9zMzkwX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTWlncmF0ZSBjb21tb24gY29kZSBvdXQgb2Ygc3dpdGNoCglzdGF0ZW1lbnQuICBSZXBsYWNlIEJGRF9BU1NFUlQgd2l0aCBhYm9ydC4KCShlbGZfczM5MF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBDYWxsIHJlYWRvbmx5X2R5bnJlbG9jcy4gUmVuYW1lICJpIgoJdG8gImliZmQiLiAgQWxsb2NhdGUgc3BhY2UgZm9yIGxvY2FsIGR5biByZWxvY3MuICBVc2UgREZfVEVYVFJFTCBmbGFnCglpbnN0ZWFkIG9mIGxvb2tpbmcgdXAgc2VjdGlvbiBuYW1lcyBmb3IgRFRfVEVYVFJFTC4gIFJlcGxhY2UKCUJGRF9BU1NFUlQgd2l0aCBhYm9ydC4gIFplcm8gb3V0IHRoZSBkeW5hbWljIGFsbG9jYXRlZCBjb250ZW50IHNwYWNlLgoJQWRkIGEgY29tbWVudCB0byByZW1pbmQgdXMgdGhhdCBvbmUgZGF5IHRoaXMgb3VnaHQgdG8gYmUgZml4ZWQuCgkoc3RydWN0IGVsZl9zMzkwX2xpbmtfaGFzaF9lbnRyeSk6IFJlbmFtZSAicm9vdCIgdG8gImVsZiIuCgkoc3RydWN0IGVsZl9zMzkwX2xpbmtfaGFzaF90YWJsZSk6IExpa2V3aXNlLgoJKGVsZl9zMzkwX2xpbmtfaGFzaF9uZXdmdW5jKTogUmVuYW1lIHRvIGxpbmtfaGFzaF9uZXdmdW5jIGFuZCBnZXQKCXJpZCBvZiB1bm5lY2Vzc2FyeSBjYXN0cy4KCShzdHJ1Y3QgZWxmX3MzOTBfZHluX3JlbG9jcyk6IEFkZCAic2VjIiwgYW5kICJwY19jb3VudCIgZmllbGRzLgoJUmVtb3ZlICJzZWN0aW9uIiBmaWVsZC4KCShlbGZfczM5MF9nY19zd2VlcF9ob29rKTogU3dlZXAgZHluX3JlbG9jcyBhbmQgbG9jYWxfZHlucmVsLgoJUmVmZXJlbmNlIGNvdW50IHBvc3NpYmxlIC5wbHQgZW50cmllcy4gIERvbid0IGRlYWxsb2NhdGUgLmdvdCBhbmQKCS5yZWxnb3Qgc3BhY2UgaGVyZS4KCShzdHJ1Y3QgZWxmX3MzOTBfcGNyZWxfcmVsb2NzX2NvcGllZCk6IFJlbmFtZSB0byBlbGZfczM5MF9keW5fcmVsb2NzLgoJVXBkYXRlIGNvbW1lbnQuCgkoc3RydWN0IGVsZl9zMzkwX2xpbmtfaGFzaF9lbnRyeSk6IFJlbmFtZSBwY3JlbF9yZWxvY3NfY29waWVkIHRvCglkeW5fcmVsb2NzLgoJKGVsZl9zMzkwX2Rpc2NhcmRfY29waWVzKTogIERlbGV0ZS4KCShlbGZfczM5MF9saW5rX2hhc2hfdHJhdmVyc2UpOiBEZWxldGUuCgkoYmZkX2VsZjMyX2JmZF9maW5hbF9saW5rKTogRGVsZXRlLiAgKGllLiB1c2UgcmVndWxhciBmaW5hbCBsaW5rCglyYXRoZXIgdGhhbiBnYyB2YXJpZXR5KS4KCShzdHJ1Y3QgZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlKTogQWRkIHNnb3QsIHNnb3RwbHQsIHNyZWxnb3QsIHNwbHQsCglzcmVscGx0LCBzZHluYnNzLCBzcmVsYnNzIGZpZWxkcy4KCShlbGZfczM5MF9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCB0aGVtLgoJKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBEZWZpbmUuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogTmV3IGZ1bmN0aW9uLgoJKGNyZWF0ZV9nb3Rfc2VjdGlvbik6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9jYW5fcmVmY291bnQpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEZWZpbmUuCgkoZWxmX3MzOTBfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX3MzOTBfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBOZXcgZnVuY3Rpb24uCgkocmVhZG9ubHlfZHlucmVsb2NzKTogTmV3IGZ1bmN0aW9uLgoJKiBlbGY2NC1zMzkwLmM6IExpa2V3aXNlLgoKMjAwMS0xMS0wNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmLXN0cnRhYi5sby4KCShCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmLXN0cnRhYi5jLgoJKGVsZi1zdHJ0YWIubG8pOiBBZGQgcnVsZS4KCSogTWFrZWZpbGUuaW46IFJlYnVpbHQuCgkqIGNvbmZpZ3VyZS5pbiAoZWxmKTogQWRkIGVsZi1zdHJ0YWIubG8uCgkqIGNvbmZpZ3VyZTogUmVidWlsdC4KCSogZWxmLWJmZC5oIChlbGZfc3RydGFiX2hhc2gpOiBGb3J3YXJkIGRlY2xhcmUuCgkoc3RydWN0IGVsZl9saW5rX2hhc2hfdGFibGUpOiBDaGFuZ2UgZHluc3RyIHR5cGUgdG8KCXN0cnVjdCBlbGZfc3RydGFiX2hhc2ggKi4KCShzdHJ1Y3QgZWxmX29ial90ZGF0YSk6IENoYW5nZSBzdHJ0YWJfcHRyIHR5cGUgdG8KCXN0cnVjdCBlbGZfc3RydGFiX2hhc2ggKi4KCShfYmZkX2VsZl9zdHJ0YWJfaW5pdCwgX2JmZF9lbGZfc3RydGFiX2ZyZWUsIF9iZmRfZWxmX3N0cnRhYl9hZGQsCglfYmZkX2VsZl9zdHJ0YWJfYWRkcmVmLCBfYmZkX2VsZl9zdHJ0YWJfZGVscmVmLAoJX2JmZF9lbGZfc3RydGFiX2NsZWFyX2FsbF9yZWZzLCBfYmZkX2VsZl9zdHJ0YWJfc2l6ZSwKCV9iZmRfZWxmX3N0cnRhYl9vZmZzZXQsIF9iZmRfZWxmX3N0cnRhYl9lbWl0LAoJX2JmZF9lbGZfc3RydGFiX2ZpbmFsaXplKTogTmV3IHByb3RvdHlwZXMuCgkqIGVsZi1zdHJ0YWIuYzogTmV3IGZpbGUuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogVXNlIF9iZmRfZWxmX3N0cnRhYl9hZGQKCWFuZCBfYmZkX2VsZl9zdHJ0YWJfc2l6ZSBpbnN0ZWFkIG9mIF9iZmRfc3RyaW5ndGFiIGNhbGxzLgoJQ2FsbCBfYmZkX2VsZl9zdHJ0YWJfZGVscmVmIGlmIERUX05FRURFRCBlbnRyeSBpcyBub3QgbmVlZGVkIG9yCgl3aGVuIGZvcmNpbmcgZHluYW1pYyBzeW1ib2wgdG8gbG9jYWwuCgkoZWxmX2xpbmtfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBDYWxsCglfYmZkX2VsZl9zdHJ0YWJfaW5pdCBpbnN0ZWFkIG9mIGVsZl9zdHJpbmd0YWJfaW5pdC4KCShlbGZfbGlua19yZWNvcmRfbG9jYWxfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZSwgY2hhbmdlCglkeW5zdHIgdHlwZS4gIFVzZSBfYmZkX2VsZl9zdHJ0YWIgZnVuY3Rpb25zIGluc3RlYWQgb2YKCV9iZmRfc3RyaW5ndGFiIGNhbGxzLgoJKHNpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBfYmZkX2VsZl9zdHJ0YWIgZnVuY3Rpb25zIGluc3RlYWQgb2YKCV9iZmRfc3RyaW5ndGFiIGNhbGxzLiAgRm9yIERUX1JVTlBBVEggYW5kIFZlcmRhdXggdmRhX25hbWUgZmllbGRzLAoJY2FsbCBfYmZkX2VsZl9zdHJ0YWJfYWRkcmVmLiAgQ2FsbCBlbGZfZmluYWxpemVfZHluc3RyLgoJKGVsZl9hZGp1c3RfZHluc3RyX29mZnNldHMsIGVsZl9maW5hbGl6ZV9keW5zdHIpOiBOZXcgZnVuY3Rpb25zLgoJKGVsZl9maXhfc3ltYm9sX2ZsYWdzKTogQ2FsbCBfYmZkX2VsZl9zdHJ0YWJfZGVscmVmIHdoZW4gZm9yY2luZwoJZHluYW1pYyBzeW1ib2wgdG8gbG9jYWwuCgkoZWxmX2xpbmtfYXNzaWduX3N5bV92ZXJzaW9uKTogTGlrZXdpc2UuCgkoZWxmX2JmZF9maW5hbF9saW5rKTogQ2FsbCBfYmZkX2VsZl9zdHJ0YWJfZW1pdCBpbnN0ZWFkIG9mCglfYmZkX3N0cmluZ3RhYl9lbWl0LgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2xpbmtfcmVjb3JkX2R5bmFtaWNfc3ltYm9sKTogQ2hhbmdlIGR5bnN0cgoJdHlwZS4gIENhbGwgX2JmZF9lbGZfc3RydGFiIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mCglfYmZkX3N0cmluZ3RhYiBmdW5jdGlvbnMuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYuYyAoX2JmZF9lbGZfaW5pdF9yZWxvY19zaGRyKTogTGlrZXdpc2UuCgkoZWxmX2Zha2Vfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShhc3NpZ25fc2VjdGlvbl9udW1iZXJzKTogQ2FsbCBfYmZkX2VsZl9zdHJ0YWJfY2xlYXJfYWxsX3JlZnMKCW9uIHNoc3RydGFiIGhhc2ggdGFibGUsIGNhbGwgX2JmZF9lbGZfc3RydGFiX2FkZHJlZiBvbiBlYWNoIHNlY3Rpb24KCW5hbWUgaW4gdGhlIG91dHB1dC4gIENhbGwgX2JmZF9lbGZfc3RydGFiX2ZpbmFsaXplIGFuZAoJdXNlIF9iZmRfZWxmX3N0cnRhYl9vZmZzZXQgdG8gZmluYWxpemUgc2hfbmFtZSBzZWN0aW9uIGhlYWRlciBmaWVsZHMuCgkoX2JmZF9lbGZfY29tcHV0ZV9zZWN0aW9uX2ZpbGVfcG9zaXRpb25zKTogVXNlIF9iZmRfZWxmX3N0cnRhYl9zaXplCglpbnN0ZWFkIG9mIF9iZmRfc3RyaW5ndGFiX3NpemUuCgkocHJlcF9oZWFkZXJzKTogQ2hhbmdlIHNoc3RydGFiIHR5cGUuCglVc2UgX2JmZF9lbGZfc3RydGFiIGNhbGxzIGluc3RlYWQgb2YgX2JmZF9zdHJpbmd0YWIgY2FsbHMuCgoyMDAxLTExLTA3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oIChlbGZfbGlua19pbnB1dF9iZmQgPHJlbW92ZWQgbGlua29uY2UgcmVsb2NzPik6IEZpeAoJYmFkIHN5bXRhYiBzZWdmYXVsdC4gIEZvcm1hdHRpbmcgYW5kIHdhcm5pbmcgZml4ZXMuICBJbXByb3ZlCgllcnJvciBtZXNzYWdlIGZvciBpbnRlcm5hdGlvbmFsaXNhdGlvbi4KCjIwMDEtMTEtMDYgIEguSi4gTHUgIChoamxAZ251Lm9yZykKCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogQ29tcGxhaW4gYWJvdXQgcmVsb2NzIGFnYWluc3QKCWRpc2NhcmRlZCBzZWN0aW9ucy4KCjIwMDEtMTEtMDMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZ4eC10YXJnZXQuaCAoZWxmTk5fYmVkKTogQ29ycmVjdCB3YW50X2dvdF9zeW0sIHdhbnRfZHluYnNzIG9yZGVyLgoKMjAwMS0xMS0wMiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IERvbid0IGNyZWF0ZQoJZHluYW1pYyByZWxvY2F0aW9uIGZvciBzeW1ib2xzIGRlZmluZWQgaW4gcmVndWxhciBvYmplY3RzIHdoZW4KCWNyZWF0aW5nIGV4ZWN1dGFibGVzLgoKMjAwMS0xMS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkICJmciIuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogcG8vZnIucG86IE5ldyBmaWxlLgoKCSogY29mZmdlbi5jIChjb2ZmX29iamVjdF9wKTogQWRkIGNvbW1lbnQgdG8gSC5KLidzIHJlY2VudCBwYXRjaC4KCjIwMDEtMTEtMDIgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZUBoaWF1bHkxLmhpYS5ucmMuY2E+CgoJKiBzb20uYyAoc2V0dXBfc2VjdGlvbnMpOiBJbml0aWFsaXplIHN1YnNwYWNlX3NlY3Rpb25zLgoKMjAwMS0xMS0wMiAgSC5KLiBMdSAgKGhqbEBnbnUub3JnKQoKCSogY29mZmdlbi5jIChjb2ZmX29iamVjdF9wKTogUmV0dXJuIDAgaWYgdGhlIGhlYWRlciBpcyB0b28gYmlnLgoKMjAwMS0xMS0wMiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGZjb3JlLmggKGVsZl9jb3JlX2ZpbGVfcCk6IFByZXNlcnZlIGFuZCBjbGVhciBhYmZkIHNlY3Rpb24KCWluZm9ybWF0aW9uLiAgU2F2ZSBiZmQgYXJjaCBhbmQgbWFjaCB2YWx1ZXMuICBSZXN0b3JlIG9uIGVycm9yLgoKMjAwMS0xMS0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoaHBwYV9oYW5kbGVfUElDX2NhbGxzKTogUmVuYW1lIHRvIG1hcmtfUElDX2NhbGxzLgoJKGFsbG9jYXRlX1BJQ19jYWxscyk6IE5ldyBmdW5jdGlvbi4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBEb24ndCBhbGxvY2F0ZSBwaWNfY2FsbCBwbHQgZW50cmllcyBoZXJlLgoJKGVsZjMyX2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQ2FsbCBhbGxvY2F0ZV9QSUNfY2FsbHMuCgkoZWxmMzJfaHBwYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBSZW1vdmUgZGVhZCBjb2RlLgoKMjAwMS0xMS0wMiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX2dyb2tfcHJzdGF0dXMpOiBOZXcgZnVuY3Rpb24uCgkoY3Jpc19lbGZfZ3Jva19wc2luZm8pOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfZ3Jva19wcnN0YXR1cyk6IERlZmluZS4KCShlbGZfYmFja2VuZF9ncm9rX3BzaW5mbyk6IERlZmluZS4KCjIwMDEtMTEtMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBDb3JyZWN0IGJyYW5jaAoJcHJlZGljdGlvbiBiaXRzLgoKMjAwMS0xMC0zMSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQGRlbWV0cmlvdS5jb20+CgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfaGkxNl9yZWxvYyk6IEhhbmRsZSBQQy1yZWxhdGl2ZQoJcmVsb2NhdGlvbnMgcHJvcGVybHkuCgoyMDAxLTEwLTMxICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IERvbid0IGNsZWFyIHRoZSB2aXNpYmlsaXR5CglmaWVsZCBmb3IgcmVsb2NhdGVhYmxlLgoKMjAwMS0xMS0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNvdW50CgkucGx0IHJlbG9jcyBpbiBEVF9SRUxBU1ouCgoyMDAxLTEwLTI5ICBOSUlCRSBZdXRha2EgIDxnbmlpYmVAbTE3bi5vcmc+CgoJKiBjb25maWcuYmZkOiBTdXBwb3J0cyBzaDMvc2g0L3NoM2ViL3NoNGViLXVua25vd24tbGludXgtZ251Cgl0YXJnZXRzLgoKMjAwMS0xMC0zMSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiB0YXJnZXRzLmM6IEZpeCB0eXBvOiBiZmRfbW1vX21taXhfdmVjID0+IGJmZF9tbW9fdmVjLgoKMjAwMS0xMC0zMCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9NQUNISU5FUyk6IEFkZCBjcHUtbW1peC5sby4KCShCRkQ2NF9CQUNLRU5EUyk6IEFkZCBlbGY2NC1tbWl4LmxvIGFuZCBtbW8ubG8uCgkoQkZENjRfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjY0LW1taXguYyBhbmQgbW1vLmMuCglSZWdlbmVyYXRlIGRlcGVuZGVuY2llcy4KCSogY29uZmlndXJlLmluIChiZmRfZWxmNjRfbW1peF92ZWMsIGJmZF9tbW9fdmVjKTogTmV3IHZlY3RvcnMuCgkqIGNvbmZpZy5iZmQ6IFtCRkQ2NF0gKG1taXgtKi0qKTogTmV3IGNhc2UuCgkqIGNwdS1tbWl4LmMsIG1tby5jLCBlbGY2NC1tbWl4LmM6IE5ldyBmaWxlcy4KCSogYXJjaHVyZXMuYyAoZW51bSBiZmRfYXJjaGl0ZWN0dXJlKTogQWRkIGJmZF9hcmNoX21taXguCgkoYmZkX21taXhfYXJjaCk6IERlY2xhcmUuCgkoYmZkX2FyY2h1cmVzX2xpc3QpOiBBZGQgYmZkX21taXhfYXJjaC4KCSogdGFyZ2V0cy5jIChlbnVtIGJmZF9mbGF2b3VyKTogQWRkIGJmZF90YXJnZXRfbW1vX2ZsYXZvdXIuCgkoYmZkX2VsZjY0X21taXhfdmVjLCBiZmRfbW1vX3ZlYyk6IERlY2xhcmUuCgkoYmZkX3RhcmdldF92ZWN0KSBbQkZENjRdOiBBZGQgYmZkX2VsZjY0X21taXhfdmVjIGFuZAoJYmZkX21tb19tbWl4X3ZlYy4KCSogcmVsb2MuYzogQWRkIE1NSVggcmVsb2NhdGlvbnMuCgkqIGJmZC5jIChzdHJ1Y3QgX2JmZCwgdGRhdGEpOiBBZGQgbW1vX2RhdGEuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVidWlsZC4KCjIwMDEtMTAtMzAgIFJpY2hhcmQgRWFybnNoYXcgKHJlYXJuc2hhQGFybS5jb20pCgoJKiBlbGYuYyAoX2JmZF9lbGZfbWFrZV9zZWN0aW9uX2Zyb21fc2hkcik6IFNldCB0aGUgTE1BIGJhc2VkIG9uIHRoZQoJcF9wYWRkciBvZiB0aGUgc2VnbWVudCB0aGF0IGNvbnRhaW5zIGl0LgoJKGNvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IElmIHRoZSBMTUEgZm9yIGEgc2VnbWVudCBpcyBrbm93biwgdXNlIGl0Cglmb3IgbWF0Y2hpbmcgc2VjdGlvbnMgdG8gc2VnbWVudHMuCgkoYXNzaWduX2ZpbGVfcG9zaXRpb25zX2Zvcl9zZWdtZW50cyk6IFVzZSB0aGUgTE1BIHdoZW4gYWRqdXN0aW5nCglmb3IgaW50ZXItc2VjdGlvbiBhbGlnbm1lbnQgcGFkZGluZy4KCjIwMDEtMTAtMjkgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogUkVBRE1FOiBGaXggYSB0eXBvLgoKMjAwMS0xMC0yNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHBlWFhpZ2VuLmMgKF9iZmRfWFhfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YV9jb21tb24pOiBDb3B5Cgl0aW1lc3RhbXAgdG8gdGltZV90IGZvciBjdGltZS4KCjIwMDEtMTAtMjQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZWxmMzItY3Jpcy5jIChjcmlzX3JlbG9jX3R5cGVfbG9va3VwKTogQ2hhbmdlIGxvb3AgdG8gdXNlCgl1bnNpZ25lZCwgaW5jcmVhc2luZyBpbmRleC4KCjIwMDEtMTAtMjMgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX21vZGlmeV9zZWdtZW50X21hcCk6IENoZWNrCgltICE9IE5VTEwgYmVmb3JlIGFjY2Vzc2luZyBpdC4KCjIwMDEtMTAtMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IFplcm8gdGhlIHJlbG9jIGluc3RlYWQgb2YgZG9pbmcKCWJmZF9yZWxvY190eXBlX2xvb2t1cCAoYmZkLCBCRkRfUkVMT0NfTk9ORSkgYXMgYmZkX3JlbG9jX3R5cGVfbG9va3VwCglkb2Vzbid0IGFjY2VwdCBCRkRfUkVMT0NfKiBvbiBzb21lIHRhcmdldHMsIGVnLiBocHBhLgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2xpbmtfaGFzaF9lbnRyeSk6IFJlbW92ZSBwbHRfYWJzLgoJKGhwcGFfbGlua19oYXNoX25ld2Z1bmMpOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IEFsd2F5cyBhbGxvY2F0ZSAuZ290IHJlbG9jcyBpZiBzaGFyZWQuCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogT3V0cHV0IHRoZW0gdG9vLiAgU2ltaWxhcmx5Cgljb25zb2xpZGF0ZSAucGx0IHJlbG9jIGNvZGUsIGFuZCBubyBsb25nZXIgaW5pdGlhbGlzZSAucGx0Cgl3aGVuIGEgcmVsb2MgaXMgb3V0cHV0LgoJKGVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogT25seSBpbml0aWFsaXNlIC5wbHQgZW50cmllcwoJd2hlbiBubyByZWxvYyBpcyBvdXRwdXQuCgoJRnJvbSBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CgkqIGVsZjMyLWhwcGEuYyAoZmluYWxfbGlua19yZWxvY2F0ZSk6IENhbGwgYmZkX3NldF9lcnJvciBmb3IKCXVucmVhY2hhYmxlIGJyYW5jaGVzLgoKMjAwMS0xMC0yMiAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBjb25maWd1cmUuaW4gKFdJTjMyTElCQUREKTogVXNlIC1MLi4vbGliaWJlcnR5IGZvcgoJbWlwcyotKi1saW51eCouCgkqIGNvbmZpZ3VyZTogUmVidWlsZC4KCjIwMDEtMTAtMjEgIEguSi4gTHUgPGhqbEBnbnUub3JnPgoKCSogY29uZmlndXJlLmluIChXSU4zMkxJQkFERCk6IEluY2x1ZGUgLUwuLi9saWJpYmVydHkvcGljIC1saWJlcnR5CglpZiBzaGFyZWQgbGlicmFyeSBpcyBlbmFibGVkIG9ubHkgZm9yIExpbnV4IGhvc3RzLgoJKiBjb25maWd1cmU6IFJlYnVpbGQuCgoyMDAxLTEwLTIxICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS5pbiAoV0lOMzJMSUJBREQpOiBDaGVjayBpZiBQSUNGTEFHIGlzIGRlZmluZWQgaW4KCS4uL2xpYmliZXJ0eS9NYWtlZmlsZSBpbnN0ZWFkIG9mICRlbmFibGVfc2hhcmVkLgoJKiBjb25maWd1cmU6IFJlYnVpbGQuCgoyMDAxLTEwLTIxICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19yZWxvY190eXBlX2xvb2t1cCk6IFVzZSBpbnQgZm9yIGluZGV4LiAgQ292ZXIKCWluZGV4IDAuCgoyMDAxLTEwLTIwICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS5pbiAoV0lOMzJMSUJBREQpOiBJbmNsdWRlIC1MLi4vbGliaWJlcnR5L3BpYyAtbGliZXJ0eQoJaWYgc2hhcmVkIGxpYnJhcnkgaXMgZW5hYmxlZC4KCSogY29uZmlndXJlOiBSZWJ1aWxkLgoKMjAwMS0xMC0yMCAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfcmVsb2NfdHlwZV9sb29rdXApOiBBbGxvdyBpbmRleCAwLgoKMjAwMS0xMC0xOSAgSC5KLiBMdSA8aGpsQGdudS5vcmc+CgoJKiBlbGZjb2RlLmggKGVsZl9vYmplY3RfcCk6IERvbid0IGNsZWFyIERfUEFHRUQgaWYgdGhlIHNlY3Rpb24KCXNpemUgaXMgZW1wdHkuCgoyMDAxLTEwLTE4ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IElnbm9yZSBSX1hYWF9OT05FLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAxLTEwLTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHNlY3Rpb24uYyAoX2JmZF9zdHJpcF9zZWN0aW9uX2Zyb21fb3V0cHV0KTogRG9uJ3QgY291bnQKCVNFQ19FWENMVURFIHNlY3Rpb25zIGFzIHJlZmVyZW5jZXMuICBTZXQgU0VDX0VYQ0xVREUuCgoyMDAxLTEwLTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLW0xMDIwMC5jIChtbjEwMjAwX2VsZl9yZWxheF9zZWN0aW9uKTogQ2FzdCBhc3NpZ25tZW50IHRvCglFbGZfSW50ZXJuYWxfU2hkci5jb250ZW50cyBub3cgdGhhdCBpdCdzIG5vIGxvbmdlciBhIFBUUi4KCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWg4MzAwLmMgKGVsZjMyX2g4X3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jIChiZmRfbTY4a19lbGYzMl9jcmVhdGVfZW1iZWRkZWRfcmVsb2NzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxheF9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbGF4X3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmLmMgKHNldHVwX2dyb3VwKTogV2FybmluZyBmaXhlcy4KCSogZWxmbGluay5oIChlbGZfbGlua19zb3J0X3JlbG9jcyk6IExpa2V3aXNlLgoJKiBwZHAxMS5jIChzbHVycF9yZWxvY190YWJsZSk6IExpa2V3aXNlLgoKMjAwMS0xMC0xNiAgSmVmZiBIb2xjb21iICA8amVmZmhAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfc29ydF9yZWxvY3MpOiBSZW1vdmUgdW5uZWNlc3NhcnkgcG9pbnRlcgoJY2FzdHMuCgoyMDAxLTEwLTE1ICBILkouIEx1IDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogU2V0IHR5cGUgdG8gQkZEX1JFTE9DX05PTkUKCWZvciByZWxvY2F0aW9ucyBhZ2FpbnN0IGRpc2NhcmRlZCBsaW5rLW9uY2Ugc2VjdGlvbi4KCjIwMDEtMTAtMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBSZXBvcnQgc29tZSBkZXRhaWwgb24KCWJmZF9yZWxvY19vdXRvZnJhbmdlIGFuZCBzaW1pbGFyIGVycm9ycy4KCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCk6IFRlc3QgaW5kLT5yb290LnR5cGUKCXJhdGhlciB0aGFuIGluZC0+d2Vha2RlZi4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2hhc2hfY29weV9pbmRpcmVjdCk6IExpa2V3aXNlLgoKMjAwMS0xMC0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCSAgICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBNZXJnZSBkeW5fcmVsb2MKCWNvdW50cyBmb3IgYWxpYXNlcyBpbnN0ZWFkIG9mIGFib3J0aW5nLgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBTZXQgcGx0Lm9mZnNldAoJdG8gLTEgZm9yIG5vbi1mdW5jdGlvbiBzeW1ib2xzLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmMgKHBwYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBSZWZlciB0bwoJcGx0Lm9mZnNldCBpbnN0ZWFkIG9mIHBsdC5yZWZjb3VudCB3aGVuIHNldHRpbmcgdG8gLTEuCgoyMDAxLTEwLTEyICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fcmVsb2NhdGVfc2VjdGlvbik6IFRyZWF0IFJfQVJNX1RITV9QQzIyCglsaWtlIFJfQVJNX1BDMjQuICBJbmNsdWRlIHJlbG9jIG51bWJlciBpbiBlcnJvciBtZXNzYWdlIGFib3V0Cgl1bnJlc29sdmFibGUgcmVsb2NzLgoKMjAwMS0xMC0xMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX3NvcnRfY21wMik6IERvbid0IG1peCBQTFQgYW5kIG5vbi1QTFQKCXJlbG9jYXRpb25zIGFnYWluc3QgdGhlIHNhbWUgc3ltYm9sIGluIC5yZWx7LGF9LmR5biBzZWN0aW9uLgoKMjAwMS0xMC0xMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBhb3V0LWVuY2FwLmM6IEZpeCBjb21tZW50IHR5cG9zLgoJKiBhb3V0eC5oOiBMaWtld2lzZS4KCSogYXJjaGl2ZS5jOiBMaWtld2lzZS4KCSogYm91dC5jOiBMaWtld2lzZS4KCSogY29mZjY0LXJzNjAwMC5jOiBMaWtld2lzZS4KCSogY29mZmNvZGUuaDogTGlrZXdpc2UuCgkqIGNvZmZnZW4uYzogTGlrZXdpc2UuCgkqIGNvZmZsaW5rLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW1pcHMuYzogTGlrZXdpc2UuCgkqIGVjb2ZmLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1tMzJyLmM6IExpa2V3aXNlLgoJKiBsaWJjb2ZmLWluLmg6IExpa2V3aXNlLgoJKiBsaWJlY29mZi5oOiBMaWtld2lzZS4KCSogbGlieGNvZmYuaDogTGlrZXdpc2UuCgkqIG5sbTMyLWkzODYuYzogTGlrZXdpc2UuCgkqIHBkcDExLmM6IExpa2V3aXNlLgoJKiBzZWN0aW9uLmM6IExpa2V3aXNlLgoJKiBzb20uYzogTGlrZXdpc2UuCgkqIHNvbS5oOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJjb2ZmLmg6IExpa2V3aXNlLgoKMjAwMS0xMC0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChlbGZfbWFwX3N5bWJvbHMpOiBEb24ndCBjcmVhdGUgbmV3IHNlY3Rpb24gc3ltYm9sczsgVXNlCglleGlzdGluZyBzZWN0aW9uIHN5bXMuICBVcGRhdGUgY29tbWVudHMuCgkoY29weV9wcml2YXRlX2JmZF9kYXRhKTogRm9ybWF0dGluZyBmaXhlcy4KCShlbGZjb3JlX2dyb2tfd2luMzJwc3RhdHVzKTogTGlrZXdpc2UuCgkoc3dhcF9vdXRfc3ltcyk6IExpa2V3aXNlLiAgUmVtb3ZlIHVubmVjZXNzYXJ5IGxldmVsIG9mIGJyYWNlcy4KCjIwMDEtMTAtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBiZmRfZWxmX3NlY3Rpb25fZGF0YSk6IFJlbmFtZSAiZ3JvdXAiIHRvCgkiZ3JvdXBfbmFtZSIuCgkoZWxmX2dyb3VwX25hbWUpOiBEZWZpbmUuCgkoZWxmX25leHRfaW5fZ3JvdXApOiBEZWZpbmUuCgkqIGVsZi5jOiBNYWtlIHVzZSBvZiBlbGZfZ3JvdXBfbmFtZSBhbmQgZWxmX25leHRfaW5fZ3JvdXAgdGhyb3VnaG91dC4KCShzZXR1cF9ncm91cCk6IERvbid0IHVzZSBzZWMtPmxpbmVubyBmb3IgU0hUX0dST1VQIHNlY3Rpb24gdG8gc3RvcmUKCWZpcnN0IG1lbWJlciBzZWN0aW9uOyBJbnN0ZWFkIHVzZSBlbGZfbmV4dF9pbl9ncm91cC4KCShiZmRfc2VjdGlvbl9mcm9tX3NoZHIpOiBMaWtld2lzZS4KCShzZXRfZ3JvdXBfY29udGVudHMpOiBMaWtld2lzZS4gIFVzZSBlbGZfc2VjdGlvbl9zeW1zLCBub3Qgc2VjLT5zeW1ib2wuCgoyMDAxLTEwLTA5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgYmZkX2VsZl9zZWN0aW9uX2RhdGEpOiBBZGQgImdyb3VwIiBhbmQKCSJuZXh0X2luX2dyb3VwIi4gIEZpeCBncCBhbmQgZ3Bfc2l6ZSBjb21tZW50cy4KCSogZWxmLmMgKHVuaW9uIGVsZl9pbnRlcm5hbF9ncm91cCk6IE5ldy4KCShzZXR1cF9ncm91cCk6IE5ldyBmdW5jdGlvbi4KCShfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogU2V0IEJGRCBmbGFncyBmb3IgU0hUX0dST1VQLgoJQ2FsbCBzZXR1cF9ncm91cCBmb3IgU0hGX0dST1VQIHNlY3Rpb25zLgoJKGJmZF9zZWN0aW9uX2Zyb21fc2hkcik6IEJ1aWxkIGEgQkZEIHNlY3Rpb24gZm9yIFNIVF9HUk9VUC4KCShlbGZfZmFrZV9zZWN0aW9ucyk6IFNldCBoZWFkZXIgdHlwZSBmb3IgU0VDX0dST1VQLCBhbmQgaGVhZGVyCglmbGFncyBmb3Igc2VjdGlvbnMgaW4gYSBncm91cC4KCShzZXRfZ3JvdXBfY29udGVudHMpOiBOZXcgZnVuY3Rpb24uCgkoX2JmZF9lbGZfY29tcHV0ZV9zZWN0aW9uX2ZpbGVfcG9zaXRpb25zKTogQ2FsbCBpdC4KCShhc3NpZ25fc2VjdGlvbl9udW1iZXJzKTogU2V0IHNoX2xpbmsgZm9yIFNIVF9HUk9VUC4KCgkqIGVsZmxpbmsuaCAoZ2NfbWFya19ob29rKTogSGFuZGxlIHNlY3Rpb24gZ3JvdXBzLgoJKiBlbGZ4eC10YXJnZXQuaDogQWRkIFNFQ19HUk9VUCB0byBhcHBsaWNhYmxlX2ZsYWdzLgoJKiBzZWN0aW9uLmMgKFNFQ19HUk9VUCk6IERlZmluZS4KCShzdHJ1Y3Qgc2VjKTogQ29tbWVudCBmaXhlcy4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKCSogZWxmLmMgKGJmZF9lbGZfcHJpbnRfc3ltYm9sKTogRm9ybWF0dGluZyBmaXg7IG1pZ3JhdGUgZXhwcmVzc2lvbgoJb3V0IG9mIGZ1bmN0aW9uIGFyZ3MuCgkoX2JmZF9lbGZfY2Fub25pY2FsaXplX3JlbG9jKTogU2ltaWxhcmx5LgoJKF9iZmRfZWxmX2dldF9zeW10YWIpOiBIZXJlIHRvby4KCShfYmZkX2VsZl9jYW5vbmljYWxpemVfZHluYW1pY19zeW10YWIpOiBBbmQgaGVyZS4KCSogZWxmY29kZS5oIChlbGZfc2x1cnBfc3ltYm9sX3RhYmxlKTogRG9uJ3QgcmVjYWxjdWxhdGUgc2l6ZSBmb3IKCWJmZF9icmVhZCwgYW5kIHJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0LgoKMjAwMS0xMC0wOCAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY29uZmlnLmJmZCAodGFyZ19jcHUpOiBBZGQgYXJtOWUtKi1lbGYuCgoyMDAxLTEwLTA2ICBTdGVwaGFuZSBDYXJyZXogIDxTdGVwaGFuZS5DYXJyZXpAd29ybGRuZXQuZnI+CgoJKiBkd2FyZjIuYyAoY29tcF91bml0X2ZpbmRfbmVhcmVzdF9saW5lKTogQ2hlY2sgZm9yIGVuZCBvZgoJY29tcGlsYXRpb24gdW5pdC4KCjIwMDEtMTAtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBiZmQuYyAoYmZkX2Fzc2VydCk6IFJlcG9ydCBiZmQgdmVyc2lvbi4KCShfYmZkX2Fib3J0KTogTGlrZXdpc2UuCgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IERvbid0IHplcm8gZGlzY2FyZGVkIGxpbmstb25jZQoJc2VjdGlvbiBzeW0gdmFsdWVzLiAgSW5zdGVhZCByZXBsYWNlIGFueSByZWxvY3MgYWdhaW5zdCB0aGVtIHdpdGgKCXJlbG9jcyBhZ2FpbnN0IFNUTl9VTkRFRiwgd2hpY2ggaGFzIGEgemVybyB2YWx1ZS4KCgkqIGVsZjMyLWFyYy5jIChlbGZfYXJjX2hvd3RvX3RhYmxlKTogU2V0IHBhcnRpYWxfaW5wbGFjZSBmb3IgYWxsCglyZWxvY3MuCgoyMDAxLTEwLTA1ICBKZWZmIExhdyA8bGF3QHJlZGhhdC5jb20+CgoJKiBzb20uaCAoc29tX2V4ZWNfZGF0YSk6IE5ldyBmaWVsZCAidmVyc2lvbl9pZCIuCgkqIHNvbS5jIChzb21fb2JqZWN0X3NldHVwKTogUmVjb3JkIHRoZSB2ZXJzaW9uX2lkIGlmIGl0CglleGlzdHMuCgkoc29tX3ByZXBfaGVhZGVycyk6IERvIG5vdCBpbml0aWFsaXplIHZlcnNpb25faWQgaGVyZS4KCShzb21fZmluaXNoX3dyaXRpbmcpOiBJbml0aWFsaXplIHZlcnNpb25faWQgaGVyZS4KCjIwMDAtMTAtMDUgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGYzMi1taXBzLmMgKGVsZl9taXBzX2hvd3RvX3RhYmxlKTogRml4IHNvbWUgcmVsb2NhdGlvbiBob3d0b3MKCWFjY29yZGluZyB0byB0aGUgTUlQUy9TR0kgRUxGNjQgQUJJIERyYWZ0LgoJKG1pcHNfZWxmX3NvcnRfaGFzaF90YWJsZSk6IFR5cG8uCgoyMDAxLTEwLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQ29tbWVudCB0eXBvLgoKCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQmFpbCBvdXQgYWZ0ZXIKCWNvcHlpbmcgZmxhZ3MgaWYgdGhpcyBpcyBhIHdlYWtkZWYuCgoyMDAxLTEwLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2xpbmtfaGFzaF9lbnRyeSk6IFJlb3JnYW5pc2UgZm9yIGJldHRlcgoJcGFja2luZy4KCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfcmVjb3JkX2dsb2JhbF9nb3Rfc3ltYm9sKTogU2V0IGdvdC5vZmZzZXQKCXRvIDEgcmF0aGVyIHRoYW4gMCB0byBhdm9pZCBjb25mdXNpbmcgY29weV9pbmRpcmVjdF9zeW1ib2wuCgkobWlwc19lbGZfc29ydF9oYXNoX3RhYmxlX2YpOiBDb21wYXJlIGdvdC5vZmZzZXQgYWdhaW5zdCAxLgoKCSogTWFrZWZpbGUuYW0gKEJGRF9IX0RFUFMpOiBBZGQgc3ltY2F0LmguICBFbnN1cmUgZXZlcnl0aGluZwoJZGVwZW5kcyBvbiAkKEJGRF9IKSAkKEJGRF9IX0RFUFMpICQoTE9DQUxfSF9ERVBTKSwgbm90IGp1c3QgdGhvc2UKCWJhY2tlbmRzIHdlIGNvbmZpZ3VyZS4gIFJ1biAibWFrZSBkZXAtYW0iLgoJKGluc3RhbGwtZGF0YS1sb2NhbCk6IEluc3RhbGwgc3ltY2F0LmguCgkqIGRlcC1pbi5zZWQ6IFJlbW92ZSBzeW1jYXQuaCBmcm9tIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAxLTEwLTAzICBWYXNzaWxpIEthcnBvdiAgPG1hbGNAcHVsc2Vzb2Z0LmNvbT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogSGFuZGxlIG5vY29weXJlbG9jLgoKMjAwMS0xMC0wMyAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGVsZjY0LW1pcHMuYyAoZWxmX2JhY2tlbmRfbWF5X3VzZV9yZWxhX3ApOiBOZXcgZGVmaW5lLgoJKGVsZl9iYWNrZW5kX2RlZmF1bHRfdXNlX3JlbGFfcCk6IE5ldyBkZWZpbmUuCgoyMDAxLTEwLTAzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2hhc2hfY29weV9pbmRpcmVjdCk6IEZpeCB0eXBvcyBpbiBsYXN0CgljaGFuZ2UuCgoJKiBjb25maWd1cmUuaW4gKEFDX09VVFBVVCA8YmZkLWluMy5oPik6IFJlbW92ZSB2ZXJzaW9uLmguCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuYW0gKEJGRF9IX0ZJTEVTKTogQWRkIHZlcnNpb24uaC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL1NSQy1QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCgkqIGVsZmxpbmsuaCAoZWxmX2ZpeF9zeW1ib2xfZmxhZ3MpOiBDb3B5IGZsYWdzIHRvIHdlYWtkZWYgdXNpbmcKCWVsZl9iYWNrZW5kX2NvcHlfaW5kaXJlY3Rfc3ltYm9sIHNvIHRoYXQgYmFja2VuZCBoYXMgYSBjaGFuY2UgdG8KCWNvcHkgb3RoZXIgbmVjZXNzYXJ5IGZpZWxkcy4KCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2JhY2tlbmRfZGF0YSk6IFVwZGF0ZSBkZXNjcmlwdGlvbiBvZgoJZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCk6IEJhaWwgb3V0IGFmdGVyCgljb3B5aW5nIGZsYWdzIGlmIHRoaXMgaXMgYSB3ZWFrZGVmLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfaGFzaF9jb3B5X2luZGlyZWN0KTogTGlrZXdpc2UuCgkoZWxmTk5faWE2NF9haXhfYWRkX3N5bWJvbF9ob29rKTogVXNlIGVsZl9saW5rX2hhc2hfbG9va3VwIHJhdGhlcgoJdGhhbiBiZmRfbGlua19oYXNoX2xvb2t1cC4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBEb24ndCBkbyBjb3B5CglyZWxvYyBwcm9jZXNzaW5nIGZvciB3ZWFrZGVmcy4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYyAocHBjNjRfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoKMjAwMS0xMC0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChwcGM2NF9lbGZfY2hlY2tfcmVsb2NzKTogVXNlIGEgbG9jYWwgdmFyIGFuZCBjYXN0CglyZXN1bHQgb2YgRUxGNjRfUl9UWVBFIHRvIGVudW0gYmVmb3JlIHVzaW5nIGluIGEgc3dpdGNoLgoJKHBwYzY0X2VsZl9nY19tYXJrX2hvb2spOiBMaWtld2lzZS4KCShwcGM2NF9lbGZfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKHBwYzY0X2VsZl9yZWxvY190eXBlX2NsYXNzKTogTGlrZXdpc2UuCgoyMDAxLTEwLTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogdmVyc2lvbi5oOiBOZXcgZmlsZS4KCSogYmZkLWluLmg6IChCRkRfVkVSU0lPTik6IFN1YnN0aXR1dGUgYmZkX3ZlcnNpb24uCgkoQkZEX1ZFUlNJT05fREFURSk6IERlZmluZS4KCShCRkRfVkVSU0lPTl9TVFJJTkcpOiBEZWZpbmUuCgkqIGNvbmZpZ3VyZS5pbjogQUNfU1VCU1QgYmZkX3ZlcnNpb24sIGJmZF92ZXJzaW9uX2RhdGUgYW5kCgliZmRfdmVyc2lvbl9zdHJpbmcuCgkoQUNfT1VUUFVUIDxiZmQtaW4zLmg+KTogRGVwZW5kIG9uIHZlcnNpb24uaC4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBiZmQtaW4uaDogSW5jbHVkZSAic3ltY2F0LmgiLgoJKENPTkNBVDQpOiBSZWRlZmluZSBhcyBmb3Igb2xkIENBVDQuCgkqIGFvdXQtYXJtLmM6IFVzZSBlcXVpdmFsZW50IENPTkNBVCogbWFjcm8gaW4gcGxhY2Ugb2YgQ0FUKiBtYWNyb3MuCglBZGQgd2FybmluZyByZWdhcmRpbmcgd2hpdGVzcGFjZS4KCSogYW91dC1jcmlzLmM6IExpa2V3aXNlLgoJKiBhb3V0LW5zMzJrLmM6IExpa2V3aXNlLgoJKiBhb3V0LXNwYXJjbGUuYzogTGlrZXdpc2UuCgkqIGFvdXQtdGljMzAuYzogTGlrZXdpc2UuCgkqIGFvdXQwLmM6IExpa2V3aXNlLgoJKiBhcm1uZXRic2QuYzogTGlrZXdpc2UuCgkqIGRlbW82NC5jOiBMaWtld2lzZS4KCSogZWxmLWJmZC5oOiBMaWtld2lzZS4KCSogZ2VuLWFvdXQuYzogTGlrZXdpc2UuCgkqIGhvc3QtYW91dC5jOiBMaWtld2lzZS4KCSogaHAzMDBic2QuYzogTGlrZXdpc2UuCgkqIGhwMzAwaHB1eC5jOiBMaWtld2lzZS4KCSogaTM4NmFvdXQuYzogTGlrZXdpc2UuCgkqIGkzODZic2QuYzogTGlrZXdpc2UuCgkqIGkzODZkeW5peC5jOiBMaWtld2lzZS4KCSogaTM4NmZyZWVic2QuYzogTGlrZXdpc2UuCgkqIGkzODZsaW51eC5jOiBMaWtld2lzZS4KCSogaTM4Nmx5bnguYzogTGlrZXdpc2UuCgkqIGkzODZtYWNoMy5jOiBMaWtld2lzZS4KCSogaTM4Nm5ldGJzZC5jOiBMaWtld2lzZS4KCSogbGliYW91dC5oOiBMaWtld2lzZS4KCSogbTY4azRrbmV0YnNkLmM6IExpa2V3aXNlLgoJKiBtNjhrbGludXguYzogTGlrZXdpc2UuCgkqIG02OGtseW54LmM6IExpa2V3aXNlLgoJKiBtNjhrbmV0YnNkLmM6IExpa2V3aXNlLgoJKiBtODhrbWFjaDMuYzogTGlrZXdpc2UuCgkqIG1pcHNic2QuYzogTGlrZXdpc2UuCgkqIG5ld3NvczMuYzogTGlrZXdpc2UuCgkqIG5zMzJrbmV0YnNkLmM6IExpa2V3aXNlLgoJKiBwYzUzMi1tYWNoLmM6IExpa2V3aXNlLgoJKiBwZHAxMS5jOiBMaWtld2lzZS4KCSogcmlzY2l4LmM6IExpa2V3aXNlLgoJKiBzcGFyY2xpbnV4LmM6IExpa2V3aXNlLgoJKiBzcGFyY2x5bnguYzogTGlrZXdpc2UuCgkqIHNwYXJjbmV0YnNkLmM6IExpa2V3aXNlLgoJKiBzdW5vcy5jOiBMaWtld2lzZS4KCSogdGFyZ2V0cy5jOiBMaWtld2lzZS4KCSogdmF4bmV0YnNkLmM6IExpa2V3aXNlLgoJKiB2bXMtaGRyLmM6IExpa2V3aXNlLgoKMjAwMS0xMC0wMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGJmZC1pbi5oOiBSZW1vdmUgY29tbWVudHMgcmVnYXJkaW5nIGdlbmVyYXRlZCBmaWxlcy4KCSogbGliYmZkLWluLmg6IExpa2V3aXNlLgoJKiBsaWJjb2ZmLWluLmg6IExpa2V3aXNlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBMaWtld2lzZS4KCSogbGliY29mZi5oOiBMaWtld2lzZS4KCjIwMDEtMDktMzAgIGtheiBLb2ppbWEgIDxra29qaW1hQHJyLmlpajR1Lm9yLmpwPgoJICAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9ob3d0b190YWJsZSwgUl9TSF9SRUwzMik6IE1ha2UKCXBhcnRpYWxfaW5wbGFjZSwgbWF0Y2hpbmcgYXNzZW1ibGVyIG91dHB1dC4gIFNldCBzcmNfbWFzayB0bwoJYWxsIG9uZXMuCgkoc2hfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEZWxldGUgbWlzcGxhY2VkIGNvbW1lbnQuCglGb3IgcmVsb2NhdGFibGUgbGlua2luZyBhZ2FpbnN0IHNlY3Rpb24gc3ltYm9sLCBjYWxsCglfYmZkX3JlbG9jYXRlX2NvbnRlbnRzIGZvciBwYXJ0aWFsX2lucGxhY2UgcmVsb2NzIGFuZCBhZGp1c3QKCXJlbC0+cl9hZGRlbmQgZm9yIG90aGVycy4KCTxjYXNlIFJfU0hfRElSMzIsIFJfU0hfUkVMMzI+OiBGZXRjaCBwYXJ0aWFsX2lucGxhY2UgYWRkZW5kIHdpdGgKCWJmZF9nZXRfMzIsIG5vdCBhdCByZWwtPnJfYWRkZW5kLgoKMjAwMS0wOS0zMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCk6IFNldCBpbmQgcmVmY291bnRzIHRvCgl0aGUgb2xkIGRpciByZWZjb3VudCwgc28gd2UgaW5kaXJlY3RseSBzZXQgdGhlbSB0byBpbml0X3JlZmNvdW50LgoJU2hvcnQtY2lyY3VpdCBhc3NlcnRzIHdoZW4gd2UndmUganVzdCB2ZXJpZmllZCB0aGV5IGFyZSB0cnVlLgoKMjAwMS0wOS0yOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIHNlY3Rpb24uYyAoc3RydWN0IHNlYyk6IFJlbW92ZSBrZXB0X3NlY3Rpb24uCgkoU1REX1NFQ1RJT04pOiBSZW1vdmUga2VwdF9zZWN0aW9uIGluaXRpYWxpc2F0aW9uLgoJKGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5KTogSGVyZSB0b28uCgkqIGVjb2ZmLmMgKGJmZF9kZWJ1Z19zZWN0aW9uKTogUmVtb3ZlIGtlcHRfc2VjdGlvbiBpbml0aWFsaXNhdGlvbi4KCSogY29mZmxpbmsuYyAoX2JmZF9jb2ZmX2xpbmtfaW5wdXRfYmZkKTogRG9uJ3QgdGVzdCBrZXB0X3NlY3Rpb24uCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogU2V0IGRpc2NhcmRlZCBsaW5rLW9uY2Ugc2VjdGlvbgoJc3ltYm9scyB0byB6ZXJvLCBhbmQgcmVtb3ZlIGFsbCBjb2RlIGludm9sdmVkIHdpdGgga2VwdF9zZWN0aW9uCglhbmQgdHJhY2tpbmcgc2VjdGlvbiBzeW1ib2wgdmFsdWVzLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS5pbjogQnVtcCB2ZXJzaW9uIG51bWJlci4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMS0wOS0yOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjY0LXBwYy5jIChzdHJ1Y3QgcHBjX2R5bl9yZWxvY3MpOiBOZXcuCgkoSVNfQUJTT0xVVEVfUkVMT0MpOiBEZWZpbmUuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfZW50cnkpOiBOZXcuCgkoc3RydWN0IHBwY19saW5rX2hhc2hfdGFibGUpOiBOZXcuCgkocHBjX2hhc2hfdGFibGUpOiBEZWZpbmUuCgkobGlua19oYXNoX25ld2Z1bmMpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBOZXcgZnVuY3Rpb24uCgkoY3JlYXRlX2dvdF9zZWN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IENhbGwgY3JlYXRlX2dvdF9zZWN0aW9uLiAgU3Rhc2gKCXBvaW50ZXJzIHRvIG91ciBkeW5hbWljIHNlY3Rpb25zIGluIGhhc2ggdGFibGUuCgkocHBjNjRfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9jaGVja19yZWxvY3MpOiBSZW1vdmUgREVCVUcgY29kZS4gIFVzZSBzaG9ydC1jdXRzIHRvCglkeW5hbWljIHNlY3Rpb25zLiAgTG9jYWxpc2UgdmFycy4gIE1vZGlmeSBjb2RlIGZvciByZWZjb3VudHMKCXN0YXJ0aW5nIGZyb20gemVyby4gIERvbid0IGFsbG9jYXRlIGhlcmUsIG9yIGZvcmNlIHN5bWJvbHMgZHluYW1pYy4KCURvbid0IGNvcHkgYWxsIHJlbG9jcyBpZiBzaGFyZWQsIHNlbGVjdCBvbmVzIHdlIG5lZWQuICBBZGQgY29kZQoJdG8gdHJhY2sgcG9zc2libGUgY29weSByZWxvY3MgZm9yIG5vbi1zaGFyZWQgbGluay4KCShwcGM2NF9lbGZfZ2NfbWFya19ob29rKTogVXBkYXRlIGNvbW1lbnQuCgkocHBjNjRfZWxmX2djX3N3ZWVwX2hvb2spOiBTd2VlcCBkeW5yZWxvY3MgdG9vLgoJKHBwYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBSZW1vdmUgREVCVUcgY29kZS4gIFJld3JpdGUgLnBsdAoJY29kZSBmb3IgcmVmZXJlbmNlIGNvdW50aW5nIGdhcmJhZ2UgY29sbGVjdGlvbi4gIERvbid0IGNyZWF0ZSAucGx0CgllbnRyaWVzIGZvciBmdW5jdGlvbnMgdGhhdCBkb24ndCBjb21wbHkgd2l0aCBBQkkgbmFtaW5nIGNvbnZlbnRpb24sCglhbmQgZG9uJ3QgYWxsb2NhdGUgLnBsdCBzcGFjZSBoZXJlLiAgVXNlIHNob3J0LWN1dHMgdG8gZHluYW1pYwoJc2VjdGlvbnMuICBJZiBwb3NzaWJsZSwga2VlcCBkeW5hbWljIHJlbG9jYXRpb25zIGluc3RlYWQgb2YgdXNpbmcKCWNvcHkgcmVsb2NzLiAgUmVtb3ZlIGNvbmZ1c2VkIGNvbW1lbnRzLgoJKHBwY19hZGp1c3RfZHluaW5keCk6IERlbGV0ZS4KCShXSUxMX0NBTExfRklOSVNIX0RZTkFNSUNfU1lNQk9MKTogRGVmaW5lLgoJKGFsbG9jYXRlX2R5bnJlbG9jcyk6IE5ldyBmdW5jdGlvbi4KCShyZWFkb25seV9keW5yZWxvY3MpOiBOZXcgZnVuY3Rpb24uCgkocHBjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFJld3JpdGUuICBBbGxvY2F0ZSBsb2NhbCAuZ290CglzcGFjZSBoZXJlLCBhbmQgY2FsbCBhbGxvY2F0ZV9keW5yZWxvY3MgdG8gYWxsb2NhdGUgc3BhY2UgZm9yCglnbG9iYWwgLnBsdCwgLmdvdCBhbmQgcmVsb2Mgc2VjdGlvbnMuICBVc2Ugc2hvcnQtY3V0cyB0byBkeW5hbWljCglzZWN0aW9ucy4gIENhbGwgcmVhZG9ubHlfZHlucmVsb2NzIHRvIGRldGVybWluZSB3aGV0aGVyIHdlIG5lZWQKCURUX1RFWFRSRUwuICBEb24ndCBnZW5lcmF0ZSBzZWN0aW9uIHN5bWJvbHMgaGVyZSwgdGhlIGdlbmVyaWMKCUVMRiBsaW5rZXIgY29kZSBkb2VzIGl0IGZvciB1cy4KCShwcGM2NF9lbGZfZmluYWxfbGluayk6IENhbGwgcmVndWxhciBFTEYgYmFja2VuZCBsaW5rZXIgcmF0aGVyIHRoYW4KCWdjIHZhcmlldHksIHNpbmNlIHdlIGRvIG91ciBvd24gLmdvdCBoYW5kbGluZy4KCShwcGM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFJlbW92ZSBERUJVRyBjb2RlLiAgTWFrZSB1c2Ugb2YKCWR5bmFtaWMgc2VjdGlvbiBzaG9ydC1jdXRzLiAgTG9jYWxpc2UgdmFycywgYW5kIGRlbGF5IHNldHRpbmcuCglIYW5kbGUgdW5rbm93biByZWxvY3MgaW4gbWFpbiBzd2l0Y2ggc3RhdGVtZW50LiAgUmVwbGFjZSB1Z2x5Cgljb21wbGljYXRlZCB0ZXN0cyBmb3IgdW5yZXNvbHZhYmxlIHJlbG9jcyB3aXRoIGEgc2ltcGxlIGRpcmVjdAoJc2NoZW1lIHVzaW5nICJ1bnJlc29sdmVkX3JlbG9jIiB2YXIuICBUZXN0IEVMRl9TVF9WSVNJQklMSVRZCgliZWZvcmUgYWxsb3dpbmcgYW4gdW5kZWZpbmVkIHN5bSBpbiBhIHNoYXJlZCBsaWIuICBEbyBSXypfRFMgdGVzdHMKCWFmdGVyIG1haW4gc3dpdGNoLCB3aGVuIHdlJ3ZlIHNldCBhZGRlbmQuICBEbyBub24tYWRkZW5kIGluc24KCXR3ZWFrcyBiZWZvcmUgbWFpbiBzd2l0aGMuICBJZ25vcmUgaW5wdXRfc2VjdGlvbi0+dm1hIHdoZW4KCWNhbGN1bGF0aW5nIHJlbG9jIG9mZnNldHMgYXMgaXQncyBhbHdheXMgemVyby4gIFJld3JpdGUgZHluYW1pYwoJcmVsb2MgaGFuZGxpbmcuICBDb25zb2xpZGF0ZSBSXypfSEEgaGFuZGxpbmcuICBIYW5kbGUgbW9yZSByZWxvY3MuCgkocHBjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFJlbW92ZSBERUJVRyBjb2RlLiAgTWFrZSB1c2UKCW9mIGR5bmFtaWMgc2VjdGlvbiBzaG9ydC1jdXRzLiAgUmVvcmdhbmlzZSAucGx0IGhhbmRsaW5nIGNvZGUuCglSZW1vdmUgY29uZnVzZWQgY29tbWVudHMuICBUYWtlIG5vdGUgb2YgRUxGX0xJTktfRk9SQ0VEX0xPQ0FMLgoJTW92ZSBleHByZXNzaW9ucyBvdXQgb2Ygc3dhcF9yZWxvY2Ffb3V0IGZ1bmN0aW9uIGNhbGxzLgoJKHBwYzY0X2VsZl9yZWxvY190eXBlX2NsYXNzKTogTmV3IGZ1bmN0aW9uLgoJKHBwYzY0X2VsZl9pbmZvX3RvX2hvd3RvKTogTW92ZSBjb21tb24gZXhwcmVzc2lvbiB0byBsb2NhbCB2YXIuCgkocHBjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogUmVtb3ZlIERFQlVHIGNvZGUuICBNYWtlIHVzZQoJb2YgZHluYW1pYyBzZWN0aW9uIHNob3J0LWN1dHMuICBEb24ndCBmaWRkbGUgd2l0aCBzZWN0aW9uIHN5bXMKCWhlcmUgYXMgdGhlIEVMRiBsaW5rZXIgZG9lcyBpdCBmb3IgdXMuCgkoZWxmX2JhY2tlbmRfY2FuX3JlZmNvdW50KTogRGVmaW5lLgoJKGJmZF9lbGY2NF9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IERlZmluZS4KCShlbGZfYmFja2VuZF9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IERlZmluZS4KCShlbGZfYmFja2VuZF9yZWxvY190eXBlX2NsYXNzKTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kXyosIGJmZF9lbGY2NF9iZmRfKiBkZWZpbmVzKTogU29ydC4KCjIwMDEtMDktMjkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfbGlua19sb2NhbF9keW5hbWljX2VudHJ5KTogQWRkIGluaXRfcmVmY291bnQuCgkoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgY2FuX3JlZmNvdW50LgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBHZXQgcmlkIG9mIGEgZmV3IGNhc3RzLiAgU2V0Cglnb3QucmVmY291bnQgYW5kIHBsdC5yZWZjb3VudCBmcm9tIGluaXRfcmVmY291bnQuCgkoX2JmZF9lbGZfbGlua19oYXNoX3RhYmxlX2luaXQpOiBTZXQgdXAgaW5pdF9yZWZjb3VudC4KCShfYmZkX2VsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCk6IFJlZmVyZW5jZSBnb3QvcGx0LnJlZmNvdW50CglyYXRoZXIgdGhhbiBnb3QvcGx0Lm9mZnNldCwgYW5kIHRlc3QgZm9yIDw9IDAgcmF0aGVyIHRoYW4gLTEuCgkqIGVsZmxpbmsuaCAoc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogU2V0IGluaXRfcmVmY291bnQgdG8gLTEuCgkqIGVsZnh4LXRhcmdldC5oIChlbGZfYmFja2VuZF9jYW5fcmVmY291bnQpOiBEZWZpbmUuCgkoZWxmTk5fYmVkKTogSW5pdCBjYW5fcmVmY291bnQuCgkqIGxpbmtlci5jIChfYmZkX2xpbmtfaGFzaF9uZXdmdW5jKTogR2V0IHJpZCBvZiBhIGZldyBjYXN0cy4KCShfYmZkX2dlbmVyaWNfbGlua19oYXNoX25ld2Z1bmMpOiBMaWtld2lzZS4KCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9jaGVja19yZWxvY3MpOiBNb2RpZnkgZm9yIHJlZmNvdW50cwoJc3RhcnRpbmcgZnJvbSB6ZXJvLgoJKGVsZl9iYWNrZW5kX2Nhbl9yZWZjb3VudCk6IERlZmluZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IE1vZGlmeSBmb3IgcmVmY291bnRzCglzdGFydGluZyBmcm9tIHplcm8uCgkoZWxmMzJfaHBwYV9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IE1ha2Ugc3RhdGljIHRvIGFncmVlIHdpdGgKCXByb3RvdHlwZS4KCShlbGZfYmFja2VuZF9jYW5fcmVmY291bnQpOiBEZWZpbmUuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfY2hlY2tfcmVsb2NzKTogTW9kaWZ5IGZvciByZWZjb3VudHMKCXN0YXJ0aW5nIGZyb20gemVyby4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBTZXQgcGx0L2dvdC5vZmZzZXQgcmF0aGVyIHRoYW4gKi5yZWZjb3VudC4KCShlbGZfaTM4Nl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBFeHBhbmQgU0hOX1VOREVGIGNvbW1lbnQuCgkoZWxmX2kzODZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgbG9jYWwgdmFyIHNvIGxpbmUgPCA4MCBjaGFycy4KCShlbGZfYmFja2VuZF9jYW5fcmVmY291bnQpOiBEZWZpbmUuCgkoZWxmX2kzODZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBNYWtlIHN0YXRpYyB0byBhZ3JlZSB3aXRoCglwcm90b3R5cGUuICBGb3JtYXR0aW5nIGZpeC4KCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19jaGVja19yZWxvY3MpOiBNb2RpZnkgZm9yIHJlZmNvdW50cwoJc3RhcnRpbmcgZnJvbSB6ZXJvLgoJKGVsZl9iYWNrZW5kX2Nhbl9yZWZjb3VudCk6IERlZmluZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfY2hlY2tfcmVsb2NzKTogTW9kaWZ5IGZvciByZWZjb3VudHMKCXN0YXJ0aW5nIGZyb20gemVyby4KCShlbGZfYmFja2VuZF9jYW5fcmVmY291bnQpOiBEZWZpbmUuCgkqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfY2hlY2tfcmVsb2NzKTogTW9kaWZ5IGZvciByZWZjb3VudHMKCXN0YXJ0aW5nIGZyb20gemVyby4KCShlbGZfYmFja2VuZF9jYW5fcmVmY291bnQpOiBEZWZpbmUuCgkqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfY2hlY2tfcmVsb2NzKTogTW9kaWZ5IGZvciByZWZjb3VudHMKCXN0YXJ0aW5nIGZyb20gemVyby4KCShlbGZfYmFja2VuZF9jYW5fcmVmY291bnQpOiBEZWZpbmUuCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfY2hlY2tfcmVsb2NzKTogTW9kaWZ5IGZvciByZWZjb3VudHMKCXN0YXJ0aW5nIGZyb20gemVyby4KCShlbGZfYmFja2VuZF9jYW5fcmVmY291bnQpOiBEZWZpbmUuCgoJKiBzb20uYyAoc29tX3dyaXRlX3N5bWJvbF9zdHJpbmdzKTogQ2FzdCBjdXJyZW50X29mZnNldCBpbgoJYmZkX3NlZWsgY2FsbCB0byBtYXRjaCBwYXJhbSB0eXBlLgoKMjAwMS0wOS0yOCAgSi4gQnJvYmVja2VyIDxicm9iZWNrZXJAZ25hdC5jb20+CgoJKiBzb20uYyAoc29tX3dyaXRlX3N5bWJvbF9zdHJpbmdzKTogRml4IGluY29ycmVjdCB0eXBlIG9mCgljdXJyZW50X29mZnNldCB0byBtYXRjaCB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbi4gRml4ZXMgYSBidWlsZAoJZmFpbHVyZSBvbiBIUFVYLTExLjAwLgoKMjAwMS0wOS0yOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LXRhcmdldC5oIFtzZWN0aW9uX2ZsYWdzXTogQWRkIFNFQ19BUkNIX0JJVF8wLCBTRUNfU01BTExfREFUQSwKCVNFQ19NRVJHRSwgU0VDX1NUUklOR1MuCgoJKiBzZWN0aW9uLmMgKFNFQ19BUkNIX0JJVF8wKTogTmV3OyByZXBsYWNlIHVudXNlZCBTRUNfQkFMSUdOLgoJKiBiZmQtaW4yLmg6IFJlYnVpbGQuCgoyMDAxLTA5LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9yZWxvY190eXBlX2xvb2t1cCk6IERvbid0IG1hcCBiZmQKCXJlbG9jIGNvZGUgdXNpbmcgeDg2XzY0X3JlbG9jX21hcC4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBVcGRhdGUgY29tbWVudCBzaW5jZSB3ZQoJbm8gbG9uZ2VyIGFsbG9jYXRlIGhlcmUuICBMb2NhbGlzZSBzb21lIHZhcnMgdG8gYmxvY2tzIHdoZXJlIHRoZXkKCWFyZSB1c2VkLgoJKGVsZjMyX2hwcGFfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogQ29ycmVjdCBhIGNvbW1lbnQuICBEZWxheQoJc2V0dGluZyBvZiB2YXJzIHVudGlsIG5lZWRlZC4KCShhbGxvY2F0ZV9keW5yZWxvY3MpOiBEb24ndCBjcmVhdGUgYSAucGx0IGVudHJ5IHdpdGhvdXQgYSByZWxvYwoJd2hlbiBzeW1ib2wgdmlzaWJpbHR5IG1ha2VzIGEgZnVuY3Rpb24gbG9jYWwuCgkoZWxmMzJfaHBwYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBNb3ZlIGV4cHJlc3Npb25zIG91dCBvZgoJc3dhcF9yZWxvY2Ffb3V0IGZ1bmN0aW9uIGNhbGxzLgoJKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aWVzLiAgQ29tbWVudCB0eXBvIGZpeC4KCShlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTWlncmF0ZSBjb21tb24gY29kZSBvdXQgb2YKCXN3aXRjaCBzdGF0ZW1lbnQuCgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyk6IFVwZGF0ZSBjb21tZW50IHNpbmNlIHdlCglubyBsb25nZXIgYWxsb2NhdGUgaGVyZS4gIExvY2FsaXNlIHNvbWUgdmFycyB0byBibG9ja3Mgd2hlcmUgdGhleQoJYXJlIHVzZWQuICBSZW1vdmUgc2VwYXJhdGUgc3dpdGNoIHN0bXQgZm9yIGNyZWF0aW5nIC5nb3Qgc2VjLgoJKGVsZl9pMzg2X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IENvcnJlY3QgYSBjb21tZW50LiAgUmVtb3ZlCglyZWR1bmRhbnQgY2FzdHMgYW5kIGFib3J0cy4gIERlbGF5IHNldHRpbmcgb2YgdmFycyB1bnRpbCBuZWVkZWQuCgkoYWxsb2NhdGVfZHlucmVsb2NzKTogUmVtb3ZlIHJlZHVuZGFudCBjYXN0cyBhbmQgYWJvcnRzLgoJKGVsZl9pMzg2X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IE1vdmUgY29tbWVudC4KCShlbGZfaTM4Nl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBNb3ZlIGV4cHJlc3Npb25zIG91dCBvZiBmdW5jdGlvbgoJY2FsbHMuCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLiAgQ29tbWVudCB0eXBvIGZpeC4KCShlbGZfaTM4Nl9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IE1pZ3JhdGUgY29tbW9uIGNvZGUgb3V0IG9mCglzd2l0Y2ggc3RhdGVtZW50LgoJKGVsZl9iYWNrZW5kXyogZGVmaW5lcyk6IFNvcnQuCgoJKiBlbGYzMi1pMzg2LmMgKGFsbG9jYXRlX2R5bnJlbG9jcyk6IERvbid0IGNyZWF0ZSBhIC5wbHQgZW50cnkKCXdpdGhvdXQgYSByZWxvYyB3aGVuIHN5bWJvbCB2aXNpYmlsdHkgbWFrZXMgYSBmdW5jdGlvbiBsb2NhbC4KCjIwMDEtMDktMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogRml4IGRldGVjdGlvbiBvZgoJY29uZmxpY3RpbmcgZmxvYXQgZmxhZ3MuCgoyMDAxLTA5LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaTM4NiAoZWxmX2kzODZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEZWZpbmUuCgkoc3RydWN0IGVsZl9pMzg2X2xpbmtfaGFzaF9lbnRyeSk6IFJlbmFtZSAicm9vdCIgdG8gImVsZiIuCgkoc3RydWN0IGVsZl9pMzg2X2xpbmtfaGFzaF90YWJsZSk6IExpa2V3aXNlLgoJKGxpbmtfaGFzaF9uZXdmdW5jKTogR2V0IHJpZCBvZiB1bm5lY2Vzc2FyeSBjYXN0cy4KCShlbGZfaTM4Nl9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfY2hlY2tfcmVsb2NzKTogSW5pdGlhbGlzZSBsb2NhbF9nb3RfcmVmY291bnRzIHRvIDAuCglEb24ndCB0ZXN0IGlucHV0IHNlY3Rpb24gU0VDX1JFQURPTkxZIGhlcmUgdG8gdHJ5IHRvIGF2b2lkIGNvcHkKCXJlbG9jcywgYW5kIGtlZXAgZHluX3JlbG9jcyByZWdhcmRsZWFzIG9mIEVMRl9MSU5LX05PTl9HT1RfUkVGLgoJKGVsZl9pMzg2X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IENoZWNrIG91dHB1dCBzZWN0aW9uIFNFQ19SRUFET05MWQoJaGVyZSB0byBwcm9wZXJseSB0ZXN0IHdoZXRoZXIgd2UgbmVlZCBjb3B5IHJlbG9jcy4gIERvIHNvIGZvciB3ZWFrCglzeW1zIHRvby4KCgkqIGVsZjMyLWhwcGEgKGVsZjMyX2hwcGFfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEZWZpbmUuCgkoc3RydWN0IGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlKTogUmVuYW1lICJyb290IiB0byAiZWxmIi4KCShzdHViX2hhc2hfbmV3ZnVuYyk6IEdldCByaWQgb2YgdW5uZWNlc3NhcnkgY2FzdHMuCgkoaHBwYV9saW5rX2hhc2hfbmV3ZnVuYyk6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfY2hlY2tfcmVsb2NzKTogSW5pdGlhbGlzZSBsb2NhbF9nb3RfcmVmY291bnRzIHRvIDAuCglEb24ndCB0ZXN0IGlucHV0IHNlY3Rpb24gU0VDX1JFQURPTkxZIGhlcmUgdG8gdHJ5IHRvIGF2b2lkIGNvcHkKCXJlbG9jcywgYW5kIGtlZXAgZHluX3JlbG9jcyByZWdhcmRsZWFzIG9mIEVMRl9MSU5LX05PTl9HT1RfUkVGLgoJKGVsZjMyX2hwcGFfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogQ2hlY2sgb3V0cHV0IHNlY3Rpb24gU0VDX1JFQURPTkxZCgloZXJlIHRvIHByb3Blcmx5IHRlc3Qgd2hldGhlciB3ZSBuZWVkIGNvcHkgcmVsb2NzLiAgRG8gc28gZm9yIHdlYWsKCXN5bXMgdG9vLgoKMjAwMS0wOS0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGJmZC5jIChfYmZkX2RlZmF1bHRfZXJyb3JfaGFuZGxlcmwpOiBEZWZpbmUgdXNpbmcgVlBBUkFNUywKCVZBX09QRU4sIFZBX0ZJWEVEQVJHLCBWQV9DTE9TRS4KCShiZmRfYXJjaGl2ZV9maWxlbmFtZSk6IENhc3QgYmZkX21hbGxvYyBhcmcgdG8gdGhlIGNvcnJlY3Qgc2l6ZS4KCjIwMDEtMDktMjUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfYnVpbGRfcGx0KTogRml4IC5wbHRbMzI3NjgrXSBzbG90Cgljb21wdXRhdGlvbi4KCjIwMDEtMDktMjUgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgoyMDAxLTA5LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaTM4Ni5jOiBBZGQgY29tbWVudCByZSBsaW5rZXIgZnVuY3Rpb24gbmFtZXMgYW5kIG9yZGVyaW5nLgoJKGVsZl9pMzg2X2xpbmtfaGFzaF9uZXdmdW5jKTogUmVuYW1lIHRvIGxpbmtfaGFzaF9uZXdmdW5jLgoJKGVsZl9pMzg2X2dyb2tfcHJzdGF0dXMpOiBNb3ZlIGJlZm9yZSBsaW5rZXIgZnVuY3Rpb25zLgoJKGVsZl9pMzg2X2dyb2tfcHNpbmZvKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfZmFrZV9zZWN0aW9ucyk6IE1vdmUgc28gdGhhdCBmdW5jdGlvbnMgYXJlIG9yZGVyZWQuCgkoZWxmX2kzODZfcmVsb2NfdHlwZV9jbGFzcyk6IExpa2V3aXNlLiAgQ29tbWVudCBmdW5jdGlvbiBwdXJwb3NlLgoKMjAwMS0wOS0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWhwcGEuYzogUmVuYW1lIG9jY3VycmVuY2VzIG9mICJocGxpbmsiIHRvICJodGFiIgoJdGhyb3VnaG91dCBmaWxlLgoKCSogZWxmMzItaHBwYS5jOiAoTE9OR19CUkFOQ0hfUElDX0lOX1NITElCKTogRGVsZXRlLiAgUmVtb3ZlIGFsbAoJY29kZSBoYW5kbGluZyB0aGlzIG9wdGlvbi4KCShMT05HX0JSQU5DSF9WSUFfUExUKTogTGlrZXdpc2UuCgkoUkVMQVRJVkVfRFlOUkVMT0NTKTogRGVmaW5lIGFzIHplcm8uCgkoc3RydWN0IGVsZjMyX2hwcGFfZHluX3JlbG9jX2VudHJ5KTogQWRkICJzZWMiLCBhbmQKCSJwY19jb3VudCIgZmllbGRzLiAgUmVtb3ZlICJzZWN0aW9uIiBmaWVsZC4KCShlbGYzMl9ocHBhX2xpbmtfaGFzaF9lbnRyeSk6IFJlbmFtZSByZWxvY19lbnRyaWVzIHRvIGR5bl9yZWxvY3MuCgkoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBEb24ndCBhbGxvY2F0ZSBzcGFjZSBmb3IgZHluYW1pYwoJcmVsb2NzIGhlcmUuICBJbnN0ZWFkLCByZWNvcmQgYWxsIG5lZWRlZCBkeW5hbWljIHJlbG9jcyB2aWEKCWR5bl9yZWxvY3MgYW5kIGxvY2FsX2R5bnJlbC4gIENhY2hlIHBvaW50ZXIgdG8gInNyZWxvYyIgc2VjdGlvbgoJaW4gZWxmX3NlY3Rpb25fZGF0YS4KCShlbGYzMl9ocHBhX2djX3N3ZWVwX2hvb2spOiBTd2VlcCBkeW5fcmVsb2NzIGFuZCBsb2NhbF9keW5yZWwuCgkoYWxsb2NhdGVfcGx0X2FuZF9nb3RfYW5kX2Rpc2NhcmRfcmVsb2NzKTogUmVuYW1lIHRvCglhbGxvY2F0ZV9keW5yZWxvY3MuICBBbGxvY2F0ZSByYXRoZXIgdGhhbiBkaXNjYXJkaW5nIGR5biByZWxvY3MuCgkocmVhZG9ubHlfZHlucmVsb2NzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTWFyayBvdXRwdXRfYmZkIHVudXNlZC4KCUNhbGwgcmVhZG9ubHlfZHlucmVsb2NzIHRvIGRldGVybWluZSBuZWVkIGZvciBEVF9URVhUUkVMLgoJUmVuYW1lICJpIiB0byAiaWJmZCIuICBBbGxvY2F0ZSBzcGFjZSBmb3IgbG9jYWwgZHluIHJlbG9jcy4KCShlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBNYWtlIHVzZSBvZiBjYWNoZWQgc3JlbG9jLgoJKGVsZjMyX2hwcGFfcmVsb2NfdHlwZV9jbGFzcyk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9yZWxvY190eXBlX2NsYXNzKTogRGVmaW5lLgoKMjAwMS0wOS0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGJmZF9lbGZfc2VjdGlvbl9kYXRhKTogQWRkICJsb2NhbF9keW5yZWwiCglhbmQgInNyZWxvYyIgZmllbGRzLgoJKiBlbGYzMi1pMzg2LmMgKHN0cnVjdCBlbGZfaTM4Nl9keW5fcmVsb2NzKTogQWRkICJzZWMiLCBhbmQKCSJwY19jb3VudCIgZmllbGRzLiAgUmVtb3ZlICJzZWN0aW9uIiBmaWVsZC4KCShlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBEb24ndCBzZXQgREZfVEVYVFJFTCBoZXJlLiAgRG9uJ3QKCWFsbG9jYXRlIHNwYWNlIGZvciBkeW5hbWljIHJlbG9jcyBoZXJlLiAgSW5zdGVhZCwgcmVjb3JkIGFsbAoJbmVlZGVkIGR5bmFtaWMgcmVsb2NzIHZpYSBkeW5fcmVsb2NzIGFuZCBsb2NhbF9keW5yZWwuICBDYWNoZQoJcG9pbnRlciB0byAic3JlbG9jIiBzZWN0aW9uIGluIGVsZl9zZWN0aW9uX2RhdGEuCgkoZWxmX2kzODZfZ2Nfc3dlZXBfaG9vayk6IFN3ZWVwIGR5bl9yZWxvY3MgYW5kIGxvY2FsX2R5bnJlbC4KCShhbGxvY2F0ZV9wbHRfYW5kX2dvdF9hbmRfZGlzY2FyZF9yZWxvY3MpOiBSZW5hbWUgdG8KCWFsbG9jYXRlX2R5bnJlbG9jcy4gIEFsbG9jYXRlIHJhdGhlciB0aGFuIGRpc2NhcmRpbmcgZHluIHJlbG9jcy4KCShyZWFkb25seV9keW5yZWxvY3MpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQ2FsbCByZWFkb25seV9keW5yZWxvY3MuCglSZW5hbWUgImkiIHRvICJpYmZkIi4gIEFsbG9jYXRlIHNwYWNlIGZvciBsb2NhbCBkeW4gcmVsb2NzLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBNYWtlIHVzZSBvZiBjYWNoZWQgc3JlbG9jLgoKMjAwMS0wOS0yNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi1iZmQuaCAoZWxmX2JhY2tlbmRfcmVsb2NfdHlwZV9jbGFzcyk6IFBhc3MgaW4gdGhlIGVudGlyZQoJcmVsb2MgcmF0aGVyIHRoYW4ganVzdCB0aGUgdHlwZS4KCShfYmZkX2VsZl9yZWxvY190eXBlX2NsYXNzKTogTGlrZXdpc2UuCgkqIGVsZi5jIChfYmZkX2VsZl9yZWxvY190eXBlX2NsYXNzKTogTGlrZXdpc2UuCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fcmVsb2NfdHlwZV9jbGFzcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmMgKGVsZl9jcmlzX3JlbG9jX3R5cGVfY2xhc3MpOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY190eXBlX2NsYXNzKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmMzJfbTY4a19yZWxvY190eXBlX2NsYXNzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jIChwcGNfZWxmX3JlbG9jX3R5cGVfY2xhc3MpOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9yZWxvY190eXBlX2NsYXNzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY190eXBlX2NsYXNzKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jX3R5cGVfY2xhc3MpOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NfdHlwZV9jbGFzcyk6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jX3R5cGVfY2xhc3MpOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NfdHlwZV9jbGFzcyk6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jX3R5cGVfY2xhc3MpOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3JlbG9jX3R5cGVfY2xhc3MpOiBMaWtld2lzZS4KCSogZWxmbGluay5oOiBGb3JtYXR0aW5nIGZpeGVzLgoJKGVsZl9saW5rX3NvcnRfcmVsb2NzKTogTWFrZSAiY291bnQiIGFuZCAic2l6ZSIgYmZkX3NpemVfdHlwZS4KCUNhbGwgYmZkX3ptYWxsb2MgcmF0aGVyIHRoYW4gY2FsbG9jLiAgUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3Qgb2YKCW8tPmNvbnRlbnRzIHRvIFBUUi4gIFVwZGF0ZSBjYWxsIHRvIGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MuCgoyMDAxLTA5LTIyICBKb2huIFJlaXNlciAgPGpyZWlzZXJAQml0V2Fnb24uY29tPgoKCSogZWxmY29kZS5oIChlbGZfb2JqZWN0X3ApOiBBbGxvdyBmb3Igbm8gc2VjdGlvbiBoZWFkZXIgYXQgYWxsIGluCglub24tRVRfUkVMIGZpbGVzLiAgSG9ub3IgMCBmb3IgZV9zaG51bSwgZV9zaHN0cm5keCwgZV9zaG9mZi4KCjIwMDEtMDktMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jOiBGaXggY29tcGlsZSB0aW1lIHdhcm5pbmcgbWVzc2FnZXMuCgkqIGNvZmYtbWNvcmUuYzogRml4IGNvbXBpbGUgdGltZSB3YXJuaW5nIG1lc3NhZ2VzLgoJKiBjb2ZmLXBwYy5jOiBGaXggY29tcGlsZSB0aW1lIHdhcm5pbmcgbWVzc2FnZXMuCgkqIGNvZmZjb2RlLmg6IEZpeCBjb21waWxlIHRpbWUgd2FybmluZyBtZXNzYWdlcy4KCSogZWxmMzItbWlwcy5jOiBGaXggY29tcGlsZSB0aW1lIHdhcm5pbmcgbWVzc2FnZXMuCgkqIGVsZjY0LWFscGhhLmM6IEZpeCBjb21waWxlIHRpbWUgd2FybmluZyBtZXNzYWdlcy4KCSogbGliYmZkLmM6IEZpeCBjb21waWxlIHRpbWUgd2FybmluZyBtZXNzYWdlcy4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMS0wOS0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBhb3V0eC5oOiBGb3JtYXR0aW5nIGZpeGVzLgoJKiBtZXJnZS5jIChfYmZkX21lcmdlZF9zZWN0aW9uX29mZnNldCk6IEJyZWFrIGxpbmUgYXQgODAgY2hhcnMuCgoJKiBsaW5rZXIuYzogUmVwbGFjZSBiZmRfZ2V0X2ZpbGVuYW1lIHdpdGggYmZkX2FyY2hpdmVfZmlsZW5hbWUKCWluIGVycm9yIG1lc3NhZ2UuCgoyMDAxLTA5LTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYmZkLmMgKGJmZF9hcmNoaXZlX2ZpbGVuYW1lKTogTmV3IGZ1bmN0aW9uLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGFvdXQtYWRvYmUuYzogUmVwbGFjZSBiZmRfZ2V0X2ZpbGVuYW1lIHdpdGggYmZkX2FyY2hpdmVfZmlsZW5hbWUKCWluIGVycm9yIG1lc3NhZ2VzIHdoZXJlIHRoZSBiZmQgaXMgYW4gaW5wdXQgYmZkLgoJKiBhb3V0LWNyaXMuYzogTGlrZXdpc2UuCgkqIGNvZmYtYXJtLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXBwYy5jOiBMaWtld2lzZS4KCSogY29mZi1yczYwMDAuYzogTGlrZXdpc2UuCgkqIGNvZmYtc2guYzogTGlrZXdpc2UuCgkqIGNvZmYtdGljNTR4LmM6IExpa2V3aXNlLgoJKiBjb2ZmLXRpYzgwLmM6IExpa2V3aXNlLgoJKiBjb2ZmNjQtcnM2MDAwLmM6IExpa2V3aXNlLgoJKiBjb2ZmY29kZS5oOiBMaWtld2lzZS4KCSogY29mZmdlbi5jOiBMaWtld2lzZS4KCSogY29mZmxpbmsuYzogTGlrZXdpc2UuCgkqIGVjb2ZmbGluay5jOiBMaWtld2lzZS4KCSogZWxmLWhwcGEuaDogTGlrZXdpc2UuCgkqIGVsZi5jOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmg6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1nZW4uYzogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW0zMnIuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXMzOTAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jOiBMaWtld2lzZS4KCSogZWxmMzItdjg1MC5jOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWdlbi5jOiBMaWtld2lzZS4KCSogZWxmNjQtcHBjLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jOiBMaWtld2lzZS4KCSogZWxmNjQteDg2LTY0LmM6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmg6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmM6IExpa2V3aXNlLgoJKiBpZWVlLmM6IExpa2V3aXNlLgoJKiBpaGV4LmM6IExpa2V3aXNlLgoJKiBsaWJiZmQuYzogTGlrZXdpc2UuCgkqIHBkcDExLmM6IExpa2V3aXNlLgoJKiBwZS1taXBzLmM6IExpa2V3aXNlLgoJKiBwZWljb2RlLmg6IExpa2V3aXNlLgoJKiBzcmVjLmM6IExpa2V3aXNlLgoJKiB4Y29mZmxpbmsuYzogTGlrZXdpc2UuCgoJKiBlbGYzMi1hcm0uaDogTWFrZSBfYmZkX2Vycm9yX2hhbmRsZXIgY2FsbHMgSyZSIGNvbXBhdGlibGUuCgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2NyZWF0ZV9saW5rZXJfc2VjdGlvbik6IEJldHRlciBncmFtbWFyIGZvcgoJZXJyb3IgbWVzc2FnZS4KCgkqIGNvZmYtbWNvcmUuYyAoY29mZl9tY29yZV9yZWxvY2F0ZV9zZWN0aW9uKTogSW50ZXJuYWxpb25hbGlzZQoJZXJyb3IgbWVzc2FnZS4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX2FkZF9zeW1ib2xfaG9vayk6IENvbnN0aWZ5IHN0dF90eXBlcy4KCUNvbnNvbGlkYXRlIGVycm9yIG1lc3NhZ2VzLCBhbmQgc3BsaXQgbG9uZyBtZXNzYWdlcyB0byB0d28gbGluZXMuCgoyMDAxLTA5LTIwICBKb2huIFJlaXNlciAgPGpyZWlzZXJAQml0V2Fnb24uY29tPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogQ29vcmRpbmF0ZSBpbmZvLT5zeW1ib2xpYwoJYW5kIGluZm8tPmFsbG93X3NobGliX3VuZGVmaW5lZC4KCSogZWxmMzItY3Jpcy5jOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zMzkwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmM6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYzogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYzogTGlrZXdpc2UuCgoyMDAxLTA5LTE4ICBCcnVubyBIYWlibGUgIDxoYWlibGVAY2xpc3AuY29ucy5vcmc+CgoJKiBhb3V0eC5oOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiIGluc3RlYWQgb2YgPGN0eXBlLmg+LgoJKGFvdXRfbGlua193cml0ZV9zeW1ib2xzKTogVXNlIElTRElHSVQgaW5zdGVhZCBvZiBpc2RpZ2l0LgoJKiBhcmNoaXZlLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkoX2JmZF9nZW5lcmljX3JlYWRfYXJfaGRyX21hZyk6IFVzZSBJU0RJR0lUIGluc3RlYWQgb2YgaXNkaWdpdC4KCSogYXJjaHVyZXMuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShiZmRfZGVmYXVsdF9zY2FuKTogVXNlIElTRElHSVQgaW5zdGVhZCBvZiBpc2RpZ2l0LgoJKiBiZmQuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShiZmRfc2Nhbl92bWEpOiBVc2UgSVNYRElHSVQvSVNESUdJVC9JU0xPV0VSIGluc3RlYWQgb2YKCWlzeGRpZ2l0L2lzZGlnaXQvaXNsb3dlci4KCSogYmluYXJ5LmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkobWFuZ2xlX25hbWUpOiBVc2UgSVNBTE5VTSBpbnN0ZWFkIG9mIGlzYWxudW0uCgkqIGNwdS12ODUwLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkoc2Nhbik6IFVzZSBJU0RJR0lUIGluc3RlYWQgb2YgaXNkaWdpdC4KCSogaG9zdHMvYWxwaGF2bXMuaDogRG9uJ3QgaW5jbHVkZSA8Y3R5cGUuaD4uCgkqIGllZWUuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShpZWVlX29iamVjdF9wKTogVXNlIFRPVVBQRVIgaW5zdGVhZCBvZiB0b3VwcGVyLgoJKiBpaGV4LmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkoaWhleF9iYWRfYnl0ZSk6IFVzZSBJU1BSSU5UIGluc3RlYWQgb2YgaXNwcmludC4KCSogbWVyZ2UuYzogRG9uJ3QgaW5jbHVkZSA8Y3R5cGUuaD4uCgkqIG9hc3lzLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkob2FzeXNfd3JpdGVfc2VjdGlvbnMpOiBVc2UgSVNESUdJVCBpbnN0ZWFkIG9mIGlzZGlnaXQuCgkqIHBkcDExLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkoYW91dF9saW5rX3dyaXRlX3N5bWJvbHMpOiBVc2UgSVNESUdJVCBpbnN0ZWFkIG9mIGlzZGlnaXQuCgkqIHBwY2Jvb3QuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShtYW5nbGVfbmFtZSk6IFVzZSBJU0FMTlVNIGluc3RlYWQgb2YgaXNhbG51bS4KCSogc29tLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkoc29tX3NldF9yZWxvY19pbmZvKTogVXNlIElTVVBQRVIvSVNMT1dFUi9JU0RJR0lUIGluc3RlYWQgb2YKCWlzdXBwZXIvaXNsb3dlci9pc2RpZ2l0LgoJKHNvbV9kZWNvZGVfc3ltY2xhc3MpOiBVc2UgVE9VUFBFUiBpbnN0ZWFkIG9mIHRvdXBwZXIuCgkqIHNyZWMuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShzcmVjX2JhZF9ieXRlKTogVXNlIElTUFJJTlQgaW5zdGVhZCBvZiBpc3ByaW50LgoJKHNyZWNfc2Nhbik6IFVzZSBJU1NQQUNFIGluc3RlYWQgb2YgaXNzcGFjZS4KCSogc3RhYnMuYzogSW5jbHVkZSAic2FmZS1jdHlwZS5oIiBpbnN0ZWFkIG9mIDxjdHlwZS5oPi4KCShfYmZkX2xpbmtfc2VjdGlvbl9zdGFicyk6IFVzZSBJU0RJR0lUIGluc3RlYWQgb2YgaXNkaWdpdC4KCSogc3ltcy5jOiBJbmNsdWRlICJzYWZlLWN0eXBlLmgiCgkoaXNsb3dlciwgdG91cHBlcik6IFJlbW92ZSBtYWNybyBkZWZpbml0aW9ucy4KCShiZmRfZGVjb2RlX3N5bWNsYXNzKTogVXNlIFRPVVBQRVIgaW5zdGVhZCBvZiB0b3VwcGVyLgoJKiB2bXMtZ3NkLmM6IERvbid0IGluY2x1ZGUgPGN0eXBlLmg+LgoJKiB2bXMtaGRyLmM6IEluY2x1ZGUgInNhZmUtY3R5cGUuaCIgaW5zdGVhZCBvZiA8Y3R5cGUuaD4uCgkoX2JmZF92bXNfd3JpdGVfaGRyKTogVXNlIElTTE9XRVIvVE9VUFBFUiBpbnN0ZWFkIG9mCglpc2xvd2VyL3RvdXBwZXIuCgkqIHZtcy10aXIuYzogRG9uJ3QgaW5jbHVkZSA8Y3R5cGUuaD4uCgoyMDAxLTA5LTE4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGliYmZkLmMgKGJmZF9icmVhZCk6IE5ldyBmdW5jdGlvbiByZXBsYWNpbmcgYmZkX3JlYWQgd2l0aG91dAoJcmVkdW5kYW50IHBhcmFtcy4gIEFsbG93IHJlYWRzIHVwIHRvIChzaXplX3QpIC0yIGluIGxlbmd0aC4KCShiZmRfYndyaXRlKTogU2ltaWxhcmx5IGZvciBiZmRfd3JpdGUuCgkocmVhbF9yZWFkKTogUmV0dXJuIGEgc2l6ZV90LgoJKGJmZF9yZWFkKTogQ2FsbCBiZmRfYnJlYWQuCgkoYmZkX3dyaXRlKTogQ2FsbCBiZmRfYndyaXRlLgoJKHdhcm5fZGVwcmVjYXRlZCk6IE5ldyBmdW5jdGlvbiB0byBhbm5veSBldmVyeWJvZHkuCgkoYmZkX2dldF9maWxlX3dpbmRvdyk6IERvbid0IGNhbGwgYmZkX3NldF9lcnJvciB1bm5lY2Vzc2FyaWx5LgoJKiBiZmQtaW4uaCAoYmZkX2JyZWFkLCBiZmRfYndyaXRlLCB3YXJuX2RlcHJlY2F0ZWQpOiBEZWNsYXJlLgoJKGJmZF9yZWFkLCBiZmRfd3JpdGUpOiBEZWZpbmUgYXMgbWFjcm8uCgkqIGFpeDM4Ni1jb3JlLmM6IFJlcGxhY2UgY2FsbHMgdG8gYmZkX3JlYWQgd2l0aCBiZmRfYnJlYWQsIGFuZAoJbGlrZXdpc2UgZm9yIGJmZF93cml0ZS4gIEVuc3VyZSBmdW5jdGlvbiBhcmdzIGFyZSBjb3JyZWN0IHNpemUgYnkKCXVzaW5nIGNhc3RzIG9yIGxvY2FsIHZhcnMuICBJbiBzb21lIGNhc2VzLCByZW1vdmUgdW5uZWNlc3NhcnkKCWNhc3RzLiAgRm9ybWF0dGluZyBmaXhlcywgaW4gc29tZSBjYXNlcyByZW1vdmluZyBhIGxhcmdlIGV4cHJlc3Npb24KCWZyb20gZnVuY3Rpb24gYXJncyBieSB1c2luZyBhIGxvY2FsIHZhci4gIFJlcGxhY2UgQ09OU1Qgd2l0aCBjb25zdC4KCU1vZGlmeSB2YXJpYWJsZSB0eXBlcyB0byBhdm9pZCB3YXJpbmdzLiAgVXNlIGNhc3RzIHRvIGF2b2lkCgl3YXJuaW5ncyB3aGVuIHVzaW5nIG5lZ2F0aXZlIG51bWJlcnMgaW4gdW5zaWduZWQgZXhwcmVzc2lvbnMuCgkqIGFvdXQtYWRvYmUuYzogTGlrZXdpc2UuCgkqIGFvdXQtYXJtLmM6IExpa2V3aXNlLgoJKiBhb3V0LWNyaXMuYzogTGlrZXdpc2UuCgkqIGFvdXQtZW5jYXAuYzogTGlrZXdpc2UuCgkqIGFvdXQtbnMzMmsuYzogTGlrZXdpc2UuCgkqIGFvdXQtdGFyZ2V0Lmg6IExpa2V3aXNlLgoJKiBhb3V0LXRpYzMwLmM6IExpa2V3aXNlLgoJKiBhb3V0ZjEuaDogTGlrZXdpc2UuCgkqIGFvdXR4Lmg6IExpa2V3aXNlLgoJKiBhcmNoaXZlLmM6IExpa2V3aXNlLgoJKiBhcmNodXJlcy5jOiBMaWtld2lzZS4KCSogYmZkLWluLmg6IExpa2V3aXNlLgoJKiBiZmQuYzogTGlrZXdpc2UuCgkqIGJpbmFyeS5jOiBMaWtld2lzZS4KCSogYm91dC5jOiBMaWtld2lzZS4KCSogY2FjaGUuYzogTGlrZXdpc2UuCgkqIGNpc2NvLWNvcmUuYzogTGlrZXdpc2UuCgkqIGNvZmYtYTI5ay5jOiBMaWtld2lzZS4KCSogY29mZi1hbHBoYS5jOiBMaWtld2lzZS4KCSogY29mZi1hcm0uYzogTGlrZXdpc2UuCgkqIGNvZmYtaDgzMDAuYzogTGlrZXdpc2UuCgkqIGNvZmYtaDg1MDAuYzogTGlrZXdpc2UuCgkqIGNvZmYtaTM4Ni5jOiBMaWtld2lzZS4KCSogY29mZi1pODYwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWk5NjAuYzogTGlrZXdpc2UuCgkqIGNvZmYtaWE2NC5jOiBMaWtld2lzZS4KCSogY29mZi1tNjhrLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW04OGsuYzogTGlrZXdpc2UuCgkqIGNvZmYtbWNvcmUuYzogTGlrZXdpc2UuCgkqIGNvZmYtbWlwcy5jOiBMaWtld2lzZS4KCSogY29mZi1wcGMuYzogTGlrZXdpc2UuCgkqIGNvZmYtcnM2MDAwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXNoLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXNwYXJjLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXN0Z28zMi5jOiBMaWtld2lzZS4KCSogY29mZi10aWMzMC5jOiBMaWtld2lzZS4KCSogY29mZi10aWM1NHguYzogTGlrZXdpc2UuCgkqIGNvZmYtdGljODAuYzogTGlrZXdpc2UuCgkqIGNvZmYtdzY1LmM6IExpa2V3aXNlLgoJKiBjb2ZmLXo4ay5jOiBMaWtld2lzZS4KCSogY29mZjY0LXJzNjAwMC5jOiBMaWtld2lzZS4KCSogY29mZmNvZGUuaDogTGlrZXdpc2UuCgkqIGNvZmZnZW4uYzogTGlrZXdpc2UuCgkqIGNvZmZsaW5rLmM6IExpa2V3aXNlLgoJKiBjb2Zmc3dhcC5oOiBMaWtld2lzZS4KCSogY29yZWZpbGUuYzogTGlrZXdpc2UuCgkqIGNwdS1hcmMuYzogTGlrZXdpc2UuCgkqIGNwdS1oODMwMC5jOiBMaWtld2lzZS4KCSogY3B1LWg4NTAwLmM6IExpa2V3aXNlLgoJKiBjcHUtaTk2MC5jOiBMaWtld2lzZS4KCSogY3B1LWlhNjQtb3BjLmM6IExpa2V3aXNlLgoJKiBjcHUtbnMzMmsuYzogTGlrZXdpc2UuCgkqIGNwdS1wZHAxMS5jOiBMaWtld2lzZS4KCSogY3B1LXBqLmM6IExpa2V3aXNlLgoJKiBjcHUtc2guYzogTGlrZXdpc2UuCgkqIGNwdS13NjUuYzogTGlrZXdpc2UuCgkqIGNwdS16OGsuYzogTGlrZXdpc2UuCgkqIGR3YXJmMS5jOiBMaWtld2lzZS4KCSogZHdhcmYyLmM6IExpa2V3aXNlLgoJKiBlY29mZi5jOiBMaWtld2lzZS4KCSogZWNvZmZsaW5rLmM6IExpa2V3aXNlLgoJKiBlY29mZnN3YXAuaDogTGlrZXdpc2UuCgkqIGVsZi1iZmQuaDogTGlrZXdpc2UuCgkqIGVsZi1ocHBhLmg6IExpa2V3aXNlLgoJKiBlbGYtbTEwMjAwLmM6IExpa2V3aXNlLgoJKiBlbGYtbTEwMzAwLmM6IExpa2V3aXNlLgoJKiBlbGYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWFyYy5jOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmg6IExpa2V3aXNlLgoJKiBlbGYzMi1hdnIuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWNyaXMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWZyMzAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWdlbi5jOiBMaWtld2lzZS4KCSogZWxmMzItaDgzMDAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWhwcGEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWk4NjAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW0zMnIuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1vcGVucmlzYy5jOiBMaWtld2lzZS4KCSogZWxmMzItcGouYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4KCSogZWxmMzItczM5MC5jOiBMaWtld2lzZS4KCSogZWxmMzItc2gtbGluLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1zaC5jOiBMaWtld2lzZS4KCSogZWxmMzItc3BhcmMuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1wcGMuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXMzOTAuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmM6IExpa2V3aXNlLgoJKiBlbGY2NC14ODYtNjQuYzogTGlrZXdpc2UuCgkqIGVsZmFybS1uYWJpLmM6IExpa2V3aXNlLgoJKiBlbGZjb2RlLmg6IExpa2V3aXNlLgoJKiBlbGZjb3JlLmg6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmM6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmg6IExpa2V3aXNlLgoJKiBlbGZ4eC1pYTY0LmM6IExpa2V3aXNlLgoJKiBlbGZ4eC10YXJnZXQuaDogTGlrZXdpc2UuCgkqIGZvcm1hdC5jOiBMaWtld2lzZS4KCSogaGFzaC5jOiBMaWtld2lzZS4KCSogaHAzMDBocHV4LmM6IExpa2V3aXNlLgoJKiBocHBhYnNkLWNvcmUuYzogTGlrZXdpc2UuCgkqIGhwdXgtY29yZS5jOiBMaWtld2lzZS4KCSogaTM4NmFvdXQuYzogTGlrZXdpc2UuCgkqIGkzODZkeW5peC5jOiBMaWtld2lzZS4KCSogaTM4NmxpbnV4LmM6IExpa2V3aXNlLgoJKiBpMzg2bHlueC5jOiBMaWtld2lzZS4KCSogaTM4Nm1hY2gzLmM6IExpa2V3aXNlLgoJKiBpMzg2bXNkb3MuYzogTGlrZXdpc2UuCgkqIGkzODZvczlrLmM6IExpa2V3aXNlLgoJKiBpZWVlLmM6IExpa2V3aXNlLgoJKiBpaGV4LmM6IExpa2V3aXNlLgoJKiBpcml4LWNvcmUuYzogTGlrZXdpc2UuCgkqIGxpYmFvdXQuaDogTGlrZXdpc2UuCgkqIGxpYmJmZC1pbi5oOiBMaWtld2lzZS4KCSogbGliYmZkLmM6IExpa2V3aXNlLgoJKiBsaWJjb2ZmLWluLmg6IExpa2V3aXNlLgoJKiBsaWJlY29mZi5oOiBMaWtld2lzZS4KCSogbGliaWVlZS5oOiBMaWtld2lzZS4KCSogbGlibmxtLmg6IExpa2V3aXNlLgoJKiBsaWJwZWkuaDogTGlrZXdpc2UuCgkqIGxpYnhjb2ZmLmg6IExpa2V3aXNlLgoJKiBsaW5rZXIuYzogTGlrZXdpc2UuCgkqIGx5bngtY29yZS5jOiBMaWtld2lzZS4KCSogbTY4a2xpbnV4LmM6IExpa2V3aXNlLgoJKiBtZXJnZS5jOiBMaWtld2lzZS4KCSogbWlwc2JzZC5jOiBMaWtld2lzZS4KCSogbmV0YnNkLWNvcmUuYzogTGlrZXdpc2UuCgkqIG5sbS5jOiBMaWtld2lzZS4KCSogbmxtMzItYWxwaGEuYzogTGlrZXdpc2UuCgkqIG5sbTMyLWkzODYuYzogTGlrZXdpc2UuCgkqIG5sbTMyLXBwYy5jOiBMaWtld2lzZS4KCSogbmxtMzItc3BhcmMuYzogTGlrZXdpc2UuCgkqIG5sbWNvZGUuaDogTGlrZXdpc2UuCgkqIG5sbXN3YXAuaDogTGlrZXdpc2UuCgkqIG5zMzJrLmg6IExpa2V3aXNlLgoJKiBvYXN5cy5jOiBMaWtld2lzZS4KCSogb3BuY2xzLmM6IExpa2V3aXNlLgoJKiBvc2YtY29yZS5jOiBMaWtld2lzZS4KCSogcGM1MzItbWFjaC5jOiBMaWtld2lzZS4KCSogcGRwMTEuYzogTGlrZXdpc2UuCgkqIHBlLW1pcHMuYzogTGlrZXdpc2UuCgkqIHBlWFhpZ2VuLmM6IExpa2V3aXNlLgoJKiBwZWljb2RlLmg6IExpa2V3aXNlLgoJKiBwcGNib290LmM6IExpa2V3aXNlLgoJKiBwdHJhY2UtY29yZS5jOiBMaWtld2lzZS4KCSogcmVsb2MuYzogTGlrZXdpc2UuCgkqIHJlbG9jMTYuYzogTGlrZXdpc2UuCgkqIHJpc2NpeC5jOiBMaWtld2lzZS4KCSogcnM2MDAwLWNvcmUuYzogTGlrZXdpc2UuCgkqIHNjbzUtY29yZS5jOiBMaWtld2lzZS4KCSogc2VjdGlvbi5jOiBMaWtld2lzZS4KCSogc29tLmM6IExpa2V3aXNlLgoJKiBzcGFyY2xpbnV4LmM6IExpa2V3aXNlLgoJKiBzcGFyY2x5bnguYzogTGlrZXdpc2UuCgkqIHNyZWMuYzogTGlrZXdpc2UuCgkqIHN0YWJzLmM6IExpa2V3aXNlLgoJKiBzdW5vcy5jOiBMaWtld2lzZS4KCSogc3ltcy5jOiBMaWtld2lzZS4KCSogdGFyZ2V0cy5jOiBMaWtld2lzZS4KCSogdGVraGV4LmM6IExpa2V3aXNlLgoJKiB0cmFkLWNvcmUuYzogTGlrZXdpc2UuCgkqIHZlcnNhZG9zLmM6IExpa2V3aXNlLgoJKiB2bXMtZ3NkLmM6IExpa2V3aXNlLgoJKiB2bXMtaGRyLmM6IExpa2V3aXNlLgoJKiB2bXMtbWlzYy5jOiBMaWtld2lzZS4KCSogdm1zLXRpci5jOiBMaWtld2lzZS4KCSogdm1zLmM6IExpa2V3aXNlLgoJKiB2bXMuaDogTGlrZXdpc2UuCgkqIHhjb2ZmbGluay5jOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogbGliY29mZi5oOiBSZWdlbmVyYXRlLgoKCSogYmZkLmMgKHN0cnVjdCBfYmZkKTogTWFrZSAid2hlcmUiIGFuZCAib3JpZ2luIiB1bnNpZ25lZC4KCSogYmZkLWluLmggKGZpbGVfcHRyKTogQ2hhbmdlIGZyb20gYSBsb25nIGludCB0byBhIGJmZF9zaWduZWRfdm1hLgoJKHVmaWxlX3B0cik6IERlZmluZS4KCShiZmRfdGVsbCk6IFJldHVybiBhIHVmaWxlX3B0ci4KCSogbGliYmZkLmMgKGJmZF90ZWxsKTogTGlrZXdpc2UuCgkoYmZkX3NlZWspOiBVc2UgYmZkX3NpemVfdHlwZSBsb2NhbHMuICBEb24ndCBjYWxsIGJmZF9zZXRfZXJyb3IKCXVubmVjZXNzYXJpbHkuCgkqIGFpeDM4Ni1jb3JlLmM6IFRlc3QgIT0gMCBmb3IgYmZkX3NlZWsgZXJyb3JzIHJhdGhlciB0aGFuIDwgMC4KCSogYW91dGYxLmg6IExpa2V3aXNlLgoJKiBzb20uYzogTGlrZXdpc2UuCgkqIGNhY2hlLmMgKGJmZF9jYWNoZV9sb29rdXBfd29ya2VyKTogR3VhcmQgYWdhaW5zdCBhYmZkLT53aGVyZQoJbGFyZ2VyIHRoYW4gdW5zaWduZWQgbG9uZyBjYW4gcmVwcmVzZW50LgoKCSogbGliYmZkLmMgKGJmZF9tYWxsb2MpOiBUYWtlIGEgYmZkX3NpemVfdHlwZSBhcmcuICBFcnJvciBpZgoJc2l6ZSBvdmVyZmxvd3Mgc2l6ZV90LgoJKGJmZF9yZWFsbG9jKTogTGlrZXdpc2UuCgkoYmZkX3ptYWxsb2MpOiBMaWtld2lzZS4KCSogb3BuY2xzLmMgKGJmZF9hbGxvYyk6IExpa2V3aXNlLgoJKGJmZF96YWxsb2MpOiBMaWtld2lzZS4KCSogbGliYmZkLWluLmggKGJmZF9tYWxsb2MsIGJmZF9yZWFsbG9jLCBiZmRfem1hbGxvYyk6IFVwZGF0ZS4KCShiZmRfYWxsb2MsIGJmZF96YWxsb2MpOiBVcGRhdGUuCgoJKiBsaWJiZmQuYyAoYmZkX2dldF84KTogTWFzayB3aXRoIDB4ZmYgaW4gY2FzZSBjaGFyIGlzIG1vcmUgdGhhbgoJOCBiaXRzLgoJKGJmZF9nZXRfc2lnbmVkXzgpOiBMaWtld2lzZS4KCShIX1BVVF82NCwgSF9QVVRfMzIsIEhfUFVUXzE2LCBIX1BVVF84LAoJSF9QVVRfUzY0LCBIX1BVVF9TMzIsIEhfUFVUX1MxNiwgSF9QVVRfUzgsCglIX0dFVF82NCwgSF9HRVRfMzIsIEhfR0VUXzE2LCBIX0dFVF84LAoJSF9HRVRfUzY0LCBIX0dFVF9TMzIsIEhfR0VUX1MxNiwgSF9HRVRfUzgpOiBEZWZpbmUgYW5kIHVzZS4KCSogbGliYW91dC5oOiBMaWtld2lzZSBkZWZpbmUgYW5kIHVzZSBoZXJlLgoJKiBhb3V0LWFkb2JlLmM6IFVzZSBIX0dFVF8qIGFuZCBIX1BVVF8qIG1hY3Jvcy4KCSogYW91dC1hcm0uYzogTGlrZXdpc2UuCgkqIGFvdXQtZW5jYXAuYzogTGlrZXdpc2UuCgkqIGFvdXQtbnMzMmsuYzogTGlrZXdpc2UuCgkqIGFvdXQtdGljMzAuYzogTGlrZXdpc2UuCgkqIGFvdXRmMS5oOiBMaWtld2lzZS4KCSogYW91dHguaDogTGlrZXdpc2UuCgkqIGJvdXQuYzogTGlrZXdpc2UuCgkqIGNvZmYtYWxwaGEuYzogTGlrZXdpc2UuCgkqIGNvZmYtaDgzMDAuYzogTGlrZXdpc2UuCgkqIGNvZmYtaDg1MDAuYzogTGlrZXdpc2UuCgkqIGNvZmYtaTk2MC5jOiBMaWtld2lzZS4KCSogY29mZi1pYTY0LmM6IExpa2V3aXNlLgoJKiBjb2ZmLW04OGsuYzogTGlrZXdpc2UuCgkqIGNvZmYtbWlwcy5jOiBMaWtld2lzZS4KCSogY29mZi1wcGMuYzogTGlrZXdpc2UuCgkqIGNvZmYtcnM2MDAwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXNoLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXNwYXJjLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXN0Z28zMi5jOiBMaWtld2lzZS4KCSogY29mZi10aWMzMC5jOiBMaWtld2lzZS4KCSogY29mZi10aWM4MC5jOiBMaWtld2lzZS4KCSogY29mZi13NjUuYzogTGlrZXdpc2UuCgkqIGNvZmYtejhrLmM6IExpa2V3aXNlLgoJKiBjb2ZmNjQtcnM2MDAwLmM6IExpa2V3aXNlLgoJKiBjb2ZmZ2VuLmM6IExpa2V3aXNlLgoJKiBjb2ZmbGluay5jOiBMaWtld2lzZS4KCSogY29mZnN3YXAuaDogTGlrZXdpc2UuCgkqIGVjb2ZmLmM6IExpa2V3aXNlLgoJKiBlY29mZnN3YXAuaDogTGlrZXdpc2UuCgkqIGVsZi5jOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jOiBMaWtld2lzZS4KCSogaHAzMDBocHV4LmM6IExpa2V3aXNlLgoJKiBpMzg2ZHluaXguYzogTGlrZXdpc2UuCgkqIGkzODZseW54LmM6IExpa2V3aXNlLgoJKiBpMzg2bXNkb3MuYzogTGlrZXdpc2UuCgkqIGkzODZvczlrLmM6IExpa2V3aXNlLgoJKiBsaWJwZWkuaDogTGlrZXdpc2UuCgkqIG5sbTMyLWFscGhhLmM6IExpa2V3aXNlLgoJKiBubG0zMi1pMzg2LmM6IExpa2V3aXNlLgoJKiBubG0zMi1wcGMuYzogTGlrZXdpc2UuCgkqIG5sbWNvZGUuaDogTGlrZXdpc2UuCgkqIG5sbXN3YXAuaDogTGlrZXdpc2UuCgkqIG9hc3lzLmM6IExpa2V3aXNlLgoJKiBwZHAxMS5jOiBMaWtld2lzZS4KCSogcGUtbWlwcy5jOiBMaWtld2lzZS4KCSogcGVYWGlnZW4uYzogTGlrZXdpc2UuCgkqIHBlaWNvZGUuaDogTGlrZXdpc2UuCgkqIHJpc2NpeC5jOiBMaWtld2lzZS4KCSogc3Vub3MuYzogTGlrZXdpc2UuCgkqIHhjb2ZmbGluay5jOiBMaWtld2lzZS4KCSogZWxmY29kZS5oOiAocHV0X3dvcmQsIGdldF93b3JkLCBwdXRfc2lnbmVkX3dvcmQsIGdldF9zaWduZWRfd29yZCk6CglSZW5hbWUgdG8gSF9QVVRfV09SRCwgSF9HRVRfV09SRCwgSF9QVVRfU0lHTkVEX1dPUkQsIEhfR0VUX1NJR05FRF9XT1JELgoJKiBjb2ZmLXJzNjAwMC5jIChQVVRXT1JELCBQVVRIQUxGLCBQVVRCWVRFKTogRG9uJ3QgZGVmaW5lLiBVc2UKCWVxdWl2YWxlbnQgSF9QVVRfKiBtYWNybyBpbnN0ZWFkLgoJKEdFVFdPUkQsIEdFVEhBTEYsIEdFVEJZVEUpOiBTaW1pbGFybHkuCgkqIGNvZmY2NC1yczYwMDAuYyAoUFVUV09SRCwgUFVUSEFMRiwgUFVUQllURSk6IExpa2V3aXNlLgoJKEdFVFdPUkQsIEdFVEhBTEYsIEdFVEJZVEUpOiBMaWtld2lzZS4KCSogY29mZnN3YXAuaCAoUFVUV09SRCwgUFVUSEFMRiwgUFVUQllURSk6IExpa2V3aXNlLgoKCSogYmZkLWluLmggKHN0cnVjdCBvcmwpOiBDaGFuZ2UgInBvcyIgdG8gYSB1bmlvbi4KCSogYXJjaGl2ZS5jIChfYmZkX2NvbXB1dGVfYW5kX3dyaXRlX2FybWFwKTogVXNlIGl0IGluc3RlYWQgb2YgY2FzdHMuCgkoYnNkX3dyaXRlX2FybWFwKTogSGVyZSB0b28uCgkoY29mZl93cml0ZV9hcm1hcCk6IEFuZCBoZXJlLgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl93cml0ZV9hcm1hcF9vbGQpOiBBbmQgaGVyZS4KCSh4Y29mZl93cml0ZV9vbmVfYXJtYXBfYmlnKTogQW5kIGhlcmUuCgkoeGNvZmZfd3JpdGVfYXJtYXBfYmlnKTogQW5kIGhlcmUuCgkqIGVjb2ZmLmMgKF9iZmRfZWNvZmZfd3JpdGVfYXJtYXApOiBBbmQgaGVyZS4KCSogZWxmNjQtbWlwcy5jIChtaXBzX2VsZjY0X3dyaXRlX2FybWFwKTogQW5kIGhlcmUuCgoJKiBhb3V0ZjEuaCAoc3Vub3Nfc2V0X2FyY2hfbWFjaCk6IE1ha2UgIm1hY2giIHBhcmFtIGFuIGVudW0uCgkqIGVsZi1tMTAzMDAuYyAoZWxmX21uMTAzMDBfbWFjaCk6IFJldHVybiBhbiB1bnNpZ25lZCBsb25nLgoJKiBlbGYzMi1oODMwMC5jIChlbGYzMl9oOF9tYWNoKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYyAoZWxmX21pcHNfbWFjaCk6IExpa2V3aXNlLgoJKiBzcGFyY2x5bnguYyAoTkFNRShseW54LHNldF9hcmNoX21hY2gpKTogTGlrZXdpc2UuCgoJKiBhaXgzODYtY29yZS5jIChhaXgzODZfY29yZV9maWxlX3ApOiBSZW1vdmUgcmVkdW5kYW50IGJmZF9yZWxlYXNlCgljYWxscy4KCShhaXgzODZfY29yZV92ZWMpOiBUeXBvIGZpeC4KCgkqIGFvdXQtYXJtLmM6IEluY2x1ZGUgbGliYW91dC5oIGFuZCBhb3V0L2FvdXQ2NC5oIGFmdGVyIE5fVFhUQUREUgoJZXRjLiB0byBhdm9pZCByZWRlZmluZWQgbWFjcm8gd2FybmluZy4KCShNWShwdXRfcmVsb2MpKTogVXNlIGJmZF92bWEgZm9yICJ2YWx1ZSIgcmF0aGVyIHRoYW4gbG9uZy4KCShNWShmaXhfcGNyZWxfMjYpKTogTGlrZXdpc2UuCgkqIGFvdXQtbnMzMmsuYyAoTVkocHV0X3JlbG9jKSk6IExpa2V3aXNlLgoJKiBhb3V0LWNyaXMuYyAoTVkoc3dhcF9leHRfcmVsb2Nfb3V0KSk6IExpa2V3aXNlIGZvciByX2FkZGVuZC4KCSogYW91dHguaCAoTkFNRShhb3V0LHN3YXBfZXh0X3JlbG9jX291dCkpOiBMaWtld2lzZS4KCSogY29mZi1hcm0uYyAoY29mZl9hcm1fcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlIGZvciBteV9vZmZzZXQuCgoJKiBhb3V0LWVuY2FwLmM6IEluY2x1ZGUgImZpbGUiLCBub3QgPGZpbGU+IGZvciBiaW51dGlscyBoZWFkZXJzLgoJKGVuY2FwX29iamVjdF9wKTogSGFsZiBiYWtlZCBhdHRlbXB0IHRvIGZpeCBjb21waWxlIGVycm9ycyBpbgoJY29kZSBkZWFsaW5nIHdpdGggIm1hZ2ljIi4KCgkqIGFvdXQtbnMzMmsuYzogSW5jbHVkZSAiZmlsZSIsIG5vdCA8ZmlsZT4gZm9yIGJpbnV0aWxzIGhlYWRlcnMuCgkoX2JmZF9uczMya19yZWxvY2F0ZV9jb250ZW50cyk6IGdldF9kYXRhIGFuZCBwdXRfZGF0YSBtYW5pcHVsYXRlCgliZmRfdm1hJ3MgcmF0aGVyIHRoYW4gbG9uZ3MuCgkqIGNwdS1uczMyay5jIChuczMya19zaWduX2V4dGVuZCk6IERlbGV0ZS4KCShfYmZkX25zMzJrX2dldF9kaXNwbGFjZW1lbnQpOiBSZXR1cm4gYSBiZmRfdm1hLCBkb24ndCBwYXNzIGluIG9mZnNldC4KCShfYmZkX25zMzJrX2dldF9pbW1lZGlhdGUpOiBMaWtld2lzZS4gIEFkZCBjb2RlIGZvciA4IGJ5dGUgdmFsdWVzLAoJcmVtb3ZlIGNhc2UgMy4KCShfYmZkX25zMzJrX3B1dF9kaXNwbGFjZW1lbnQpOiBBY2NlcHQgYSBiZmRfdm1hLCBkb24ndCBwYXNzIGluIG9mZnNldC4KCVVzZSB1bnNpZ25lZCBjb21wYXJpc29ucy4KCShiZmRfbnMzMmtfcHV0X2ltbWVkaWF0ZSk6IExpa2V3aXNlLCBhbmQgYWRkIGNvZGUgZm9yIDggYnl0ZSB2YWx1ZXMuCgkoZG9fbnMzMmtfcmVsb2MpOiBnZXRfZGF0YSBhbmQgcHV0X2RhdGEgb3BlcmF0ZSBvbiBiZmRfdm1hJ3MuCgkoX2JmZF9kb19uczMya19yZWxvY19jb250ZW50cyk6IExpa2V3aXNlLgoJKiBuczMyay5oIChfYmZkX25zMzJrX2dldF9kaXNwbGFjZW1lbnQpOiBVcGRhdGUgcHJvdG90eXBlLgoJKF9iZmRfbnMzMmtfZ2V0X2ltbWVkaWF0ZSk6IExpa2V3aXNlLgoJKF9iZmRfbnMzMmtfcHV0X2Rpc3BsYWNlbWVudCk6IExpa2V3aXNlLgoJKF9iZmRfbnMzMmtfcHV0X2ltbWVkaWF0ZSk6IExpa2V3aXNlLgoJKGJmZF9yZWxvY19zdGF0dXNfdHlwZSk6IExpa2V3aXNlLgoKCSogYW91dHguaCAoTkFNRShhb3V0LGZpbmRfbmVhcmVzdF9saW5lKSk6IFJlbmFtZSAncCcgdG8gJ2NvbG9uJwoJdG8gYXZvaWQgc2hhZG93aW5nLgoJKiBwZHAxMS5jIChOQU1FKGFvdXQsZmluZF9uZWFyZXN0X2xpbmUpKTogTGlrZXdpc2UuCgkqIGNvZmYtaDgzMDAuYyAoaDgzMDBfcmVsb2MxNl9leHRyYV9jYXNlcyk6IFJlbW92ZSBzaGFkb3dpbmcgInZhbHVlIi4KCSogY29mZi1wcGMuYyAoZW51bSByZWZfY2F0ZWdvcnkpOiBSZW5hbWUgImRhdGEiIHRvICJ0b2NkYXRhIiB0bwoJYXZvaWQgc2hhZG93aW5nLgoJKHJlY29yZF90b2MpOiBVc2UgYSBiZmRfc2lnbmVkX3ZtYSBmb3Igb3VyX3RvY19vZmZzZXQuCgkqIGNvZmZjb2RlLmggKGNvZmZfd3JpdGVfcmVsb2NzKTogUmVuYW1lICJpIiB0byBhdm9pZCBzaGFkb3dpbmcuCgkqIGVsZi5jIChiZmRfZWxmX2dldF9iZmRfbmVlZGVkX2xpc3QpOiBSZW5hbWUgImxpbmsiIHZhciB0byBhdm9pZAoJc2hhZG93IHdhcm5pbmcuCgkoX2JmZF9lbGZjb3JlX3N0cm5kdXApOiBMaWtld2lzZSBmb3IgImR1cCIuCgkqIGVsZjMyLWNyaXMuYyAoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6ICJzeW1uYW1lIiBpbnN0ZWFkIG9mCgkibmFtZSIgdG8gYXZvaWQgc2hhZG93aW5nLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IFJlbW92ZSBkdXBsaWNhdGUKCWRlZmluaXRpb24gb2YgIm9mZiIuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfbW9kaWZ5X3NlZ21lbnRfbWFwKTogUmVtb3ZlIGR1cGxpY2F0ZQoJZGVmaW5pdGlvbiBvZiAicyIuCgkoX2JmZF9taXBzX2VsZl9maW5hbF9saW5rKTogUmVuYW1lICJpIiB0byAiaiIuICBSZW1vdmUgZHVwbGljYXRlCgkic2VjcHAiLgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBSZW5hbWUgaW5uZXIgImluZHgiCgl0byBhdm9pZCBzaGFkb3dpbmcuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogUmVuYW1lICJsaW5rIiB0byAic2hsaW5rIgoJdG8gYXZvaWQgc2hhZG93aW5nLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IExpa2V3aXNlLgoJKGVsZl9iZmRfZmluYWxfbGluayk6IFJlbW92ZSBkdXBsaWNhdGUgaW5uZXJtb3N0ICJvZmYiIHZhci4KCSogb2FzeXMuYyAob2FzeXNfd3JpdGVfZGF0YSk6IFJlbmFtZSBpbm5lcm1vc3QgInAiIHRvICJzeW0iLgoJKiByZWxvYzE2LmMgKGJmZF9jb2ZmX3JlbG9jMTZfcmVsYXhfc2VjdGlvbik6IFJlbmFtZSAiaSIgcGFyYW0gdG8KCSJpbnB1dF9zZWN0aW9uIi4KCSogc29tLmMgKHNvbV9wcmVwX2Zvcl9maXh1cHMpOiBSZW5hbWUgaW5uZXIgImkiIHRvICJqIi4KCSogc3Vub3MuYyAoc3Vub3NfYWRkX2R5bmFtaWNfc3ltYm9scyk6IExvY2FsaXNlICJzIiB2YXIuCgkoc3Vub3Nfd3JpdGVfZHluYW1pY19zeW1ib2wpOiBSZW1vdmUgdW51c2VkIHZhcnMuCgkqIHN5bXMuYyAoX2JmZF9zdGFiX3NlY3Rpb25fZmluZF9uZWFyZXN0X2xpbmUpOiBSZW1vdmUgZHVwbGljYXRlCglpbm5lcm1vc3QgImRpcmVjdG9yeV9uYW1lIiBhbmQgImZpbGVfbmFtZSIgdmFycy4KCSogdGVraGV4LmMgKGZpcnN0X3BoYXNlKTogUmVuYW1lIGxvY2FsIHZhciAidHlwZSIgdG8gInN0eXBlIi4KCSh0ZWtoZXhfd3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogUmVuYW1lIGlubmVybW9zdCAicyIgdG8gInN5bSIuCgkqIHZtcy1nc2QuYyAodm1zX3NlY2ZsYWdfYnlfbmFtZSk6IENoYW5nZSAic2l6ZSIgcGFyYW0gdG8gImhhc3NpemUiLAoJZG9pbmcgY29tcGFyaXNvbiBhdCBjYWxsZXIuCgkodm1zX2VzZWNmbGFnX2J5X25hbWUpOiBMaWtld2lzZS4KCSogdm1zLXRpci5jIChldGlyX3N0byk6IFJlbmFtZSBpbm5lcm1vc3QgInBzZWN0IiB0byAicHNlY3QxIi4KCSogeGNvZmZsaW5rLmMgKHhjb2ZmX2xpbmtfaW5wdXRfYmZkKTogRGVsZXRlIGR1cGxpY2F0ZSBpbm5lcm1vc3QgIm8iLgoJKHhjb2ZmX3dyaXRlX2dsb2JhbF9zeW1ib2wpOiBSZW5hbWUgInAiIHBhcmFtIHRvICJpbmYiLgoKCSogY2lzY28tY29yZS5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKGNpc2NvX2NvcmVfZmlsZV9mYWlsaW5nX2NvbW1hbmQpOiBBZGQgQVRUUklCVVRFX1VOVVNFRC4KCShjaXNjb19jb3JlX2ZpbGVfZmFpbGluZ19zaWduYWwpOiBMaWtld2lzZS4KCShjaXNjb19jb3JlX2ZpbGVfbWF0Y2hlc19leGVjdXRhYmxlX3ApOiBMaWtld2lzZS4KCSogaHB1eC1jb3JlLmMgKGhwdXhfY29yZV9jb3JlX2ZpbGVfZmFpbGluZ19zaWduYWwpOiBMaWtld2lzZS4KCSogbmV0YnNkLWNvcmUuYyAobmV0YnNkX2NvcmVfZmlsZV9tYXRjaGVzX2V4ZWN1dGFibGVfcCk6IExpa2V3aXNlLgoJKiBvc2YtY29yZS5jIChvc2ZfY29yZV9jb3JlX2ZpbGVfbWF0Y2hlc19leGVjdXRhYmxlX3ApOiBMaWtld2lzZS4KCSogc2NvNS1jb3JlLmMgKHNjbzVfY29yZV9maWxlX21hdGNoZXNfZXhlY3V0YWJsZV9wKTogTGlrZXdpc2UuCgoJKiBjb2ZmLWFybS5jIChjb2ZmX2FybV9saW5rX2hhc2hfdGFibGUpOiBVc2UgYmZkX3NpemVfdHlwZSBmb3IKCXRodW1iX2dsdWVfc2l6ZSBhbmQgYXJtX2dsdWVfc2l6ZS4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9saW5rX2hhc2hfdGFibGUpOiBMaWtld2lzZSBoZXJlLgoKCSogY29mZjY0LXJzNjAwMC5jOiBHcm91cCBwcm90b3R5cGVzIHRvZ2V0aGVyLgoKCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYXJjaF9tYWNoKTogQWRkIEFUVFJJQlVURV9VTlVTRUQuCgkoYnV5X2FuZF9yZWFkKTogUmVtb3ZlICJzZWVrIiBwYXJhbS4gIENoYW5nZSAic2l6ZSIgdG8gYmZkX3NpemVfdHlwZS4KCgkqIGNwdS1hcmMuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogY3B1LWg4NTAwLmM6IExpa2V3aXNlLgoJKiBjcHUtaTk2MC5jOiBMaWtld2lzZS4KCSogY3B1LXBqLmM6IExpa2V3aXNlLgoJKiBjcHUtc2guYzogTGlrZXdpc2UuCgkqIGNwdS13NjUuYzogTGlrZXdpc2UuCgkqIGNwdS16OGsuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWZyMzAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWg4MzAwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmM6IExpa2V3aXNlLgoJKiBocHV4LWNvcmUuYzogTGlrZXdpc2UuCgkqIHZlcnNhZG9zLmM6IExpa2V3aXNlLgoKCSogY3B1LWg4MzAwLmMgKGJmZF9kZWZhdWx0X3NjYW5fbnVtX21hY2gpOiBEb24ndCBkZWNsYXJlLgoJKiBjcHUtaDg1MDAuYzogTGlrZXdpc2UuCgkqIGNwdS1pOTYwLmM6IExpa2V3aXNlLgoJKiBjcHUtejhrLmM6IExpa2V3aXNlLgoKCSogY3B1LWlhNjQtb3BjLmM6IENvcnJlY3QgY29tbWVudC4KCgkqIGR3YXJmMi5jIChfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZSk6IFJlbW92ZSB1bnVzZWQgdmFyLgoKCSogZWxmLWJmZC5oIChlbGZfc2l6ZV9pbmZvKTogQ2hhbmdlIGNvdW50IHBhcmFtIG9mIHdyaXRlX291dF9waGRycwoJdG8gdW5zaWduZWQuCgkoYmZkX2VsZjMyX3dyaXRlX291dF9waGRycyk6IExpa2V3aXNlLgoJKGJmZF9lbGY2NF93cml0ZV9vdXRfcGhkcnMpOiBMaWtld2lzZS4KCShlbGZfbGlua2VyX3NlY3Rpb25fcG9pbnRlcnMpOiBDaGFuZ2UgYWRkZW5kIHRvIGJmZF92bWEuCgkoX2JmZF9lbGZfZmluZF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogTGlrZXdpc2UuCgkoX2JmZF9lbGZjb3JlX21ha2VfcHNldWRvc2VjdGlvbik6IENoYW5nZSBzaXplIHBhcmFtIHRvIHNpemVfdCBhbmQKCWZpbGVwb3MgdG8gdW5zaWduZWQgZmlsZV9wdHIuCgkoX2JmZF9lbGZjb3JlX3N0cm5kdXApOiBDaGFuZ2UgbWF4IHBhcmFtIHRvIHNpemVfdC4KCSogZWxmLmMgKF9iZmRfZWxmY29yZV9tYWtlX3BzZXVkb3NlY3Rpb24pOiBBcyBhYm92ZS4KCShfYmZkX2VsZmNvcmVfc3RybmR1cCk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2ZpbmRfcG9pbnRlcl9saW5rZXJfc2VjdGlvbik6IExpa2V3aXNlLgoKCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfcmVsb2NhdGVfaW5zbik6IFJldHVybiBhbiBpbnQsIGFuZCBjaGFuZ2UKCWluc24gYW5kIHN5bV92YWx1ZSB0byBpbnRzLgoKCSogZWxmLmMgKGVsZl9yZWFkKTogTWFrZSAib2Zmc2V0IiBwYXJhbSBhIGZpbGVfcHRyLCAic2l6ZSIgYQoJYmZkX3NpemVfdHlwZS4KCShlbGZjb3JlX3JlYWRfbm90ZXMpOiBMaWtld2lzZS4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IENoYW5nZSBzeW1fZmxhZ3MKCXBhcmFtIGZyb20gdW5zaWduZWQgY2hhciB0byBpbnQuCgkoZWxmMzJfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBJZiBVU0VfUkVMLCBjYXN0ICJyZWwiIGFwcHJvcHJpYXRlbHkKCWZvciBpbmZvX3RvX2hvd3RvIGNhbGwuCgkoYWRkX2R5bmFtaWNfZW50cnkpOiBEZWZpbmUgbWFjcm8uCgkoZWxmMzJfYXJtX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBhZGRfZHluYW1pY19lbnRyeS4KCgkqIGVsZjMyLWNyaXMuYyAoYWRkX2R5bmFtaWNfZW50cnkpOiBEZWZpbmUgbWFjcm8uCgkoZWxmX2NyaXNfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGFkZF9keW5hbWljX2VudHJ5LgoKCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IE1ha2Ugc3RhdGljLgoJKGVsZjMyX2g4X29iamVjdF9wKTogTGlrZXdpc2UuCgkoZWxmMzJfaDhfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IExpa2V3aXNlLgoJKGVsZjMyX2g4X3JlbGF4X3NlY3Rpb24pOiBDYXN0IGdhcCB0byBpbnQgc28gc2lnbmVkIGNvbXBhcmlzb25zIHdvcmsuCgoJKiBlbGYzMi1ocHBhLmMgKGFkZF9keW5hbWljX2VudHJ5KTogRGVmaW5lIG1hY3JvLgoJKGVsZjMyX2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGl0LgoJKiBlbGYzMi1pMzcwLmMgKGFkZF9keW5hbWljX2VudHJ5KTogRGVmaW5lIG1hY3JvLgoJKGkzNzBfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBpdC4KCShpMzcwX25vb3ApOiBNYWtlIHN0YXRpYy4KCSogZWxmMzItaTM4Ni5jIChhZGRfZHluYW1pY19lbnRyeSk6IERlZmluZSBtYWNyby4KCShlbGZfaTM4Nl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgaXQuCgkqIGVsZjMyLW02OGsuYyAoYWRkX2R5bmFtaWNfZW50cnkpOiBEZWZpbmUgbWFjcm8uCgkoZWxmX202OGtfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGl0LgoJKiBlbGYzMi1wcGMuYyAoYWRkX2R5bmFtaWNfZW50cnkpOiBEZWZpbmUgbWFjcm8uCgkocHBjX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgaXQuCgkqIGVsZjMyLXMzOTAuYyAoYWRkX2R5bmFtaWNfZW50cnkpOiBEZWZpbmUgbWFjcm8uCgkoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGl0LgoJKiBlbGY2NC1hbHBoYS5jIChhZGRfZHluYW1pY19lbnRyeSk6IERlZmluZSBtYWNyby4KCShlbGY2NF9hbHBoYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgaXQuCgkqIGVsZjY0LWhwcGEuYyAoYWRkX2R5bmFtaWNfZW50cnkpOiBEZWZpbmUgbWFjcm8uCgkoZWxmNjRfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgaXQuCgkqIGVsZjY0LXBwYy5jIChhZGRfZHluYW1pY19lbnRyeSk6IERlZmluZSBtYWNyby4KCShwcGM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGl0LgoJKiBlbGY2NC1zMzkwLmMgKGFkZF9keW5hbWljX2VudHJ5KTogRGVmaW5lIG1hY3JvLgoJKGVsZl9zMzkwX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBpdC4KCSogZWxmNjQtc3BhcmMuYyAoYWRkX2R5bmFtaWNfZW50cnkpOiBEZWZpbmUgbWFjcm8uCgkoc3BhcmM2NF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIGl0LgoJKiBlbGY2NC14ODYtNjQuYyAoYWRkX2R5bmFtaWNfZW50cnkpOiBEZWZpbmUgbWFjcm8uCgkoZWxmNjRfeDg2XzY0X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBpdC4KCSogZWxmeHgtaWE2NC5jIChhZGRfZHluYW1pY19lbnRyeSk6IERlZmluZSBtYWNyby4KCShlbGZOTl9pYTY0X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBpdC4KCgkqIGVsZjMyLXY4NTAuYyAoU0VYVDI0KTogTW9kaWZ5IHRvIGF2b2lkIHNpZ25lZC91bnNpZ25lZCB3YXJuaW5nLgoJKHY4NTBfZWxmX3BlcmZvcm1fcmVsb2NhdGlvbik6IE1ha2UgInJfdHlwZSIgcGFyYW0gdW5zaWduZWQuCgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfc2x1cnBfb25lX3JlbG9jX3RhYmxlKTogSnVzdCByZXR1cm4KCWZhbHNlIGlmIHRoZSBmaXJzdCBtYWxsb2MgZmFpbHMgcmF0aGVyIHRoYW4gZ29pbmcgdmlhIGVycm9yX3JldHVybi4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3BsdF9lbnRyeV9vZmZzZXQpOiBVc2UgYSBiZmRfdm1hIGZvcgoJImluZGV4IiBwYXJhbS4KCShzcGFyYzY0X2VsZl9wbHRfcHRyX29mZnNldCk6IExpa2V3aXNlLCBhbmQgZm9yICJtYXgiIHBhcmFtIHRvby4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogcy9pbmdvcmVkL2lnbm9yZWQvIGluIGVycm9yIG1lc3NhZ2UuCgoJKiBlbGZ4eC1pYTY0LmMgKGdsb2JhbF9zeW1faW5kZXgpOiBSZXR1cm4gYSBsb25nLgoKCSogaWVlZS5jIChnZXRfc3ltYm9sKTogVXNlIGludCByYXRoZXIgdGhhbiBjaGFyIHBhcmFtLgoJKGllZWVfc2x1cnBfc2VjdGlvbnMpOiBNb3ZlICJzZWN0aW9uIiB2YXIgdG8gaW5uZXIgYmxvY2tzLgoJKGNvcHlfZXhwcmVzc2lvbik6IERvbid0IGluaXQgInZhbHVlIiB0byB6ZXJvIG9yIHdvcnJ5IGFib3V0CgljbGVhcmluZyB0byB6ZXJvIGFmdGVyIHVzaW5nLgoJKGllZWVfd3JpdGVfZGVidWdfcGFydCk6IFJlbmFtZSAib3V0cHV0X2J1ZmZlciIgdG8gIm9idWZmIiB0byBhdm9pZAoJc2hhZG93aW5nLgoKCSogaWhleC5jIChpaGV4X3dyaXRlX3JlY29yZCk6IE1ha2UgImNvdW50IiB2YXIgYSBzaXplX3QsICJhZGRyIiBhbgoJdW5zaWduZWQgaW50LgoKCSogbGliYmZkLWluLmggKEJGRF9BTElHTik6IEFkZCBjYXN0IHRvIGF2b2lkIHNpZ25lZC91bnNpZ25lZCB3YXJuaW5nLgoJKGJmZF93cml0ZV9iaWdlbmRpYW5fNGJ5dGVfaW50KTogUGFzcyBhbiB1bnNpZ25lZCBpbnQgdmFsdWUgcGFyYW0uCgoJKiBtaXBzYnNkLmMgKG1pcHNfZml4X2ptcF9hZGRyKTogQWRkICJlcnJvcl9tZXNzYWdlIiBwYXJhbS4KCgkqIHBjNTMyLW1hY2guYyAoTVlOU1gpOiBEZWxldGUuCgkobnMzMmthb3V0X2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IERlZmluZSBwcm90b3R5cGUgd2l0aG91dCBNWU5TWC4KCSh3cml0ZV9vYmplY3RfY29udGVudHMpOiBDb3JyZWN0IHByb3RvdHlwZS4KCgkqIHBlaWNvZGUuaCAocGVfSUxGX2J1aWxkX2FfYmZkKTogVXNlIGFuIHVuc2lnbmVkIGludCBwYXJhbSByYXRoZXIKCXRoYW4gdW5zaWduZWQgc2hvcnQuCgoJKiBzZWN0aW9uLmMgKGJmZF9zZXRfc2VjdGlvbl9jb250ZW50cyk6IFJlbW92ZSByZWR1bmRhbnQKCSJvZmZzZXQgPCAwIiB0ZXN0LiAgQ2hlY2sgdGhhdCAiY291bnQiIGRvZXNuJ3Qgb3ZlcmZsb3cgc2l6ZV90LgoJKGJmZF9nZXRfc2VjdGlvbl9jb250ZW50cyk6IExpa2V3aXNlLgoKCSogc29tLmMgKHNvbV9maXh1cF9mb3JtYXRzKTogQWRkIG1pc3NpbmcgYnJhY2VzLgoJKHNvbV9yZWxvY19hZGRlbmQpOiBQYXNzIGEgYmZkX3ZtYSBmb3IgImFkZGVuZCIuCgoJKiBzcmVjLmMgKHNyZWNfd3JpdGVfcmVjb3JkKTogUGFzcyAidHlwZSIgYXMgYW4gdW5zaWduZWQgaW50LgoJKHNyZWNfd3JpdGVfc3ltYm9scyk6IFJlbW92ZSBhbiB1bm5lY2Vzc2FyeSB2YXIuCgoJKiB0YXJnZXRzLmMgKF9iZmRfdGFyZ2V0X3ZlY3Rvcik6IFNvcnQgZW50cmllcy4gIFNvcnQgZXh0ZXJucwoJdG8gbWF0Y2guCgkqIGNvbmZpZ3VyZS5pbjogU29ydCB0byBtYXRjaC4gIEJ1bXAgdmVyc2lvbiBudW1iZXIuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCgkqIHRla2hleC5jIChtb3ZlX3NlY3Rpb25fY29udGVudHMpOiBBc3NlcnQgb2Zmc2V0ID09IDAuCgoJKiB2ZXJzYWRvcy5jIChuZXdfc3ltYm9sX3N0cmluZyk6IENvbnN0aWZ5IGFyZy4KCShwcm9jZXNzX2VzZCk6IFVzZSBiZmRfdW5kX3NlY3Rpb25fcHRyIHJhdGhlciB0aGFuICZiZmRfdW5kX3NlY3Rpb24uCgkodmVyc2Fkb3NfZ2V0X3N5bWJvbF9pbmZvKTogTWFrZSBzdGF0aWMuCgkodmVyc2Fkb3NfcHJpbnRfc3ltYm9sKTogTGlrZXdpc2UuCgkodmVyc2Fkb3NfZ2V0X3JlbG9jX3VwcGVyX2JvdW5kKTogTGlrZXdpc2UuCgkodmVyc2Fkb3NfY2Fub25pY2FsaXplX3JlbG9jKTogTGlrZXdpc2UuCgoyMDAxLTA5LTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfaW5wdXRfYmZkKTogRml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZS4KCjIwMDEtMDktMTcgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGR3YXJmMS5jIChwYXJzZV9kaWUpOiBUYWtlIGEgbmV3IGFyZyBmb3IgdGhlIGVuZCBvZiB0aGUKCXNlY3Rpb24uIFJldHVybiBmYWxzZSBpZiBkaWUgaXMgYmV5b25kIHRoZSBzZWN0aW9uLgoJKHBhcnNlX2Z1bmN0aW9uc19pbl91bml0KTogUGFzcyB0aGUgZW5kIG9mIHRoZSBzZWN0aW9uIHRvCglwYXJzZV9kaWUgKCkuCgkoX2JmZF9kd2FyZjFfZmluZF9uZWFyZXN0X2xpbmUpOiBMaWtld2lzZS4KCjIwMDEtMDktMTQgIE1pY2hhZWwgUmF1Y2ggPG1yYXVjaEBuZXRic2Qub3JnPgoKCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IFRyZWF0IFJfU1BBUkNfVUEzMgoJanVzdCBsaWtlIFJfU1BBUkNfMzIuCgoyMDAxLTA5LTE0ICBLZXZpbiBMbyA8a2V2bG9Ab3BlbmJzZC5vcmc+CgoJKiBjb25maWd1cmUuYmZkOiBBZGQgYXJtLW9wZW5ic2QgdGFyZ2V0LgoKMjAwMS0wOS0xNCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZy5iZmQ6IENoYW5nZSBtYWNoaW5lIHRyaXBsZXRzIGZyb20gbWlwcyplbCotKiB0byBtaXBzKmVsLSouCglBZGQgc3VwcG9ydCBmb3IgbWlwczY0LgoKMjAwMS0wOS0xMyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1vcGVucmlzYy5jIChFTEZfTUFDSElORV9BTFQxKTogRGVmaW5lIGFzIEVNX09QRU5SSVNDX09MRC4KCjIwMDEtMDktMTIgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmLmMgKHByZXBfaGVhZGVycyk6IEdldCB0aGUgbWFjaGluZSBjb2RlIGZyb20gdGhlIGVsZgoJYmFja2VuZCBkYXRhLgoJKiBlbGYtbTEwMjAwLmMgKEVMRl9NQUNISU5FX0NPREUpOiBSZWRlZmluZSB0byBFTV9NTjEwMjAwLgoJKEVMRl9NQUNISU5FX0FMVDEpOiBEZWZpbmUgdG8gRU1fQ1lHTlVTX01OMTAyMDAuCgkqIGVsZi1tMTAzMDAuYyAoRUxGX01BQ0hJTkVfQ09ERSk6IFJlZGVmaW5lIHRvIEVNX01OMTAzMDAuCgkoRUxGX01BQ0hJTkVfQUxUMSk6IERlZmluZSB0byBFTV9DWUdOVVNfTU4xMDMwMC4KCSogZWxmLWFyYy5jIChhcmNfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBEb24ndCBvdmVycmlkZQoJZV9tYWNoaW5lLCBpdCdzIG5vdyBwcm9wZXJseSBzZXQgaW4gcHJlcF9oZWFkZXJzLgoJKiBlbGYzMi1hdnIuYyAoZWxmMzJfYXZyX29iamVjdF9wKTogQWNjZXB0IGJvdGggRU1fQVZSIGFuZAoJRU1fQVZSX09MRC4KCShFTEZfTUFDSElORV9BTFQxKTogRGVmaW5lIHRvIEVNX0FWUl9PTEQuCgkqIGVsZi1kMTB2LmMgKEVMRl9NQUNISU5FX0NPREUpOiBSZWRlZmluZSB0byBFTV9EMTBWLgoJKEVMRl9NQUNISU5FX0FMVDEpOiBEZWZpbmUgdG8gRU1fQ1lHTlVTX0QxMFYuCgkqIGVsZi1kMzB2LmMgKEVMRl9NQUNISU5FX0NPREUpOiBSZWRlZmluZSB0byBFTV9EMzBWLgoJKEVMRl9NQUNISU5FX0FMVDEpOiBEZWZpbmUgdG8gRU1fQ1lHTlVTX0QzMFYuCgkqIGVsZi1mcjMwLmMgKEVMRl9NQUNISU5FX0NPREUpOiBSZWRlZmluZSB0byBFTV9GUjMwLgoJKEVMRl9NQUNISU5FX0FMVDEpOiBEZWZpbmUgdG8gRU1fQ1lHTlVTX0ZSMzAuCgkqIGVsZi1tMzJyLmMgKEVMRl9NQUNISU5FX0NPREUpOiBSZWRlZmluZSB0byBFTV9NMzJSLgoJKEVMRl9NQUNISU5FX0FMVDEpOiBEZWZpbmUgdG8gRU1fQ1lHTlVTX00zMlIuCgkqIGVsZjMyLXBqLmMgKEVMRl9NQUNISU5FX0FMVDEpOiBERWZpbmUgdG8gRU1fUEpfT0xELgoJKiBlbGYtdjg1MC5jIChFTEZfTUFDSElORV9DT0RFKTogUmVkZWZpbmUgdG8gRU1fVjg1MC4KCShFTEZfTUFDSElORV9BTFQxKTogRGVmaW5lIHRvIEVNX0NZR05VU19WODUwLgoKMjAwMS0wOS0xMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3NlY3Rpb25fZmxhZ3MpOiBOZXcuCgkoZWxmNjRfYWxwaGFfZmFrZV9zZWN0aW9ucyk6IE1hcCBTRUNfU01BTExfREFUQSB0byBTSEZfQUxQSEFfR1BSRUwuCgoyMDAxLTA5LTExICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IERvIG5vdAoJYXBwbHkgSElOVCByZWxvY2F0aW9ucyBhZ2FpbnN0IGR5bmFtaWMgc3ltYm9scy4KCjIwMDEtMDktMTEgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGxpbmtlci5jIChsaW5rX2FjdGlvbik6IENoYW5nZSBDT01NT05fUk9XXGRlZncgZnJvbSBDUkVGIHRvIENPTS4KCjIwMDEtMDktMDkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jOiBEZWxldGUgYWxsIHVudXNlZCBFUklDX25ldmVyZGVmIGFuZCBydGhfbm90ZGVmIGNvZGUuCgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxheF93aXRoX2xpdHVzZSk6IE5vcCBvdXQgZ3BkaXNwCglmb2xsb3dpbmcgYSBjYWxsIHRvIGEgbmVhciBmdW5jdGlvbi4KCjIwMDEtMDktMDggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogU29mdCBmYWlsCglyZWxvY2F0aW9uIGVycm9ycy4gIEZhaWwgZ3AtcmVsYXRpdmUgcmVsb2NhdGlvbnMgYWdhaW5zdAoJZHluYW1pYyBzeW1ib2xzLgoKMjAwMS0wOS0wOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IENoZWNrICFERUZfUkVHVUxBUgoJYXMgd2VsbCBhcyBERUZfRFlOQU1JQyBpbiB0ZXN0IGZvciBhdm9pZGVkIGNvcHkgcmVsb2NzLgoJKGFsbG9jYXRlX3BsdF9hbmRfZ290X2FuZF9kaXNjYXJkX3JlbG9jcyk6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShhbGxvY2F0ZV9wbHRfYW5kX2dvdF9hbmRfZGlzY2FyZF9yZWxvY3MpOiBMaWtld2lzZS4KCjIwMDEtMDktMDcgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogRml4IG92ZXJmbG93IGhhbmRsaW5nCglvZiBSX01JUFNfUEMxNi4KCjIwMDEtMDktMDYgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfaG93dG9fdGFibGVfcmVsKTogRml4IHJlbG9jYXRpb24gSE9XVE8KCWRlZmluaXRpb25zLgoJKG1pcHNfZWxmNjRfaG93dG9fdGFibGVfcmVsKTogTGlrZXdpc2UuCgoyMDAxLTA5LTA1ICBUb20gUml4IDx0cml4QHJlZGhhdC5jb20+CgoJKiB4Y29mZmxpbmsuYyAoYmZkX3hjb2ZmX2ltcG9ydF9zeW1ib2wpOiBIYW5kbGUgaW1wb3J0IGZpbGUgWE1DX1hPCglhbmQgc3lzY2FsbCBzeW1ib2xzLgoJKHdyaXRlX2dsb2JhbF9zeW1ib2wpIDogU2FtZS4KCShiZmRfeGNvZmZfZXhwb3J0X3N5bWJvbCk6IFJlbW92ZSB1bnVzZWQgc3lzY2FsbCBwYXJhbS4KCSogbGlieGNvZmYuaDogQ2hhbmdlIHByb3RvdHlwZSBvZiBiZmRfeGNvZmZfZXhwb3J0IHN5bWJvbCBhbmQKCWJmZF94Y29mZl9pbXBvcnRfc3ltYm9sLgoJKiBiZmQtaW4uaDogU2FtZS4KCSogYmZkLWluMi5oIDogUmVnZW5lcmF0ZS4KCjIwMDEtMDktMDQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChTS0lQX0hPV1RPKTogTmV3LgoJKGVsZjY0X2FscGhhX2hvd3RvX3RhYmxlKTogVXNlIGl0IHRvIHJlbW92ZSBkZWFkIEVDT0ZGIHJlbG9jcy4KCUZpeCBzaXplcyBvZiAxNi1iaXQgbWVtIGZvcm1hdCByZWxvY3MuCgkoZWxmNjRfYWxwaGFfcmVsb2NfbWFwKTogVXBkYXRlIHRvIG1hdGNoLgoJKGVsZjY0X2FscGhhX3JlbGF4X3dpdGhfbGl0dXNlKTogVXNlIEdQUkVMMTYgYXMgYXBwcm9wcmlhdGUuCgkoZWxmNjRfYWxwaGFfcmVsYXhfd2l0aG91dF9saXR1c2UpOiBMaWtld2lzZS4KCShlbGY2NF9hbHBoYV9jaGVja19yZWxvY3MpOiBIYW5kbGUgR1BSRUwxNi4KCShlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIHJlbG9jLmMgKEJGRF9SRUxPQ19BTFBIQV9VU0VSXyopOiBSZW1vdmUuCgkoQkZEX1JFTE9DX0FMUEhBX0dQUkVMX0hJMTYsIEJGRF9SRUxPQ19BTFBIQV9HUFJFTF9MTzE2KTogTmV3LgoJKiBiZmQtaW4yLmgsIGxpYmJmZC5oOiBSZWJ1aWxkLgoKMjAwMS0wOS0wNCAgSmVmZiBMYXcgPGxhd0ByZWRoYXQuY29tPgoKCSogZWxmMzItaDgzMDAuYyAoZWxmMzJfaDhfcmVsYXhfc2VjdGlvbik6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9oOF9yZWxheF9kZWxldGVfYnl0ZXMpOiBMaWtld2lzZS4KCShlbGYzMl9oOF9zeW1ib2xfYWRkcmVzc19wKTogTGlrZXdpc2UuCgkoZWxmMzJfaDhfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgkoYmZkX2VsZjMyX2JmZF9yZWxheF9zZWN0aW9uKTogRGVmaW5lLgoJKGJmZF9lbGYzMl9iZmRfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnRzKTogTGlrZXdpc2UuCgoJKiBlbGYzMi1oODMwMC5jIChzcGVjaWFsKTogTmV3IGZ1bmN0aW9uLgoJKGg4X2VsZl9ob3d0b190YWJsZSk6IFVzZSBpdCBmb3IgU1BFQ0lBTF9GVU5DVElPTiBmaWVsZCBpbgoJYWxsIHJlbG9jYXRpb25zLgoJKGVsZjMyX2g4X2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBUcmVhdCBSX0g4X0RJUjI0QTggbGlrZSAzMmJpdAoJcmVsb2NhdGlvbnMuICBGaXggcHJvYmxlbXMgd2l0aCB0aGUgdHJ1ZSAyNGJpdCByZWxvYyBSX0g4X0RJUjI0UjguCglGaXggbWlub3IgcHJvYmxlbXMgd2l0aCA4Yml0IGFuZCAxNmJpdCBQQyByZWxhdGl2ZSByZWxvY2F0aW9ucy4KCjIwMDEtMDktMDEgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIHZtcy10aXIuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogdm1zLWhkci5jOiBMaWtld2lzZS4KCSogdm1zLWdzZC5jOiBMaWtld2lzZS4KCSogdm1zLW1pc2MuYzogTGlrZXdpc2UuCgoyMDAxLTA4LTMxICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfY2hlY2tfcmVsb2NzKTogUmVwb3J0IGZpbGVuYW1lCgl3aXRoIGJhZCByZWxvY2F0aW9uLgoKMjAwMS0wOC0zMSAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgkgICAgSmFzb24gRWNraGFyZHQgIDxqbGVAcmVkaGF0LmNvbT4KCgkqIGFyY2h1cmVzLmM6IEFkZCBtaXBzaXNhMzIgYW5kIG1pcHNpc2E2NC4gUmVtb3ZlIG1pcHMzMiwKCW1pcHMzMl80ayBhbmQgbWlwczY0LgoJKiBhb3V0eC5oOiBSZW1vdmUgYmZkX21hY2hfbWlwczMyLCBiZmRfbWFjaF9taXBzMzJfNGssCgliZmRfbWFjaF9taXBzNjQuICBBZGQgYmZkX21hY2hfbWlwc2lzYTMyLCBiZmRfbWFjaF9taXBzaXNhNjQuCgkqIGNwdS1taXBzLmM6IERpdHRvLgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IERpdHRvLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAxLTA4LTMxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBEdXBsaWNhdGUgbWVtb3J5Cgl2YWx1ZSBpbnRvIFJfQUxQSEFfUkVMQVRJVkUncyBhZGRlbmQuCgkoZWxmNjRfYWxwaGFfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgoyMDAxLTA4LTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fcmVsb2NhdGVfc2VjdGlvbik6IERvIG5vdCByaWdodHNoaWZ0CglyZWNvbXB1dGVkIGFkZGVuZCBkdXJpbmcgcmVsb2NhdGFibGUgbGluayBpZiBub3QgVVNFX1JFTC4KCgkqIGVsZmxpbmsuaCAoZWxmX2djX3Byb3BhZ2F0ZV92dGFibGVfZW50cmllc191c2VkKTogRml4IG9mZi1ieS1vbmUKCWVycm9yLgoKMjAwMS0wOC0zMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IFJldmVydCB0aGUgbGFzdAoJMiBjaGFuZ2VzLgoJKF9iZmRfbWlwc19lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogQWxsb2NhdGUgZHluYW1pYwoJcmVsb2NhdGlvbnMgZm9yIHdlYWsgZGVmaW5pdGlvbnMuCgoyMDAxLTA4LTMwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItaDgzMDAubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjMyLWg4MzAwLmMuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoKMjAwMS0wOC0zMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IERvbid0IGNyZWF0ZQoJZHluYW1pYyByZWxvY2F0aW9uIGZvciB1bmRlZmluZWQgd2VhayBzeW1ib2xzIHdoZW4gY3JlYXRpbmcKCWV4ZWN1dGFibGVzLiBDaGVjayBoLT5yb290LnJvb3QudHlwZSwgaW5zdGVhZCBvZiBoLT5yb290LnR5cGUuCgoyMDAxLTA4LTI5ICBKb2VsIFNoZXJyaWxsIDxqb2VsQE9BUmNvcnAuY29tPgoKCSogY29uZmlnLmJmZCAoaVszNDU2XTg2LSotcnRlbXMqLCBtNjgqLSotcnRlbXMqKTogQ2hhbmdlCglkZWZhdWx0IGZyb20gY29mZiB0byBlbGYuCgoyMDAxLTA4LTI5ICBKZWZmIExhdyA8bGF3QHJlZGhhdC5jb20+CgoJKiBlbGYzMi1oODMwMC5jIChoOF9lbGZfaG93dG9fdGFibGUpOiBBZGQgbmV3IFBDIHJlbGF0aXZlCglyZWxvY2F0aW9ucy4KCShoOF9yZWxvY19tYXApOiBTaW1pbGFybHkuCgkoZWxmMzJfaDhfZmluYWxfbGlua19yZWxvY2F0ZSk6IFJlbW92ZSBpbmNvcnJlY3Qgb3ZlcmZsb3cgdGVzdHMuCglBZGQgc3VwcG9ydCBmb3IgUEMgcmVsYXRpdmUgcmVsb2NhdGlvbnMuCgoJKiBlbGYzMi1oODMwMC5jOiBQdXQgYWxsIHByb3RvdHlwZXMgdG9nZXRoZXIuCgkoZWxmMzJfaDhfaW5mb190b19ob3d0byk6IFBhcmFtZXRlciBlbGZfcmVsb2MgaXMgdXNlZC4KCShlbGYzMl9oOF9maW5hbF9saW5rX3JlbG9jYXRlKTogTmV3IGZ1bmN0aW9uIGZvciBsaW5rZXIuCgkoZWxmMzJfaDhfcmVsb2NhdGVfc2VjdGlvbik6IFNpbWlsYXJseS4KCShlbGZfYmFja2VuZF9yZWxvY2F0ZV9zZWN0aW9uKTogRGVmaW5lLgoKCSogY3B1LWg4MzAwLmMgKGg4MzAwX3NjYW4sIGNvbXBhdGlibGUpOiBQcm90b3R5cGUuCgkoaDgzMDBfc2Nhbik6IEhhbmRsZSBhcmNoaXRlY3R1cmU6bWFjaGluZSBlbmNvZGluZ3MgdHlwaWNhbGx5Cglmb3VuZCBpbiBsaW5rZXIgc2NyaXB0cy4KCSogZWxmLmMgKHByZXBfaGVhZGVycyk6IERvIG5vdCB0cnkgdG8gZG8gSDggbWFjaGluZSByZWNvZ25pdGlvbgoJaGVyZS4KCSogZWxmMzItaDgzMDAuYzogIEFkZCBzb21lIG1pc3NpbmcgcHJvdG90eXBlcy4KCShlbGYzMl9oOF9tYWNoLCBlbGYzMl9oOF9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogTmV3IGZ1bmN0aW9ucy4KCShlbGYzMl9oOF9vYmplY3RfcCk6IFNpbWlsYXJseS4KCjIwMDEtMDgtMjkgIFRvbSBSaXggPHRyaXhAcmVkaGF0LmNvbT4KCgkqIHhjb2ZmbGluay5jICh4Y29mZl9saW5rX2FkZF9zeW1ib2xzKTogIEZpeCBYVFlfTEQgc3ltYm9sIHRoYXQKCWRvZXMgbm90IGZvbGxvdyBhIFhUWV9TRC4KCjIwMDEtMDgtMjkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiB0YXJnbWF0Y2guc2VkOiBEZWxldGUgY2FzZSBzdGF0ZW1lbnRzLgoJKiBjb25maWcuYmZkIDxwb3dlcnBjLSotYWl4KiBlbnRyeT46IFNlbGVjdCA2NCBiaXQgeGNvZmYgZm9yCglhaXg0LjMgYW5kIGFib3ZlLgoKMjAwMS0wOC0yOSAgSiJvcm4gUmVubmVja2UgPGFteWxhYXJAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChlbGYzMi1oODMwMC5sbyk6IE5ldyB0YXJnZXQuCgkqIGNvbmZpZy5iZmQgKGg4MzAwKi0qLWVsZik6IE5ldyBjYXNlLgoJKiBjb25maWd1cmUuaW4gKGJmZF9lbGYzMl9oODMwMF92ZWMpOiBOZXcgY2FzZS4KCSogZWxmLmMgKHByZXBfaGVhZGVycyk6IEFkZCBjYXNlIGZvciBiZmRfYXJjaF9oODMwMC4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX0g4X0RJUjE2QTgpOiBOZXcgcmVsb2NhdGlvbi4KCShCRkRfUkVMT0NfSDhfRElSMTZSOCwgQkZEX1JFTE9DX0g4X0RJUjI0QTgpOiBMaWtld2lzZS4KCShCRkRfUkVMT0NfSDhfRElSMjRSOCwgQkZEX1JFTE9DX0g4X0RJUjMyQTE2KTogTGlrZXdpc2UuCgkqIHRhcmdldHMuYyAoYmZkX3RhcmdldCBiZmRfZWxmMzJfaDgzMDBfdmVjKTogTmV3IGV4dGVybiBkZWNsYXJhdGlvbi4KCSogZWxmMzItaDgzMDAuYzogTmV3IGZpbGUuCgkqIE1ha2VmaWxlLmluLCBiZmQtaW4yLmgsIGxpYmJmZC5oLCBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMS0wOC0yOCAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBzcGFyY2x5bnguYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogY29mZi1tY29yZS5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBlbGYzMi1wai5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBubG0zMi1zcGFyYy5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBvYXN5cy5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBwZHAxMS5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBwZS1taXBzLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkqIHJpc2NpeC5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoKMjAwMS0wOC0yNyAgRGFuaWVsIEphY29ib3dpdHogIDxkcm93QG12aXN0YS5jb20+CgoJKiBlbGYzMi1pMzg2LmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4KCSogZWxmMzItc2gtbGluLmM6IExpa2V3aXNlLgoJKiBlbGZhcm0tbmFiaS5jOiBMaWtld2lzZS4KCjIwMDEtMDgtMjcgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9ncm9rX3Byc3RhdHVzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9pMzg2X2dyb2tfcHNpbmZvKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX2dyb2tfcHJzdGF0dXMpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfZ3Jva19wc2luZm8pOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfZ3Jva19wcnN0YXR1cyk6IE5ldyBmdW5jdGlvbi4KCShwcGNfZWxmX2dyb2tfcHNpbmZvKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX2dyb2tfcHJzdGF0dXMpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfZ3Jva19wc2luZm8pOiBMaWtld2lzZS4KCSogZWxmMzItc2gtbGluLmMgKGVsZjMyX3NobGluX2dyb2tfcHJzdGF0dXMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfc2hsaW5fZ3Jva19wc2luZm8pOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfZ3Jva19wcnN0YXR1cyk6IERlZmluZS4KCShlbGZfYmFja2VuZF9ncm9rX3BzaW5mbyk6IExpa2V3aXNlLgoJKiBlbGZhcm0tbmFiaS5jIChlbGYzMl9hcm1fbmFiaV9ncm9rX3Byc3RhdHVzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2FybV9uYWJpX2dyb2tfcHNpbmZvKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX2dyb2tfcHJzdGF0dXMpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfZ3Jva19wc2luZm8pOiBMaWtld2lzZS4KCjIwMDEtMDgtMjcgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfY3JlYXRlX2R5bmFtaWNfcmVsb2NhdGlvbik6IEFkZCBtb3JlCglzYW5pdHkgY2hlY2suCgkobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBDcmVhdGUgZHluYW1pYyByZWxvY2F0aW9uIGZvcgoJc3ltYm9scyB3aXRoIHdlYWsgZGVmaW5pdGlvbiBvciB0aGUgRUxGX0xJTktfSEFTSF9ERUZfUkVHVUxBUgoJYml0IGlzIG5vdCBzZXQuCgoyMDAxLTA4LTI3ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfaGlkZV9zeW1ib2wpOiBBZGQgcHJvdG90eXBlLgoJKF9iZmRfbWlwc19lbGZfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBMaWtld2lzZS4KCShfYmZkX2VsZjMyX21pcHNfZ3Jva19wcnN0YXR1cyk6IExpa2V3aXNlLgoJKF9iZmRfZWxmMzJfbWlwc19ncm9rX3BzaW5mbyk6IExpa2V3aXNlLgoJKF9iZmRfbWlwc19lbGZfaGlkZV9zeW1ib2wpOiBNYWtlIGl0IHN0YXRpYyBhbmQgY2FzdCB0bwoJYHN0cnVjdCBtaXBzX2VsZl9saW5rX2hhc2hfZW50cnkgKicuCgkoX2JmZF9taXBzX2VsZl9jb3B5X2luZGlyZWN0X3N5bWJvbCk6IE1ha2UgaXQgc3RhdGljLgoKMjAwMS0wOC0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBtaXBzYnNkLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkqIGhwMzAwaHB1eC5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBpMzg2YW91dC5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBpMzg2bHlueC5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBpMzg2bWFjaDMuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogaTM4Nm1zZG9zLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkqIGkzODZvczlrLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgoyMDAxLTA4LTI3ICBMaW51cyBOb3JkYmVyZyAgPGxpbnVzQHN3b3guc2U+CgkgICAgVG9yYmpvcm4gR3Jhbmx1bmQgIDx0ZWdlQHN3b3guY29tPgoJICAgIFN0YWZmYW4gVWxmYmVyZyAgPHN0YWZmYW51QHN3b3guc2U+CgkgICAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy5iZmQ6IEFkZCBwb3dlcnBjNjQgdGFyZ2V0LiAgQWRkIHBvd2VycGM2NCB2ZWN0b3JzIHRvCgl0YXJnNjRfc2VsdmVjcyBmb3IgMzIgYml0IHBvd2VycGMgdGFyZ2V0cy4KCSogTWFrZWZpbGUuYW0gKEJGRDY0X0JBQ0tFTkRTKTogQWRkIGVsZjY0LXBwYy5sby4KCShCRkQ2NF9CQUNLRU5EU19DRklMRVMpOiBBZGQgZWxmNjQtcHBjLmMuCglSdW4gIm1ha2UgZGVwLWFtIi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGVsZjY0X3Bvd2VycGMgdmVjcy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjcHUtcG93ZXJwYy5jOiBEZWZhdWx0IHRvIGJmZF9tYWNoX3BwY182MjAgZW50cnkgZm9yIDY0IGJpdC4KCSogZWxmLmMgKHByZXBfaGVhZGVycyk6IEVNX1BQQzY0IGZvciA2NCBiaXQgcHBjIGVsZiB0YXJnZXQuCgkqIHRhcmdldHMuYzogQWRkIGJmZF9lbGY2NF9wb3dlcnBjX3ZlYyBhbmQgYmZkX2VsZjY0X3Bvd2VycGNsZV92ZWMuCgkqIGVsZjY0LXBwYy5jOiBOZXcgZmlsZS4KCSogcmVsb2MuYzogQWRkIHBvd2VycGM2NCByZWxvY3MuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAxLTA4LTI3ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZWxmMzItbTY4ay5jIChlbGYzMl9tNjhrX2NoZWNrX3JlbG9jcyk6IFNldCBERl9URVhUUkVMIGlmIHRoZQoJcmVsb2MgaXMgYWdhaW5zdCByZWFkLW9ubHkgc2VjdGlvbi4KCShlbGYzMl9tNjhrX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBERl9URVhUUkVMIGZsYWcgaW5zdGVhZCBvZgoJbG9va2luZyB1cCBzZWN0aW9uIG5hbWVzIGZvciBEVF9URVhUUkVMLgoJKGVsZjMyX202OGtfcmVsb2NfdHlwZV9jbGFzcyk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9yZWxvY190eXBlX2NsYXNzKTogRGVmaW5lLgoKMjAwMS0wOC0yNyAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZWxmNjQtczM5MC5jIChlbGZfczM5MF9jaGVja19yZWxvY3MpOiBTZXQgREZfVEVYVFJFTCBpZiB0aGUKCXJlbG9jIGlzIGFnYWluc3QgcmVhZC1vbmx5IHNlY3Rpb24uCgkoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIERGX1RFWFRSRUwgZmxhZyBpbnN0ZWFkIG9mCglsb29raW5nIHVwIHNlY3Rpb24gbmFtZXMgZm9yIERUX1RFWFRSRUwuCgkoZWxmX3MzOTBfcmVsb2NfdHlwZV9jbGFzcyk6IE5ldy4KCShlbGZfYmFja2VuZF9yZWxvY190eXBlX2NsYXNzKTogRGVmaW5lLgoKCSogZWxmMzItczM5MC5jIChlbGZfczM5MF9jaGVja19yZWxvY3MpOiBTZXQgREZfVEVYVFJFTCBpZiB0aGUKCXJlbG9jIGlzIGFnYWluc3QgcmVhZC1vbmx5IHNlY3Rpb24uCgkoZWxmX3MzOTBfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIERGX1RFWFRSRUwgZmxhZyBpbnN0ZWFkIG9mCglsb29raW5nIHVwIHNlY3Rpb24gbmFtZXMgZm9yIERUX1RFWFRSRUwuCgkoZWxmX3MzOTBfcmVsb2NfdHlwZV9jbGFzcyk6IE5ldy4KCShlbGZfYmFja2VuZF9yZWxvY190eXBlX2NsYXNzKTogRGVmaW5lLgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfY2hlY2tfcmVsb2NzKTogU2V0IERGX1RFWFRSRUwgaWYgdGhlIHJlbG9jCglpcyBhZ2FpbnN0IHJlYWQtb25seSBzZWN0aW9uLgoJKHBwY19lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIERGX1RFWFRSRUwgZmxhZyBpbnN0ZWFkIG9mCglsb29raW5nIHVwIHNlY3Rpb24gbmFtZXMgZm9yIERUX1RFWFRSRUwuCgkocHBjX2VsZl9yZWxvY190eXBlX2NsYXNzKTogTmV3LgoJKGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MpOiBEZWZpbmUuCgoyMDAxLTA4LTI2ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGYzMi1jcmlzLmMgKGNyaXNfZWxmX2NoZWNrX3JlbG9jcyk6IFNldCBERl9URVhUUkVMIGlmIHRoZQoJcmVsb2MgaXMgYWdhaW5zdCByZWFkLW9ubHkgc2VjdGlvbi4KCShlbGZfY3Jpc19zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgREZfVEVYVFJFTCBmbGFnIGluc3RlYWQgb2YKCWxvb2tpbmcgdXAgc2VjdGlvbiBuYW1lcyBmb3IgRFRfVEVYVFJFTC4KCShlbGZfY3Jpc19yZWxvY190eXBlX2NsYXNzKTogTmV3LgoJKGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MpOiBEZWZpbmUuCgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfY2hlY2tfcmVsb2NzKTogU2V0IERGX1RFWFRSRUwgaWYgdGhlIHJlbG9jIGlzCglhZ2FpbnN0IHJlYWQtb25seSBzZWN0aW9uLgoJKGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MpOiBEZWZpbmUuCgkoc2hfZWxmX3JlbG9jX3R5cGVfY2xhc3MpOiBOZXcuCgkoc2hfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBERl9URVhUUkVMIGZsYWcgaW5zdGVhZCBvZgoJbG9va2luZyB1cCBzZWN0aW9uIG5hbWVzIGZvciBEVF9URVhUUkVMLgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9jaGVja19yZWxvY3MpOiBTZXQgREZfVEVYVFJFTCBpZiB0aGUKCXJlbG9jIGlzIGFnYWluc3QgcmVhZC1vbmx5IHNlY3Rpb24uCgkoZWxmMzJfYXJtX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBERl9URVhUUkVMIGZsYWcgaW5zdGVhZCBvZgoJbG9va2luZyB1cCBzZWN0aW9uIG5hbWVzIGZvciBEVF9URVhUUkVMLgoJKGVsZjMyX2FybV9yZWxvY190eXBlX2NsYXNzKTogTmV3LgoJKGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MpOiBEZWZpbmUuCgoyMDAxLTA4LTI1ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBvYXN5cy5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQWRkIHVudXNlZAoJYXR0cmlidXRlIGZvciBwYXJhbWV0ZXIuCgkqIGVsZi5jIChfYmZkX2VsZl9yZWxvY190eXBlX2NsYXNzKTogTGlrZXdpc2UuCgoJKiB2ZXJzYWRvcy5jIChnZXRfNCk6IE1ha2Ugc3RhdGljLgoJKGdldF8xMCk6IE1ha2Ugc3RhdGljLgoJQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCShwcm9jZXNzX2VzZCk6IEZpeCBjYWxsIHRvIHZlcnNhZG9zX25ld19zeW1ib2wuCgoyMDAxLTA4LTI1ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGNvZmYtYTI5ay5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBjb2ZmLWFwb2xsby5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBjb2ZmLWFybS5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBjb2ZmLWk4NjAuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogY29mZi1yczYwMDAuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogY29mZi10aWM4MC5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBlbGYtbTEwMjAwLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkqIGVsZi1tMTAzMDAuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogZWxmMzItYXJtLmg6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkqIGVsZjMyLWQxMHYuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogZWxmMzItbTMyci5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBlbGYzMi1tY29yZS5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBlbGYzMi1vcGVucmlzYy5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBlbGYzMi1zaC5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBlbGYzMi1zcGFyYy5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBlbGYzMi12ODUwLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkqIGVsZmFybS1uYWJpLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkqIGVsZmFybS1vYWJpLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgoyMDAxLTA4LTI1ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWxmMzItbWlwcy5jIChlbGZfbWlwc19hYmlfbmFtZSk6IFJldHVybiB0aGUgcmlnaHQgQUJJIHN0cmluZyBmb3IKCUVfTUlQU19BQklfTzY0IGFuZCBFX01JUFNfQUJJX0VBQkk2NAoKMjAwMS0wOC0yNCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmLmMgKF9iZmRfZWxmX21lcmdlX3NlY3Rpb25zKTogRmFpbCBpZiBub3QgdXNpbmcgYW4gRUxGCgloYXNoIHN0cnVjdHVyZS4KCjIwMDEtMDgtMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmLWJmZC5oIChlbGZfaGFzaF90YWJsZSk6IFJldmVydCBkZWZpbml0aW9uLgoJKGlzX2VsZl9oYXNoX3RhYmxlKTogTmV3IG1hY3JvLgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IFRlc3QKCWlzX2VsZl9oYXNoX3RhYmxlIGJlZm9yZSBhY2Nlc3NpbmcgRUxGIG9ubHkgZmllbGRzIGluIGhhc2gKCXN0cnVjdHVyZS4KCShlbGZfbGlua19jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IEZhaWwgaWYgbm90IHVzaW5nIGFuIEVMRgoJaGFzaCBzdHJ1Y3R1cmUuCgkoZWxmX2FkZF9keW5hbWljX2VudHJ5KTogRmFpbCBpZiBub3QgdXNpbmcgYW4gRUxGIGhhc2gKCXN0cnVjdHVyZS4KCShlbGZfbGlua19yZWNvcmRfbG9jYWxfZHluYW1pY19zeW1ib2wpOiBGYWlsIGlmIG5vdCB1c2luZyBhbgoJRUxGIGhhc2ggc3RydWN0dXJlLgoJKHNpemVfZHluYW1pY19zZWN0aW9ucyk6IEZhaWwgaWYgbm90IHVzaW5nIGFuIEVMRiBoYXNoCglzdHJ1Y3R1cmUuCgkoZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEZhaWwgaWYgbm90IHVzaW5nIGFuIEVMRgoJaGFzaCBzdHJ1Y3R1cmUuCgkoZWxmX2JmZF9maW5hbF9saW5rKTogRmFpbCBpZiBub3QgdXNpbmcgYW4gRUxGIGhhc2gKCXN0cnVjdHVyZS4KCjIwMDEtMDgtMjQgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZi1iZmQuaCAoZWxmX2hhc2hfdGFibGUpOiBSZXR1cm4gTlVMTCBpZiB0aGUgbGlua2VyIGhhc2gKCXRhYmxlIGlzIG5vdCBhbiBFTEYgbGlua2VyIGhhc2ggdGFibGUuCgoJKiBlbGYuYyAoX2JmZF9lbGZfbGlua19oYXNoX3RhYmxlX2luaXQpOiBTZXQgdGhlIGxpbmtlciBoYXNoCgl0YWJsZSB0eXBlIHRvIGJmZF9saW5rX2VsZl9oYXNoX3RhYmxlLgoKCSogZWxmeHgtdGFyZ2V0LmggKGJmZF9lbGZOTl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IFJldmVydAoJdGhlIGxhc3QgY2hhbmdlLgoKCSogbGlua2VyLmMgKF9iZmRfbGlua19oYXNoX3RhYmxlX2luaXQpOiBTZXQgdGhlIGxpbmtlciBoYXNoCgl0YWJsZSB0eXBlIHRvIGJmZF9saW5rX2dlbmVyaWNfaGFzaF90YWJsZS4KCjIwMDEtMDgtMjQgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogYmZkLmMgKGJmZF9hbHRfbWFjaF9jb2RlKTogTmV3IGZ1bmN0aW9uLgoJKiBiZmQtaW4yLmg6IFJlYnVpbHQuCgoyMDAxLTA4LTI0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZi1tMTAzMDAuYyAobW4xMDMwMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFRlc3QgdGhlIHJpZ2h0CglgdHlwZScgZmllbGQgaW4gdGhlIGhhc2ggZW50cnkgd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvIGZvbGxvdyBhCglsaW5rLgoKMjAwMS0wOC0yNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX3NvcnRfY21wMSk6IFNvcnQgUkVMQVRJVkUgcmVsb2NzIGZpcnN0LCBub3QKCWxhc3QuCgkoZWxmX2xpbmtfc29ydF9yZWxvY3MpOiBBZGp1c3QgYWNjb3JkaW5nbHkuCgoJKiBlbGY2NC1hbHBoYS5jIChzdHJ1Y3QgYWxwaGFfZWxmX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCByZWx0ZXh0IGZsYWcuCgkoZWxmNjRfYWxwaGFfY2hlY2tfcmVsb2NzKTogU2V0IGl0IGlmIHNlY3Rpb24gdGhpcyByZWxvYyBpcyBhZ2FpbnN0CglpcyByZWFkLW9ubHkuICBTZXQgREZfVEVYVFJFTCBpZiBhIFJFTEFUSVZFIHJlbG9jIGlzIG5lZWRlZCBhZ2FpbnN0CglyZWFkLW9ubHkgc2VjdGlvbi4KCShlbGY2NF9hbHBoYV9jYWxjX2R5bnJlbF9zaXplcyk6IFNldCBERl9URVhUUkVMIGZsYWcgaWYgcmVsb2NhdGlvbgoJaXMgaXMgYWdhaW5zdCByZWFkLW9ubHkgc2VjdGlvbi4KCShlbGY2NF9hbHBoYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgREZfVEVYVFJFTCBmbGFnLCBkb24ndAoJY2hlY2sgc2VjdGlvbiBuYW1lcy4KCShlbGY2NF9hbHBoYV9yZWxvY190eXBlX2NsYXNzKTogTmV3LgoJKGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MpOiBEZWZpbmUuCgoyMDAxLTA4LTI0ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogbGlua2VyLmMgKF9iZmRfZ2VuZXJpY19saW5rX2FkZF9hcmNoaXZlX3N5bWJvbHMpOiBSZXBsYWNlIGFsbG9jYSgpCglieSBiZmRfbWFsbG9jKCkuCgoyMDAxLTA4LTIzICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X2NoZWNrX3JlbG9jcyk6IFNldCBERl9URVhUUkVMIGlmCgl0aGUgcmVsb2MgaXMgYWdhaW5zdCByZWFkLW9ubHkgc2VjdGlvbi4KCShlbGY2NF94ODZfNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXNlIERGX1RFWFRSRUwgZmxhZyBpbnN0ZWFkCglvZiBsb29raW5nIHVwIHNlY3Rpb24gbmFtZXMgZm9yIERUX1RFWFRSRUwuCgkoZWxmNjRfeDg2XzY0X3JlbG9jX3R5cGVfY2xhc3MpOiBOZXcuCgkoZWxmX2JhY2tlbmRfcmVsb2NfdHlwZV9jbGFzcyk6IERlZmluZS4KCjIwMDEtMDgtMjMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHN5bXMuYyAoYmZkX3ByaW50X3N5bWJvbF92YW5kZik6IEFkZCBhYmZkIHRvIGFyZy4KCSogYmZkLWluMi5oIChiZmRfcHJpbnRfc3ltYm9sX3ZhbmRmKTogUmVnZW5lcmF0ZWQuCgoJKiBhb3V0eC5oIChOQU1FKGFvdXQscHJpbnRfc3ltYm9sKSk6IFBhc3MgYWJmZCB0bwoJYmZkX3ByaW50X3N5bWJvbF92YW5kZi4KCSogY29mZmdlbi5jIChjb2ZmX3ByaW50X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBlbGYuYyAoYmZkX2VsZl9wcmludF9zeW1ib2wpOiBMaWtld2lzZS4KCSogaWVlZS5jIChpZWVlX3ByaW50X3N5bWJvbCk6IExpa2V3aXNlLgoJKiBubG1jb2RlLmggKG5sbV9wcmludF9zeW1ib2wpOiBMaWtld2lzZS4KCSogb2FzeXMuYyAob2FzeXNfcHJpbnRfc3ltYm9sKTogTGlrZXdpc2UuCgkqIHBkcDExLmMgKE5BTUUoYW91dCxwcmludF9zeW1ib2wpKTogTGlrZXdpc2UuCgkqIHNvbS5jIChzb21fcHJpbnRfc3ltYm9sKTogTGlrZXdpc2UuCgkqIHNyZWMuYyAoc3JlY19wcmludF9zeW1ib2wpOiBMaWtld2lzZS4KCSogdGVraGV4LmMgKHRla2hleF9wcmludF9zeW1ib2wpOiBMaWtld2lzZS4KCSogdmVyc2Fkb3MuYyAodmVyc2Fkb3NfcHJpbnRfc3ltYm9sKTogTGlrZXdpc2UuCgkqIHZtcy5jICh2bXNfcHJpbnRfc3ltYm9sKTogTGlrZXdpc2UuCgoJKiBlbGYuYyAoX2JmZF9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IFJlcGxhY2UgZnByaW50Zl92bWEKCXdpdGggYmZkX2ZwcmludGZfdm1hLgoJKGJmZF9lbGZfcHJpbnRfc3ltYm9sKTogTGlrZXdpc2UuCgkqIHN5bXMuYyAoYmZkX3ByaW50X3N5bWJvbF92YW5kZik6IExpa2V3aXNlLgoKMjAwMS0wOC0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBhb3V0ZjEuaCAoc3Vub3Nfd3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogU2lsZW5jZSBjb21waWxlIHRpbWUKCXdhcm5pbmcuCgkqIGxpYmFvdXQuaCAoTl9TRVRfRFlOQU1JQyk6IFNpbGVuY2UgY29tcGlsZSB0aW1lIHdhcm5pbmcuCgoJKiBib3V0LmM6IEFkZCBtaXNzaW5nIGZ1bmN0aW9uIHByb3RvdHlwZXMuICBGaXggZm9ybWF0dGluZy4KCSogY29mZi16OGsuYzogQWRkIG1pc3NpbmcgZnVuY3Rpb24gcHJvdG90eXBlcy4gIEZpeCBmb3JtYXR0aW5nLgoJKiBjb2ZmLXc2NS5jOiBBZGQgbWlzc2luZyBmdW5jdGlvbiBwcm90b3R5cGVzLiAgRml4IGZvcm1hdHRpbmcuCgkqIGNvZmYtaDg1MDAuYzogQWRkIG1pc3NpbmcgZnVuY3Rpb24gcHJvdG90eXBlcy4gIEZpeCBmb3JtYXR0aW5nLgoJKiBjb2ZmLWg4MzAwLmM6IEFkZCBtaXNzaW5nIGZ1bmN0aW9uIHByb3RvdHlwZXMuICBGaXggZm9ybWF0dGluZy4KCSogY29mZi10aWM1NHguYzogQWRkIG1pc3NpbmcgZnVuY3Rpb24gcHJvdG90eXBlcy4gIEZpeCBmb3JtYXR0aW5nLgoJKiBjb2ZmLXRpYzMwLmM6IEFkZCBtaXNzaW5nIGZ1bmN0aW9uIHByb3RvdHlwZXMuICBGaXggZm9ybWF0dGluZy4KCSogY29mZi1tNjhrLmM6IEFkZCBtaXNzaW5nIGZ1bmN0aW9uIHByb3RvdHlwZXMuICBGaXggZm9ybWF0dGluZy4KCSogY29mZi1yczYwMDAuYzogQWRkIG1pc3NpbmcgZnVuY3Rpb24gcHJvdG90eXBlcy4gIEZpeCBmb3JtYXR0aW5nLgoJKiBjb2ZmLXNoLmM6IEFkZCBtaXNzaW5nIGZ1bmN0aW9uIHByb3RvdHlwZXMuICBGaXggZm9ybWF0dGluZy4KCjIwMDEtMDgtMjMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmLWJmZC5oIChlbnVtIGVsZl9yZWxvY190eXBlX2NsYXNzKTogTmV3LgoJKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogQWRkIGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MuCgkoX2JmZF9lbGZfcmVsb2NfdHlwZV9jbGFzcyk6IE5ldy4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MpOiBEZWZpbmUuCgkoZWxmTk5fYmVkKTogQWRkIGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MuCgkqIGVsZi5jIChfYmZkX2VsZl9yZWxvY190eXBlX2NsYXNzKTogTmV3LgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyk6IFNldCBERl9URVhUUkVMIGlmIHRoZSByZWxvYwoJaXMgYWdhaW5zdCByZWFkLW9ubHkgc2VjdGlvbi4KCShlbGZfaTM4Nl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgREZfVEVYVFJFTCBmbGFnIGluc3RlYWQgb2YKCWxvb2tpbmcgdXAgc2VjdGlvbiBuYW1lcyBmb3IgRFRfVEVYVFJFTC4KCShlbGZfaTM4Nl9yZWxvY190eXBlX2NsYXNzKTogTmV3LgoJKGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MpOiBEZWZpbmUuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX2NoZWNrX3JlbG9jcyk6IFNldCBERl9URVhUUkVMIGlmIHRoZQoJcmVsb2MgaXMgYWdhaW5zdCByZWFkLW9ubHkgc2VjdGlvbi4KCShlbGYzMl9zcGFyY19zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgREZfVEVYVFJFTCBmbGFnIGluc3RlYWQgb2YKCWxvb2tpbmcgdXAgc2VjdGlvbiBuYW1lcyBmb3IgRFRfVEVYVFJFTC4KCShlbGYzMl9zcGFyY19yZWxvY190eXBlX2NsYXNzKTogTmV3LgoJKGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MpOiBEZWZpbmUuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX2NoZWNrX3JlbG9jcyk6IFNldCBERl9URVhUUkVMIGlmIHRoZQoJcmVsb2MgaXMgYWdhaW5zdCByZWFkLW9ubHkgc2VjdGlvbi4KCShzcGFyYzY0X2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBVc2UgREZfVEVYVFJFTCBmbGFnIGluc3RlYWQgb2YKCWxvb2tpbmcgdXAgc2VjdGlvbiBuYW1lcyBmb3IgRFRfVEVYVFJFTC4KCShzcGFyYzY0X2VsZl9yZWxvY190eXBlX2NsYXNzKTogTmV3LgoJKGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MpOiBEZWZpbmUuCgkqIGVsZnh4LWlhNjQuYyAoc3RydWN0IGVsZk5OX2lhNjRfbGlua19oYXNoX3RhYmxlKTogQWRkIHJlbHRleHQgZmllbGQuCgkoZWxmTk5faWE2NF9oYXNoX3RhYmxlX2NyZWF0ZSk6IENsZWFyIGlhNjRfaW5mby4KCShnZXRfcmVsb2Nfc2VjdGlvbik6IFNldCBERl9URVhUUkVMIGlmIHRoZSByZWxvYyBpcyBhZ2FpbnN0IHJlYWQtb25seQoJc2VjdGlvbi4KCShlbGZOTl9pYTY0X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBpYTY0X2luZm8tPnJlbHRleHQgZmxhZwoJaW5zdGVhZCBvZiBsb29raW5nIHVwIHNlY3Rpb24gbmFtZXMgZm9yIERUX1RFWFRSRUwuCgkoZWxmTk5faWE2NF9yZWxvY190eXBlX2NsYXNzKTogTmV3LgoJKGVsZl9iYWNrZW5kX3JlbG9jX3R5cGVfY2xhc3MpOiBEZWZpbmUuCgkqIGVsZmxpbmsuaCAoc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQWRkIHNwYXJlIERUX05VTEwgdGFncy4KCShzdHJ1Y3QgZWxmX2xpbmtfc29ydF9yZWxhKTogTmV3LgoJKGVsZl9saW5rX3NvcnRfY21wMSwgZWxmX2xpbmtfc29ydF9jbXAyLCBlbGZfbGlua19zb3J0X3JlbG9jcyk6IE5ldy4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBDYWxsIGVsZl9saW5rX3NvcnRfcmVsb2NzLgoJQ29udmVydCBvbmUgc3BhcmUgRFRfTlVMTCBpbnRvIERUX1JFTENPVU5UIHJlc3AuIERUX1JFTEFDT1VOVCBpZgoJbmVjZXNzYXJ5LgoKMjAwMS0wOC0yMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuaW4gKHg4Ni1ic2RpKTogTm8gY29yZWZpbGUgc3VwcG9ydC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMS0wOC0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb2ZmLXN0Z28zMi5jIChDT0ZGX1NFQ1RJT05fQUxJR05NRU5UX0VOVFJJRVMpOiBBZGQgbWlzc2luZwoJY29tbWEuCgoyMDAxLTA4LTIxICBNYXJrIEVsYnJlY2h0ICA8c25vd2JhbGwzQGJpZ2Zvb3QuY29tPgoKCSogY29mZi1nbzMyLmM6IE1ha2UgRFdBUkYyIHNlY3Rpb25zIHVzZSBhbiBhbGlnbm1lbnQgb2YgMC4gIFNldAoJdGhlIGFsaWdubWVudCBvZiBkd2FyZjIgbGlua29uY2Ugc2VjdGlvbnMgdG8gMC4KCSogY29mZi1zdG8zMi5jOiBMaWtld2lzZS4KCjIwMDEtMDgtMjAgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGNvZmYtc3BhcmMuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogZWxmMzItczM5MC5jOiBMaWtld2lzZS4KCSogZWxmMzItaTk2MC5jOiBMaWtld2lzZS4KCSogYW91dC10YXJnZXQuaDogTGlrZXdpc2UuCgoyMDAxLTA4LTIwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYtYmZkLmggKGVsZl9vYmpfdGRhdGEpOiBBZGQgbnVtX3NlY3Rpb25fc3ltcy4KCShlbGZfbnVtX3NlY3Rpb25fc3ltcyk6IE5ldyBmb3IgbnVtX3NlY3Rpb25fc3ltcy4KCgkqIGVsZi5jIChlbGZfbWFwX3N5bWJvbHMpOiBTZXQgbnVtX3NlY3Rpb25fc3ltcy4KCShfYmZkX2VsZl9zeW1ib2xfZnJvbV9iZmRfc3ltYm9sKTogQ2hlY2sgbnVtX3NlY3Rpb25fc3ltcyBmb3IKCXRoZSBzZWN0aW9uIHN5bWJvbCBpbmRleC4KCjIwMDEtMDgtMjAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmeHgtdGFyZ2V0LmggKGJmZF9lbGZOTl9iZmRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IE5ldmVyCglzZWxlY3QgdGhlIGdlbmVyaWMgaGFzIHRhYmxlIGNyZWF0b3IuICBBbGwgZWxmIGJhY2tlbmRzIG5lZWQgZWxmCglzcGVjaWZpYyBmaWVsZHMgaW4gdGhlIGhhc2ggdGFibGUuCgoyMDAxLTA4LTIwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogYXJjaGl2ZS5jIChvZmZzZXRvZik6IFJlbW92ZSBkZWZpbmUuCgkqIGVsZi5jOiBMaWtld2lzZS4KCSogb2FzeXMuYzogTGlrZXdpc2UKCSogc3lzZGVwLmggKG9mZnNldG9mKTogRGVmaW5lLgoKMjAwMS0wOC0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGJmZC5jIChiZmRfZ2V0X2dwX3NpemUpOiBSZXR1cm4gYW4gdW5zaWduZWQgaW50LgoJKGJmZF9zZXRfZ3Bfc2l6ZSk6IE1ha2UgcGFyYW0gdW5zaWduZWQuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfYWRkX3N5bWJvbF9ob29rKTogVXNlIGVsZl9ncF9zaXplIHJhdGhlcgoJdGhhbiBjYWxsaW5nIGJmZF9nZXRfZ3Bfc2l6ZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfYWRkX3N5bWJvbF9ob29rKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9hZGRfc3ltYm9sX2hvb2spOiBMaWtld2lzZS4KCjIwMDEtMDgtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsaW5rZXIuYyAoZGVmYXVsdF9maWxsX2xpbmtfb3JkZXIpOiBIYW5kbGUgZm91ciBieXRlIGZpbGwgdmFsdWUuCgoyMDAxLTA4LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfb3V0cHV0X2FyY2hfc3ltcyk6IEFkZCBtaXNzaW5nCglwcm90b3R5cGUuCgkqIG5sbTMyLWFscGhhLmMgKG5sbV9hbHBoYV93cml0ZV9leHRlcm5hbCk6IEZpeCB3YXJuaW5nLgoKCSogZWxmNjQtbWlwcy5jIChVTlVTRURfUkVMT0MpOiBEZWZpbmUuCgkobWlwc19lbGY2NF9ob3d0b190YWJsZV9yZWwpOiBVc2UgaXQuCgkobWlwc19lbGY2NF9ob3d0b190YWJsZV9yZWxhKTogSGVyZSB0b28uCgkobWlwc19lbGY2NF93cml0ZV9yZWxvY3MpOiBGaXggc2lnbmVkL3Vuc2lnbmVkIHdhcm5pbmcuCgoJKiBjb2ZmY29kZS5oIChjb2ZmX3dyaXRlX29iamVjdF9jb250ZW50cyk6IEFkZCBBVFRSSUJVVEVfVU5VU0VEIHRvCglzaWxlbmNlIHdhcm5pbmcuCgkqIGNvZmZnZW4uYyAoY29mZl9wcmludF9zeW1ib2wpOiBGaXggd2FybmluZ3MuCgkoY29mZl9maW5kX25lYXJlc3RfbGluZSk6IExpa2V3aXNlLgoJKiBjb2ZmbGluay5jIChfYmZkX2NvZmZfbGlua19pbnB1dF9iZmQpOiBMaWtld2lzZS4KCSogY29mZi1hbHBoYS5jIChhbHBoYV9jb252ZXJ0X2V4dGVybmFsX3JlbG9jKTogTGlrZXdpc2UuCgkqIGZvcm1hdC5jIChiZmRfY2hlY2tfZm9ybWF0X21hdGNoZXMpOiBMaWtld2lzZS4KCShiZmRfc2V0X2Zvcm1hdCk6IExpa2V3aXNlLgoJKiBjb2ZmLWlhNjQuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCSogZWxmNjQtYWxwaGEuYyAoc3RydWN0IGFscGhhX2VsZl9saW5rX2hhc2hfZW50cnkpOiBNYWtlIGFkZGVuZAoJc2lnbmVkIHRvIHNpbGVuY2Ugd2FybmluZ3MuCgkoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX2ZpbmRfcmVsb2NfYXRfb2ZzKTogRml4IHdhcm5pbmdzLgoJKGVsZjY0X2FscGhhX2FkZF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX2ZpbmFsX2xpbmspOiBMaWtld2lzZS4KCShlbGY2NF9hbHBoYV9yZWxheF9zZWN0aW9uKTogUmVtb3ZlIHJlZHVuZGFudCBhc3NpZ24gdG8gaW5mby5nb3RlbnQuCgkoZWxmNjRfYWxwaGFfbWVyZ2VfZ290cyk6IEFkZCBBVFRSSUJVVEVfVU5VU0VEIHRvIHVudXNlZCBhcmdzLgoJKGVsZjY0X2FscGhhX3NpemVfZ290X3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCShlbGZOTl9pYTY0X3JlbG9jYXRlX3NlY3Rpb24pOiBGaXggd2FybmluZy4KCShlbGZOTl9pYTY0X3Vud2luZF9lbnRyeV9jb21wYXJlKTogTWFrZSBwYXJhbXMgY29uc3QuCgoyMDAxLTA4LTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnLmJmZCAodGFyZzY0X3NlbHZlY3MpOiBOZXcuCgk8cG93ZXJwYy0qLWFpeCogZW50cnk+OiBVc2UgaXQgaGVyZSBpbnN0ZWFkIG9mIGluZWZmZWN0dWFsICNpZmRlZi4KCgkqIGJmZC1pbi5oIChCRkRfVkVSU0lPTik6IFJlbW92ZSB3cm9uZyBjb21tZW50LgoJKEJGRF9ERUZBVUxUX1RBUkdFVF9TSVpFKTogTmV3LgoJKEJGRF9BUkNIX1NJWkUpOiBDb21tZW50LgoJKiBjb25maWd1cmUuaW4gKHRhcmdldF9zaXplKTogTmV3LiAgU2V0IGluc3RlYWQgb2YgdGFyZ2V0NjQgaW4KCXNlbHZlY3MgY2FzZSBzdGF0ZW1lbnQuICBTZXQgdGFyZ2V0NjQgZnJvbSBpdC4KCShiZmRfZGVmYXVsdF90YXJnZXRfc2l6ZSk6IE5ldy4gIFNldCBmcm9tIHRhZ2V0X3NpemUuIEFDX1NVQlNULgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDEtMDgtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBiZmQuYyAoZW51bSBiZmRfZXJyb3IpOiBBZGQgYmZkX2Vycm9yX3dyb25nX29iamVjdF9mb3JtYXQuCgkoYmZkX2Vycm1zZ3MpOiBBZGQgY29ycmVzcG9uZGluZyBtZXNzYWdlLgoJKiBhcmNoaXZlLmMgKGJmZF9nZW5lcmljX2FyY2hpdmVfcCk6IERvbid0IHJlbGVhc2UgYmZkX2FyZGF0YSB3aGVuCglmaW5kaW5nIGFuIGFyY2hpdmUgdGhhdCBjb250YWlucyBkaWZmZXJlbnQgZm9ybWF0IG9iamVjdCBmaWxlcy4KCVJldHVybiBiZmRfZXJyb3Jfd3Jvbmdfb2JqZWN0X2Zvcm1hdCBmb3IgdGhpcyBjYXNlLgoJKiBmb3JtYXQuYzogRm9ybWF0dGluZyBmaXhlcy4gIHMvQ09OU1QvY29uc3QvLgoJKGJmZF9jaGVja19mb3JtYXRfbWF0Y2hlcyk6IEFjY2VwdCBhcmNoaXZlcyB0aGF0IGdpdmUKCWJmZF9lcnJvcl93cm9uZ19vYmplY3RfZm9ybWF0IGlmIG5vIGZ1bGwgbWF0Y2ggaXMgZm91bmQuICBUaWR5Cgljb2RlIGhhbmRsaW5nIG1hdGNoaW5nX3ZlY3Rvci4gIERvbid0IHJldHVybiBhIHBvaW50ZXIgdG8gZnJlZWQKCW1lbW9yeSBpbiBgbWF0Y2hpbmcnLiAgSGFuZGxlIGFtYmlndW91cyBtYXRjaGVzIGFzIGZvciBwYXJ0aWFsCglhcmNoaXZlIG1hdGNoZXMuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDEtMDgtMTUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsaWJpZWVlLmggKGNvbW1vbl9oZWFkZXJfdHlwZSk6IEFkZCBsYXN0X2J5dGUgZmllbGQuCgoJKiBpZWVlLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuICBTb21lIGZvcm1hdCBmaXhlcy4KCShzdHJ1Y3Qgb3V0cHV0X2J1ZmZlcl9zdHJ1Y3QpOiBNb3ZlIGZvciBhdmFpbGFiaWxpdHkgdG8gcHJvdG90eXBlcy4KCShpZWVlX3BhcnRfYWZ0ZXIpOiBOZXcgZnVuY3Rpb24uCgkoaWVlZV9zbHVycF9kZWJ1Zyk6IFVzZSBpdCBoZXJlLgoJKGllZWVfc2Vlayk6IFBhc3MgaW4gaWVlZV9kYXRhX3N0cnVjdCByYXRoZXIgdGhhbiBiZmQuICBVc2UKCWllZWVfcGFydF9hZnRlciB0byBzZXQgbGFzdF9ieXRlIHRvIG9uZSBwYXN0IGVuZCBvZiBjdXJyZW50IHBhcnQuCglVcGRhdGUgY2FsbGVycy4KCShpZWVlX3Bvcyk6IFBhc3MgaW4gaWVlZV9kYXRhX3N0cnVjdCByYXRoZXIgdGhhbiBiZmQuCglVcGRhdGUgY2FsbGVycy4KCShwYXJzZV9leHByZXNzaW9uKTogRG9uJ3QgZ28gYmV5b25kIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgcGFydC4KCShpZWVlX3NsdXJwX2V4dGVybmFsX3N5bWJvbHMpOiBDb3JyZWN0IHR5cGUgcGFzc2VkIHRvIHJlYWRfMmJ5dGVzLgoJKGllZWVfZ2V0X3N5bXRhYl91cHBlcl9ib3VuZCwgaWVlZV9nZXRfc3ltdGFiLAoJaWVlZV9nZXRfc3ltYm9sX2luZm8sIGllZWVfcHJpbnRfc3ltYm9sLCBpZWVlX25ld19zZWN0aW9uX2hvb2ssCglpZWVlX2dldF9yZWxvY191cHBlcl9ib3VuZCwgaWVlZV9jYW5vbmljYWxpemVfcmVsb2MsIGJsb2NrLAoJaWVlZV9zZXRfc2VjdGlvbl9jb250ZW50cywgaWVlZV93cml0ZV9vYmplY3RfY29udGVudHMsCglpZWVlX21ha2VfZW1wdHlfc3ltYm9sKTogTWFrZSBzdGF0aWMuCgkoaWVlZV9hcmNoaXZlX3ApOiBDb3JyZWN0IGNvbW1lbnRzIHJlZ2FyZGluZyBiZmRfcmVhZC4KCShpZWVlX29iamVjdF9wKTogU2ltaWxhcmx5LgoJKGllZWVfbWtvYmplY3QpOiBNb3ZlIGl0LiAgQ2xlYXIgb3V0cHV0X3B0cl9zdGFydCwgb3V0cHV0X3B0ciwKCW91dHB1dF9wdHJfZW5kLCBpbnB1dF9wdHJfc3RhcnQsIGlucHV0X3B0ciwgaW5wdXRfcHRyX2VuZCwKCWlucHV0X2JmZCwgb3V0cHV0X2JmZCwgb3V0cHV0X2J1ZmZlci4KCShkb19hc19yZXBlYXQpOiBXcml0ZSBvdXQgaWVlZV9zZXRfY3VycmVudF9wY19lbnVtIHZhbHVlIGFzIGZvcgoJZG9fd2l0aF9yZWxvY3MsIGllLiBhcyBhIHN5bWJvbCBmb3IgcmVsb2NhdGFibGUgZmlsZXMuCgkoaWVlZV92ZWMpOiBBZGQgY29tbWVudHMgc2hvd2luZyBmdW5jdGlvbnMgcmVmZXJlbmNlZCBieSBtYWNyb3MuCgoyMDAxLTA4LTE0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGFvdXQtdGljMzAuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4gIEZpeCBmb3JtYXR0aW5nLgoJKiBhb3V0LW5zMzJrLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuICBGaXggZm9ybWF0dGluZy4KCSogcGVYWGlnZW4uYzogQWRkIG1pc3NpbmluZyBwcm90b3R5cGVzLiAgRml4IGZvcm1hdHRpbmcuCgkqIGFvdXQtYWRvYmUuYzogQWRkIG1pc3NpbmluZyBwcm90b3R5cGVzLiAgRml4IGZvcm1hdHRpbmcuCgoyMDAxLTA4LTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZjMyLXY4NTAuYzogQWRkIG1pc3NpbmcgZnVuY3Rpb24gcHJvdG90eXBlcy4KCUZpeCBzb21lIGZvcm1hdHRpbmcuCgoJKiBjcHUtdjg1MC5jOiBBZGQgbWlzc2luZyBmdW5jdGlvbiBwcm90b3R5cGUuCglGaXggc29tZSBmb3JtYXR0aW5nLgoKMjAwMS0wOC0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogQWRkIG5ldyBmaWVsZHMKCSdlbGZfYmFja2VuZF9zcHJpbnRmX3ZtYScgYW5kICdlbGZfYmFja2VuZF9mcHJpbnRmX3ZtYScuCgkoYmZkX2VsZl9zcHJpbnRmX3ZtYSk6IFJlbmFtZSBmdW5jdGlvbiBwcm90b3R5cGUgdG8KCSdfYmZkX2VsZl9zcHJpbnRmX3ZtYScuCgkoYmZkX2VsZl9mcHJpbnRmX3ZtYSk6IFJlbmFtZSBmdW5jdGlvbiBwcm90b3R5cGUgdG8KCSdfYmZkX2VsZl9mcHJpbnRmX3ZtYScuCgkqIGJmZC5jIChiZmRfc3ByaW50Zl92bWEpOiBEbyBub3QgaW52b2tlIGJmZF9lbGZfc3ByaW50Zl92bWEKCWRpcmVjdGx5LCBpbnN0ZWFkIGluZGlyZWN0IHZpYSB0aGUgZWxmX2JhY2tlbmRfZGF0YSBzdHJ1Y3R1cmUuCgkoYmZkX2ZwcmludGZfdm1hKTogRG8gbm90IGludm9rZSBiZmRfZWxmX2ZwcmludGZfdm1hIGRpcmVjdGx5LAoJaW5zdGVhZCBpbmRpcmVjdCB2aWEgdGhlIGVsZl9iYWNrZW5kX2RhdGEgc3RydWN0dXJlLgoJKiBlbGYuYyAoYmZkX2VsZl9zcHJpbnRmX3ZtYSk6IFJlbmFtZSB0byBfYmZkX2VsZl9zcHJpbnRmX3ZtYS4KCShiZmRfZWxmX2ZwcmludGZfdm1hKTogUmVuYW1lIHRvIF9iZmRfZWxmX2ZwcmludGZfdm1hLgoJKiBlbGZ4eC10YXJnZXQuaCAoZWxmX2JhY2tlbmRfc3ByaW50Zl92bWEpOiBJbml0aWFsaXNlIGlmIG5vdAoJYWxyZWFkeSBkZWZpbmVkLgoJKGVsZl9iYWNrZW5kX2ZwcmludGZfdm1hKTogSW5pdGlhbGlzZSBpZiBub3QgYWxyZWFkeSBkZWZpbmVkLgoJKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogSW5pdGlhbGlzZSB0aGUKCWVsZl9iYWNrZW5kX3NwcmludGZfdm1hIGFuZCBlbGZfYmFja2VuZF9mcHJpbnRmX3ZtYSBmaWVsZHMuCgoyMDAxLTA4LTEwICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGY2NC1zcGFyYy5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBlbGYzMi1jcmlzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1ocHBhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zMzkwLmM6IExpa2V3aXNlLgoKMjAwMS0wOC0xMCAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9lbGZfb2JqZWN0X3ApOiBNYWtlIHN0YXRpYy4KCUFkZCBwcm90b3R5cGVzIHdoZXJlIG5lZWRlZC4KCjIwMDEtMDgtMTAgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGJmZC5jIChiZmRfc3ByaW50Zl92bWEpOiBGaXggYSB0eXBvIGluIHRoZSBsYXN0IGNoYW5nZS4KCShiZmRfZnByaW50Zl92bWEpOiBMaWtld2lzZS4KCjIwMDEtMDgtMTAgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGJmZC5jIChiZmRfc3ByaW50Zl92bWEpOiBEb24ndCByZXR1cm4gdm9pZC4KCShiZmRfZnByaW50Zl92bWEpOiBMaWtld2lzZS4KCjIwMDEtMDgtMTAgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkIC1Xc3RyaWN0LXByb3RvdHlwZXMgYW5kIC1XbWlzc2luZy1wcm90b3R5cGVzCgl0byBidWlsZCB3YXJuaW5ncy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMS0wOC0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZi5jIChiZmRfZWxmX3NwcmludGZfdm1hKTogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gcXVpZXQKCXdhcm5pbmcgaWYgbm90IEJGRDY0LiAgQWRkIGJyYWNlcyBzbyBlbWFjcyBhdXRvIGZvcm1hdCB3b3Jrcy4KCShiZmRfZWxmX2ZwcmludGZfdm1hKTogTGlrZXdpc2UuCgoJKiBsaWJ4Y29mZi5oIChzdHJ1Y3QgeGNvZmZfYmFja2VuZF9kYXRhX3JlYyk6IENvbnN0aWZ5IHNyYyBwYXJhbQoJb2YgX3hjb2ZmX3N3YXBfbGQqLgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl9zd2FwX2xkaGRyX2luKTogTW9kaWZ5IHR5cGUgb2YgZXh0ZXJuYWwKCXBhcmFtIHRvIGFncmVlIHdpdGggbGlieGNvZmYuaC4KCSh4Y29mZl9zd2FwX2xkaGRyX291dCk6IExpa2V3aXNlLgoJKHhjb2ZmX3N3YXBfbGRzeW1faW4pOiBMaWtld2lzZS4KCSh4Y29mZl9zd2FwX2xkc3ltX291dCk6IExpa2V3aXNlLgoJKHhjb2ZmX3N3YXBfbGRyZWxfaW4pOiBMaWtld2lzZS4KCSh4Y29mZl9zd2FwX2xkcmVsX291dCk6IExpa2V3aXNlLgoJKHhjb2ZmX2NyZWF0ZV9jc2VjdF9mcm9tX3NtY2xhcyk6IExpa2V3aXNlLgoJKiBjb2ZmNjQtcnM2MDAwLmM6IEFkZCBtaXNzaW5nIHByb3RvdHlwZXMuCgkoeGNvZmY2NF9zd2FwX2xkaGRyX2luKTogTW9kaWZ5IHR5cGUgb2YgZXh0ZXJuYWwgcGFyYW0gdG8gYWdyZWUKCXdpdGggbGlieGNvZmYuaC4KCSh4Y29mZjY0X3N3YXBfbGRoZHJfb3V0KTogTGlrZXdpc2UuCgkoeGNvZmY2NF9zd2FwX2xkc3ltX2luKTogTGlrZXdpc2UuCgkoeGNvZmY2NF9zd2FwX2xkc3ltX291dCk6IExpa2V3aXNlLgoJKHhjb2ZmNjRfc3dhcF9sZHJlbF9pbik6IExpa2V3aXNlLgoJKHhjb2ZmNjRfc3dhcF9sZHJlbF9vdXQpOiBMaWtld2lzZS4KCSh4Y29mZjY0X3BwY19yZWxvY2F0ZV9zZWN0aW9uKTogTWFrZSBzdGF0aWMuCgkoeGNvZmY2NF9zbHVycF9hcm1hcCk6IExpa2V3aXNlLgoJKHhjb2ZmNjRfYXJjaGl2ZV9wKTogTGlrZXdpc2UuCgkoeGNvZmY2NF9vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUpOiBMaWtld2lzZS4KCSh4Y29mZjY0X3NpemVvZl9oZWFkZXJzKTogTGlrZXdpc2UuCgkoeGNvZmY2NF9pc19saW5lbm9fY291bnRfb3ZlcmZsb3cpOiBMaWtld2lzZS4KCSh4Y29mZjY0X2lzX3JlbG9jX2NvdW50X292ZXJmbG93KTogTGlrZXdpc2UuCgkoeGNvZmY2NF9sb2FkZXJfc3ltYm9sX29mZnNldCk6IExpa2V3aXNlLgoJKHhjb2ZmNjRfbG9hZGVyX3JlbG9jX29mZnNldCk6IExpa2V3aXNlLgoJKiBlbGY2NC1nZW4uYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCjIwMDEtMDgtMDkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZi5jIChiZmRfZWxmX3NwcmludGZfdm1hKTogQ2hlY2sgRUxGQ0xBU1M2NCBvbmx5IGluIEJGRDY0LgoJKGJmZF9lbGZfZnByaW50Zl92bWEpOiBMaWtld2lzZS4KCjIwMDEtMDgtMDkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGJmZC1pbi5oIChiZmRfZWxmX3NwcmludGZfdm1hLCBiZmRfZWxmX2ZwcmludGZfdm1hKTogTW92ZWQKCXRvIC4uLgoJKiBlbGYtYmZkLmg6IEhlcmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgoyMDAxLTA4LTA5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBiZmQtaW4uaCAoYmZkX3NwcmludGZfdm1hKTogTmV3IHByb3RvdHlwZS4KCShiZmRfZnByaW50Zl92bWEpOiBMaWtld2lzZS4KCShiZmRfZWxmX3NwcmludGZfdm1hKTogTGlrZXdpc2UuCgkoYmZkX2VsZl9mcHJpbnRmX3ZtYSk6IExpa2V3aXNlLgoJKGJmZF9wcmludGZfdm1hKTogTmV3LiBEZWZpbmVkIHdpdGggYmZkX2ZwcmludGZfdm1hLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGVkLgoKCSogYmZkLmMgKGJmZF9zcHJpbnRmX3ZtYSk6IE5ldy4gRGVmaW5lZC4KCShiZmRfZnByaW50Zl92bWEpOiBMaWtld2lzZS4KCgkqIGVsZi5jIChiZmRfZWxmX3NwcmludGZfdm1hKTogTmV3LiBEZWZpbmVkLgoJKGJmZF9lbGZfZnByaW50Zl92bWEpOiBMaWtld2lzZS4KCjIwMDEtMDgtMDkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb2ZmLXJzNjAwMC5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKHhjb2ZmX3BwY19yZWxvY2F0ZV9zZWN0aW9uLCB4Y29mZl9pc19saW5lbm9fY291bnRfb3ZlcmZsb3csCgl4Y29mZl9pc19yZWxvY19jb3VudF9vdmVyZmxvdywgeGNvZmZfbG9hZGVyX3N5bWJvbF9vZmZzZXQsCgl4Y29mZl9sb2FkZXJfcmVsb2Nfb2Zmc2V0KTogTWFrZSBzdGF0aWMuCgkqIGR3YXJmMS5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBkd2FyZjIuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCShzdHJ1Y3QgYWJicmV2X2luZm8pOiBNb3ZlIGRlZmluaXRpb24uCgkoc3RydWN0IGF0dHJfYWJicmV2LCBBQkJSRVZfSEFTSF9TSVpFLCBBVFRSX0FMTE9DX0NIVU5LKTogTGlrZXdpc2UuCgkqIGVsZi5jOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLgoJKiBlbGYzMi1nZW4uYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4KCShwcGNfZWxmX3NvcnRfcmVsYSk6IFVzZSBQVFIgaW5zdGVhZCBvZiAidm9pZCAqIi4KCSogZWxmbGluay5oOiBBZGQgbWlzc2luZyBwcm90b3R5cGVzLiAgRm9ybWF0dGluZyBmaXhlcy4KCSogbWVyZ2UuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCShsYXN0NF9lcSk6IFVzZSBQVFIgaW5zdGVhZCBvZiAidm9pZCAqIi4KCShsYXN0X2VxKTogTGlrZXdpc2UuCgkqIHN5bXMuYzogQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4KCjIwMDEtMDgtMDkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogYmZkLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAxLTA4LTA5ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFyYy5jIChSX0FSQ19CMjJfUENSRUwpOiBDaGFuZ2UgJ3BhcnRpYWxfaW5wbGFjZScgdG8KCXRydWUgKHRoaXMgdGFyZ2V0IHVzZXMgUkVMIHJlbG9jYXRpb25zKSBhbmQgJ3BjcmVsX29mZnNldCcgdG8KCWZhbHNlICh0aGUgUEMgaXMgaW1wbGllZCwgbm90IHN0b3JlZCBpbiB0aGUgb2Zmc2V0KS4KCjIwMDEtMDgtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJMTk5OS0xMC0xOSAgTGludXMgTm9yZGJlcmcgIDxsaW51c0Bzd294LnNlPgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogQWRkIHdhbnRfZ290X3N5bS4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX3dhbnRfZ290X3N5bSk6IERlZmluZS4KCShlbGZOTl9iZWQpOiBBZGQgZWxmX2JhY2tlbmRfd2FudF9nb3Rfc3ltLgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IERlZmluZQoJX0dMT0JBTF9PRkZTRVRfVEFCTEVfIG9ubHkgaWYgYmVkLT53YW50X2dvdF9zeW0uCgoyMDAxLTA4LTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGR3YXJmMi5jIChzdHJ1Y3QgZHdhcmYyX2RlYnVnKTogQWRkIHNlYywgc2VjX2luZm9fcHRyIGFuZCBzeW1zLgoJKGZpbmRfcmVsYV9hZGRlbmQpOiBOZXcgZnVuY3Rpb24uCgkocGFyc2VfY29tcF91bml0KTogQ2FsbCBpdCB0byBmaW5kIHRoZSBhYmJyZXYgb2Zmc2V0IGFkZGVuZC4KCShfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZSk6IEluaXRpYWxpemUgYW5kIG1haW50YWluIHRoZSBuZXcKCW1lbWJlcnMgb2YgZHdhcmYyX2RlYnVnIGFzIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBpcyByZWFkLgoKMjAwMS0wOC0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb2ZmLXNoLmMgKHNoX2NvZmZfcmVsb2NfdHlwZV9sb29rdXApOiBQcm92aWRlIGZvciBzaC1jb2ZmCgl0YXJnZXRzIGFzIHdlbGwgYXMgc2gtcGUuCgoyMDAxLTA4LTAzICBCZW4gSGFycmlzIDxiamgyMUBuZXRic2Qub3JnPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9maW5hbF9saW5rX3JlbG9jYXRlKTogSW5jbHVkZSBvZmZzZXQgb2YKCXJlbG9jIGZyb20gc3RhcnQgb2Ygc2VjdGlvbiB3aGVuIGNvbXB1dGluZyB2YWx1ZSBmb3IgUl9BUk1fUkVMMzIKCXJlbG9jLgoKMjAwMS0wOC0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglGcm9tICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgkqIGVsZjMyLWkzODYuYyAoYWxsb2NhdGVfcGx0X2FuZF9nb3RfYW5kX2Rpc2NhcmRfcmVsb2NzKTogRG9uJ3QKCWtlZXAgcmVsb2NzIGZvciB1bmRlZmluZWQgc3ltcyBpZiB0aGVyZSBhcmUgbm8gZHluYW1pYyBzZWN0aW9ucyBpbgoJZXhlY3V0YWJsZS4KCSogZWxmMzItaHBwYS5jIChhbGxvY2F0ZV9wbHRfYW5kX2dvdF9hbmRfZGlzY2FyZF9yZWxvY3MpOiBMaWtld2lzZS4KCjIwMDEtMDgtMDIgIFBhdWwgU29rb2xvdnNreSAgPHBhdWwuc29rb2xvdnNreUB0ZWNobm9sb2dpc3QuY29tPgoKCSogY29mZmxpbmsuYyAoY29mZl9saW5rX2NoZWNrX2FyX3N5bWJvbHMpOiBhbHNvIHNlYXJjaCBmb3IKCV9faW1wX19zeW1ib2wgYXMgd2VsbCBhcyBfc3ltYm9sLgoJKiBsaW5rZXIuYyAoX2JmZF9nZW5lcmljX2xpbmtfYWRkX2FyY2hpdmVfc3ltYm9scyk6IGFsc28KCXNlYXJjaCBmb3IgX19pbXBfX3N5bWJvbCBhcyB3ZWxsIGFzIF9zeW1ib2wuCgoyMDAxLTA4LTAxICBBZGFtIE5lbWV0ICA8YW5lbWV0QGxueHcuY29tPgoKCSogZWxmLmMgKGVsZl9zb3J0X3NlY3Rpb25zKTogUmV0dXJuIHplcm8gb25seSBhcyB0aGUgbGFzdCBzdGVwLgoKMjAwMS0wOC0wMSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBjb25maWcuYmZkIChhcm0tdnh3b3Jrcyk6IENoYW5nZSBuYW1lIG9mIGRlZmluZSBmcm9tIFZYV09SS1MgdG8KCUFSTV9DT0ZGX0JVR0ZJWC4KCShhcm0tZXBvYy1wZSk6IERlZmluZSBBUk1fQ09GRl9CVUdGSVguCgljb2ZmLWFybS5jIChjb2ZmX2FybV9yZWxvY2F0ZV9zZWN0aW9uKTogUmVwbGFjZSBWWFdPUktTIHdpdGgKCUFSTV9DT0ZGX0JVR0ZJWC4KCjIwMDEtMDctMzAgIFJhaW5lciBPcnRoICA8cm9AVGVjaEZhay5VbmktQmllbGVmZWxkLkRFPgoKCSogbGliZWNvZmYuaCAoX2JmZF9lY29mZl9zdHlwX3RvX3NlY19mbGFncyk6IENoYW5nZWQgcmV0dXJuIHR5cGUKCXRvIG1hdGNoIGNvcnJlc3BvbmRpbmcgYmZkX2NvZmZfYmFja2VuZCBkYXRhIG1lbWJlci4KCjIwMDEtMDctMjQgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbTogVXBkYXRlIGRlcGVuZGVuY2llcyB3aXRoICJtYWtlIGRlcC1hbSIuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlCgoyMDAxLTA3LTE1ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBNYWtlZmlsZS5hbSAocG8vU1JDLVBPVEZJTEVTLmluKTogVXNlIHRtcC5zcmMgaW5zdGVhZCBvZiB0bXAuCgkocG8vQkxELVBPVEZJTEVTLmluKTogVXNlIHRtcC5ibGQgaW5zdGVhZCBvZiB0bXAuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMS0wNy0xMSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfY2hlY2tfcmVsb2NzKTogU2V0IHRoZSBBTExPQ3xMT0FECglmbGFncyB3aGVuIGNyZWF0aW5nIHRoZSByZWxvYyBzZWN0aW9uIGlmIHRoZSBBTExPQyBmbGFnIGluIHRoZQoJc291cmNlIHNlY3Rpb24gaXMgc2V0LgoKMjAwMS0wNy0xMSAgU3RldmUgRWxsY2V5ICA8c2plQGN1cC5ocC5jb20+CgoJKiByZWxvYy5jIChiZmRfcmVsb2NfY29kZV90eXBlKTogQWRkIElBNjQgcmVsb2NzCglCRkRfUkVMT0NfSUE2NF9MVE9GRl9GUFRSMzJNU0IgYW5kIEJGRF9SRUxPQ19JQTY0X0xUT0ZGX0ZQVFIzMkxTQgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBlbGZ4eC1pYTY0LmMgKGlhNjRfaG93dG9fdGFibGUpOiBEZWZpbmUgaG93IHRvIGhhbmRsZQoJbmV3IHJlbG9jYXRpb25zLgoJKGVsZk5OX2lhNjRfcmVsb2NfdHlwZV9sb29rdXApOiBIYW5kbGUgbmV3IHJlbG9jYXRpb25zLgoJKGVsZk5OX2lhNjRfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmTk5faWE2NF9pbnN0YWxsX3ZhbHVlKTogTGlrZXdpc2UuCgkoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAxLTA3LTExICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNwYXJjLmMgKF9iZmRfc3BhcmNfZWxmX2hvd3RvX3RhYmxlKTogUmVtb3ZlIHN1cHBvcnQgZm9yCglSX1NQQVJDX1VBNjQuCgkoZWxmMzJfc3BhcmNfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCglPbmx5IGNyZWF0ZSAucmVsYSBzZWN0aW9uIGZvciBhbGxvY2VkIHNlY3Rpb25zIGluIHNoYXJlZCBsaWJyYXJpZXMuCgkoZWxmMzJfc3BhcmNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJUmVtb3ZlIHJlZHVuZGFudCBjaGVjay4KCU9wdGltaXplIHVuYWxpZ25lZCByZWxvYyB1c2FnZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFJlbW92ZSByZWR1bmRhbnQKCWNoZWNrLgoKMjAwMS0wNy0xMSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfY2hlY2tfcmVsb2NzKTogT25seSB1c2UgdGhlIHNhbWUKCUFMTE9DfExPQUQgZmxhZ3MgYXMgdGhlIHNvdXJjZSBzZWN0aW9uIGZvciBkZWJ1Z2dpbmcgc2VjdGlvbnMKCXdoZW4gY3JlYXRpbmcgdGhlIHJlbG9jIHNlY3Rpb24uCgoyMDAxLTA3LTA1ICBKaW0gV2lsc29uICA8d2lsc29uQHJlZGhhdC5jb20+CgoJKiBsaW5rZXIuYyAoX2JmZF9nZW5lcmljX2xpbmtfYWRkX29uZV9zeW1ib2wsIGNhc2UgQklHKTogVXNlCgl0aGUgc2VjdGlvbiBvZiB0aGUgYmlnZ2VyIHN5bWJvbC4KCgkqIHN5bXMuYyAoYmZkX2lzX2xvY2FsX2xhYmVsKTogUmV0dXJuIGZhbHNlIGlmIEJTRl9TRUNUSU9OX1NZTS4KCjIwMDEtMDctMDUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogcGVpY29kZS5oIChjb2ZmX3N3YXBfc2NuaGRyX2luKTogRm9yIHNlY3Rpb25zIGNvbnRhaW5pbmcKCXVuaW5pdGlhbGlzZWQgZGF0YSwgb25seSBzZXQgdGhlaXIgc2l6ZSB0byBzX3BhZGRyIGlmIHRoaXMgZG9lcwoJbm90IHJlc2V0IHRoZWlyIHNpemUgdG8gemVyby4gIE1TJ3MgbGF0ZXN0IGNvbXBpbGVycyB3aWxsIHNldAoJc19wYWRkciB0byB6ZXJvLgoKMjAwMS0wNy0wNCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOgoJSGFuZGxlIGJmZF9tYWNoX21pcHM0NDAwLCBiZmRfbWFjaF9taXBzNDYwMCBhbmQKCWJmZF9tYWNoX21pcHM1MDAwLgoKMjAwMS0wNy0wMyAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0Bzb2Z0aG9tZS5uZXQ+CgoJKiBiZmQuYyAoYmZkX2dldF9zaWduX2V4dGVuZF92bWEpOiBTdXBwb3J0IERKR1BQIENPRkYgdGFyZ2V0cy4KCgkqIGNvZmZsaW5rLmMgKF9iZmRfY29mZl9saW5rX2lucHV0X2JmZCk6IFNraXAgc2VjdGlvbiBzeW1ib2xzIGZyb20KCXNlY3Rpb25zIGJlaW5nIGRpc2NhcmRlZC4KCjIwMDEtMDYtMzAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbGZjb3JlLmggKGVsZl9jb3JlX2ZpbGVfcCk6IENhbGwgYmZkX3NlY3Rpb25fZnJvbV9waGRyIGRpcmVjdGx5CglpbnN0ZWFkIG9mIF9iZmRfZWxmY29yZV9zZWN0aW9uX2Zyb21fcGhkci4KCSogZWxmLWJmZC5oIChfYmZkX2VsZmNvcmVfc2VjdGlvbl9mcm9tX3BoZHIpOiBSZW1vdmUuCgkqIGVsZi5jIChfYmZkX2VsZmNvcmVfc2VjdGlvbl9mcm9tX3BoZHIpOiBSZW1vdmUuCgkoX2JmZF9lbGZjb3JlX21ha2VfcHNldWRvc2VjdGlvbik6IEV4cGVkaXRlIHRhaWwtY2FsbC4KCShlbGZjb3JlX2dyb2tfcHJzdGF0dXMpOiBMaWtld2lzZS4KCShlbGZjb3JlX2dyb2tfbHdwc3RhdHVzKTogTGlrZXdpc2UuCgkoYmZkX2dldF9lbGZfcGhkcl91cHBlcl9ib3VuZCk6IExpa2V3aXNlLgoJKGVsZmNvcmVfbWFrZV9ub3RlX3BzZXVkb3NlY3Rpb24pOiBGb3JtYXR0aW5nLgoJKF9iZmRfZWxmY29yZV9zdHJuZHVwKTogRm9ybWF0dGluZy4KCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9zeW1faXNfZ2xvYmFsKTogRm9ybWF0dGluZy4KCShfYmZkX2VsZjMyX21pcHNfZ3Jva19wcnN0YXR1cyk6IEV4cGVkaXRlIHRhaWwtY2FsbC4KCjIwMDEtMDYtMjkgIERhbmllbCBKYWNvYm93aXR6ICA8ZHJvd0BtdmlzdGEuY29tPgoKCSogZWxmLWJmZC5oOiBBZGQgcHJvdG90eXBlcyBmb3IgX2JmZF9lbGZjb3JlX21ha2VfcHNldWRvc2VjdGlvbgoJYW5kIF9iZmRfZWxmY29yZV9zdHJuZHVwLgoJKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogQWRkIGVsZl9iYWNrZW5kX2dyb2tfcHJzdGF0dXMKCWFuZCBlbGZfYmFja2VuZF9ncm9rX3BzaW5mby4KCSogZWxmLmMgKF9iZmRfZWxmY29yZV9tYWtlX3BzZXVkb3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24uCgkoZWxmY29yZV9ncm9rX3Byc3RhdHVzKTogVXNlIGl0LgoJKGVsZmNvcmVfbWFrZV9ub3RlX3BzZXVkb3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGZjb3JlX3N0cm5kdXApOiAgUmVuYW1lIHRvLi4uCgkoX2JmZF9lbGZjb3JlX3N0cm5kdXApOiBIZXJlLCBhbmQgbWFrZSBnbG9iYWwuCgkoZWxmY29yZV9ncm9rX3BzaW5mbyk6IFVzZSBfYmZkX2VsZmNvcmVfc3RybmR1cC4KCShlbGZjb3JlX2dyb2tfbm90ZSk6IENhbGwgZWxmX2JhY2tlbmRfZ3Jva19wcnN0YXR1cwoJYW5kIGVsZl9iYWNrZW5kX2dyb2tfcHNpbmZvIGlmIGF2YWlsYWJsZS4KCSogZWxmMzItbWlwcy5jIChfYmZkX2VsZjMyX21pcHNfZ3Jva19wcnN0YXR1cyk6IE5ldyBmdW5jdGlvbi4KCShfYmZkX2VsZjMyX21pcHNfZ3Jva19wc2luZm8pOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfZ3Jva19wcnN0YXR1cyk6IERlZmluZS4KCShlbGZfYmFja2VuZF9ncm9rX3BzaW5mbyk6IERlZmluZS4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX2dyb2tfcHJzdGF0dXMpOiBEZWZhdWx0IHRvIE5VTEwuCgkoZWxmX2JhY2tlbmRfZ3Jva19wc2luZm8pOiBMaWtld2lzZS4KCShlbGZOTl9iZWQpOiBJbmNsdWRlIGVsZl9iYWNrZW5kX2dyb2tfcHJzdGF0dXMgYW5kCgllbGZfYmFja2VuZF9ncm9rX3BzaW5mby4KCjIwMDEtMDYtMjkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IENoZWNrIGlmCglocGxpbmstPnNnb3QgaXMgTlVMTCBiZWZvcmUgZmlsbGluZyBHT1QuICBDaGVjayBpZiBocGxpbmstPnNwbHQKCWlzIE5VTEwgYmVmb3JlIGZpbGxpbmcgUExULgoKMjAwMS0wNi0yOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IFJldmVydCAxOTk5LTA0LTEwLgoKMjAwMS0wNi0yNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBEb24ndCBtYWtlIHN5bXMgZHluYW1pYwoJaGVyZS4uCgkoZWxmMzJfaHBwYV9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiAuLm5vciBoZXJlLi4KCShhbGxvY2F0ZV9wbHRfYW5kX2dvdF9hbmRfZGlzY2FyZF9yZWxvY3MpOiAuLiBpbnN0ZWFkIGRvIHNvIGhlcmUKCWFmdGVyIGdjIGhhcyBydW4uCgoJKiBlbGYzMi1ocHBhLmMgKFJFTEFUSVZFX0RZTkFNSUNfUkVMT0NTKTogRGVsZXRlLgoJKElTX0FCU09MVVRFX1JFTE9DKTogRGVmaW5lLgoJKGVsZjMyX2hwcGFfbGlua19oYXNoX2VudHJ5KTogQWx3YXlzIGluY2x1ZGUgcmVsb2NfZW50cmllcyBmaWVsZC4KCShocHBhX2xpbmtfaGFzaF9uZXdmdW5jKTogQWx3YXlzIGluaXQgaXQuCgkoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBNYXJrIHN5bWJvbHMgYXMgRUxGX0xJTktfTk9OX0dPVF9SRUYgdG8KCWNyZWF0ZSBDT1BZIHJlbG9jcyBvbmx5IHdoZW4gdGhlIHJlbG9jIGlzIGluIGEgcmVhZC1vbmx5IHNlY3Rpb24uCglJbnN0ZWFkLCBhbGxvY2F0ZSBzcGFjZSBmb3IgYSBkeW5hbWljIHJlbG9jIHRvIHJlZmVyZW5jZSB0aGUKCWxpYnJhcnkgc3ltYm9sIGRpcmVjdGx5LiAgS2VlcCB0cmFjayBvZiBzcGFjZSB3ZSBhbGxvY2F0ZSB1c2luZwoJcmVsb2NzX2VudHJpZXMuCgkoaHBwYV9kaXNjYXJkX2NvcGllcyk6IERlbGV0ZSwgYW5kIG1vdmUgY29kZSB0by4uCgkoYWxsb2NhdGVfcGx0X2FuZF9nb3QpOiAuLmhlcmUuICBSZW5hbWUgdG8KCWFsbG9jYXRlX3BsdF9hbmRfZ290X2FuZF9kaXNjYXJkX3JlbG9jcy4gIFJlbW92ZSB1bm5lZWRlZCBkeW5hbWljCglyZWxvY3MgZm9yIG5vbi1zaGFyZWQgbGluay4KCShlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVwZGF0ZSBjYWxscyB0byBhYm92ZS4KCShlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBXcml0ZSBvdXQgdGhlIGR5bmFtaWMgcmVsb2NzIHVzZWQKCWluIGxpZXUgb2YgQ09QWSByZWxvY3MuCgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyk6IERvbid0IG1ha2Ugc3ltcyBkeW5hbWljCgloZXJlLi4KCShlbGZfaTM4Nl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiAuLm5vciBoZXJlLi4KCShhbGxvY2F0ZV9wbHRfYW5kX2dvdF9hbmRfZGlzY2FyZF9yZWxvY3MpOiAuLiBpbnN0ZWFkIGRvIHNvIGhlcmUKCWFmdGVyIGdjIGhhcyBydW4uCgkoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRml4IGEgY29tbWVudC4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uIDxSXzM4Nl8zMiwgUl8zODZfUEMzMj4pOiBSZWFycmFuZ2UgY29kZQoJaW52b2x2ZWQgaW4gd3JpdGluZyByZWxvYyBvdXQuCgoyMDAxLTA2LTI1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9jaGVja19yZWxvY3MgPFJfMzg2XzMyLCBSXzM4Nl9QQzMyPik6CglFbnN1cmUgc3ltcyBhcmUgZHluYW1pYyBpZiB3ZSBtaWdodCBiZSBlbWl0dGluZyBhIHJlbG9jLgoJKGFsbG9jYXRlX3BsdF9hbmRfZ290X2FuZF9kaXNjYXJkX3JlbG9jcyk6IERvbid0IGRpc2NhcmQgcmVsb2NzCglmb3IgdW5kZWZ3ZWFrIG9yIHVuZGVmaW5lZCBzeW1zLi4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uIDxSXzM4Nl8zMiwgUl8zODZfUEMzMj4pOiAuLiBhbmQgZW1pdC4KCgkqIGVsZjMyLWkzODYuYyAoYWxsb2NhdGVfcGx0X2FuZF9nb3RfYW5kX2Rpc2NhcmRfcmVsb2NzKTogRGlzY2FyZAoJcmVsb2NzIHdpdGhvdXQgRUxGX0xJTktfSEFTSF9ERUZfRFlOQU1JQyBzZXQuCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbiA8Ul8zODZfMzIsIFJfMzg2X1BDMzI+KTogUmVtb3ZlCglyZWR1bmRhbnQgYmZkX2xpbmtfaGFzaF9kZWZpbmVkLCBiZmRfbGlua19oYXNoX2RlZndlYWsgdGVzdC4KCjIwMDEtMDYtMjQgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNwdS1pOTYwLmMgKHNjYW5fOTYwX21hY2gpOiBEb24ndCBtb2RpZnkgY29uc3QgY2hhciAqLiBVc2UKCXN0cm5jYXNlY21wL3N0cmNhc2VjbXAgaW5zdGVhZCBvZiBzdHJuY21wL3N0cmNtcC4KCjIwMDEtMDYtMjMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbiA8Ul8zODZfMzIsIFJfMzg2X1BDMzI+KToKCUNoZWNrIEVMRl9MSU5LX0hBU0hfREVGX0RZTkFNSUMgdG8gc2VlIGlmIGEgc3ltYm9sIGlzIG5vdCBkZWZpbmVkCglpbiB0aGUgcmVndWxhciBvYmplY3QgZmlsZSBhbmQgdHJlYXQgdGhlIHdlYWsgZGVmaW5pdGlvbiBhcwoJdGhlIG5vcm1hbCBvbmUuCgoyMDAxLTA2LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uIDxSXzM4Nl9HT1QzMj4pOiBUaWdodGVuCgl1bnJlc29sdmVkX3JlbG9jIHRlc3QgdG8gZXhjbHVkZSBjYXNlcyB3aGVyZSB3ZSB1c2UgInJlbG9jYXRpb24iCgliZWZvcmUgc2V0dGluZyBpdCB0byBwb2ludCBpbnRvIHRoZSAuZ290LiAgUmVpbnN0YXRlIGZ1ZGdlIGZvcgoJdW5yZXNvbHZlZCByZWxvY3MgaW4gZGVidWdnaW5nIHNlY3Rpb25zLgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVwbGFjZSB1Z2x5Cgljb21wbGljYXRlZCB0ZXN0cyBmb3IgdW5yZXNvbHZhYmxlIHJlbG9jcyB3aXRoIGEgc2ltcGxlIGRpcmVjdAoJc2NoZW1lIHVzaW5nICJ1bnJlc29sdmVkX3JlbG9jIiB2YXIuCgoJKiBlbGYzMi1pMzg2LmMgKHN0cnVjdCBlbGZfaTM4Nl9wY3JlbF9yZWxvY3NfY29waWVkKTogUmVuYW1lIHRvCgllbGZfaTM4Nl9keW5fcmVsb2NzLiAgVXBkYXRlIGNvbW1lbnQuCgkoc3RydWN0IGVsZl9pMzg2X2xpbmtfaGFzaF9lbnRyeSk6IFJlbmFtZSBwY3JlbF9yZWxvY3NfY29waWVkIHRvCglkeW5fcmVsb2NzLgoJKGVsZl9pMzg2X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFJlbW92ZSBhIEJGRF9BU1NFUlQsIGNoYW5nZQoJb3RoZXJzIHRvIGFib3J0cy4KCShhbGxvY2F0ZV9wbHRfYW5kX2dvdF9hbmRfZGlzY2FyZF9yZWxvY3MpOiBSZXBsYWNlIEJGRF9BU1NFUlQgd2l0aAoJYWJvcnQuCgkoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuICBUaWR5IFJfMzg2X0dPVDMyIGFuZCBlcnJvcgoJaGFuZGxpbmcgY29kZS4KCglBdm9pZCBjcmVhdGluZyBDT1BZIHJlbG9jcyBpZiBwb3NzaWJsZS4KCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBUd2VhayBjb25kaXRpb24gdW5kZXIKCXdoaWNoIC5nb3QgY3JlYXRlZC4gIE1hcmsgc3ltYm9scyB1c2VkIGJ5IFJfMzg2XzMyIGFuZCBSXzM4Nl9QQzMyCglyZWxvY3MgYXMgRUxGX0xJTktfTk9OX0dPVF9SRUYgdG8gY3JlYXRlIENPUFkgcmVsb2NzIG9ubHkgd2hlbiB0aGUKCXJlbG9jIGlzIGluIGEgcmVhZC1vbmx5IHNlY3Rpb24uICBJbnN0ZWFkLCBhbGxvY2F0ZSBzcGFjZSBmb3IgYQoJZHluYW1pYyByZWxvYyB0byByZWZlcmVuY2UgdGhlIGxpYnJhcnkgc3ltYm9sIGRpcmVjdGx5LiAgS2VlcAoJdHJhY2sgb2Ygc3BhY2Ugd2UgYWxsb2NhdGUgdXNpbmcgcGNyZWxfcmVsb2NzX2NvcGllZC4KCShkaXNjYXJkX2NvcGllcyk6IERlbGV0ZSwgYW5kIG1vdmUgY29kZSB0byAuLgoJKGFsbG9jYXRlX3BsdF9hbmRfZ290KTogLi5oZXJlLiAgUmVuYW1lIHRvCglhbGxvY2F0ZV9wbHRfYW5kX2dvdF9hbmRfZGlzY2FyZF9yZWxvY3MuICBSZW1vdmUgdW5uZWVkZWQgZHluYW1pYwoJcmVsb2NzIGZvciBub24tc2hhcmVkIGxpbmsuCgkoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXBkYXRlIGNhbGxzIHRvIGFib3ZlIGZ1bmN0aW9ucy4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogV3JpdGUgb3V0IHRoZSBkeW5hbWljIHJlbG9jcy4gIEFkZAoJbW9yZSB1Z2x5IGxvZ2ljIHRvIGF2b2lkICJ1bnJlc29sdmFibGUgcmVsb2NhdGlvbiIgZXJyb3IuICBVc2UKCWh0YWIgc2hvcnRjdXQgaW4gcGxhY2Ugb2YgZWxmX2hhc2hfdGFibGUgbWFjcm8uCgkoZWxmX2kzODZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBBbGxvdyB0aGF0IGR5bmFtaWMgLmdvdCBtYXkKCW5vdCBhbHdheXMgYmUgY3JlYXRlZCBub3cuCgoyMDAxLTA2LTIwICBCbyBUaG9yc2VuICA8Ym9Ac3VzZS5jby51az4KCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IEZpeCBsaW5raW5nIG9mCglzaGFyZWQgbGlicmFyaWVzLgoKMjAwMS0wNi0xOCAgVGhpZW1vIFNldWZlciA8c2V1ZmVyQGNzdi5pY2EudW5pLXN0dXR0Z2FydC5kZT4KCgkqIGNvbmZpZ3VyZS5ob3N0IChtaXBzNjQtKi1saW51eCk6IFJlZm9ybWF0LgoKMjAwMS0wNi0yMSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBBbHdheXMKCWFsbG9jYXRlIGxvY2FsIC5nb3Qgc3BhY2UuICBVc2Ugc2hvcnRjdXRzIGZyb20gaGFzaCB0YWJsZSBmb3IgLmdvdAoJYW5kIC5wbHQgcmF0aGVyIHRoYW4gY29tcGFyaW5nIHNlY3Rpb24gbmFtZXMuCgkoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBVc2UgbG9jYWxfcGx0X3JlZmNvdW50cyB2YXIgcmF0aGVyIHRoYW4KCWFkanVzdGluZyBpbmRleCBpbnRvIGxvY2FsX2dvdF9yZWZjb3VudHMgdG8gZG9jdW1lbnQgd2hhdCB3ZSBhcmUKCXJlYWxseSBkb2luZy4KCShlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBTaW1pbGFybHkgZm9yIGxvY2FsX3BsdF9vZmZzZXRzLgoJVGlkeSAuZ290IGFuZCAucGx0IGVycm9yIGNoZWNraW5nLgoKMjAwMS0wNi0yMCAgQ2F0aGVyaW5lIE1vb3JlICA8Y2xtQHJlZGhhdC5jb20+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKToKCWVsZl9iYWNrZW5kX2VtaXRfcmVsb2NzOiBOZXcgZmllbGQ6IEZ1bmN0aW9uIGZvciBlbWl0dGluZwoJcmVsb2NzLgoJZWxmX2JhY2tlbmRfY291bnRfcmVsb2NzOiBOZXcgZmllbGQ6IEZ1bmN0aW9uIGZvciBkZXRlcm1pbmluZwoJdGhlIG51bWJlciBvZiByZWxvY3MgdG8gYmUgZW1pdHRlZC4KCSogZWxmeHgtdGFyZ2V0Lmg6IFByb3ZpZGUgZGVmYXVsdCAoTlVMTCkgdmFsdWVzIGZvcgoJZWxmX2JhY2tlbmRfZW1pdF9yZWxvY3MgYW5kIGVsZl9iYWNrZW5kX2NvdW50X3JlbG9jcy4KCSogZWxmbGluay5oIChlbGZfbGlua19zaXplX3JlbG9jX3NlY3Rpb24pOiBNYWtlIHRoZSBoYXNoIHRhYmxlCgliaWcgZW5vdWdoIHRvIGhvbGQgdGhlIHJlbG9jcyBjb3VudGVkIGJ5IGVpdGhlciByZWxvY19jb3VudCBvcgoJby0+cmVsb2NfY291bnQuCgkoZWxmX2JmZF9maW5hbF9saW5rKSBlbWl0X3JlbG9jczogTmV3IGJvb2xlYW4sIHNldCBpZiByZWxvY3MKCXNob3VsZCBiZSBlbWl0dGVkLCBlaXRoZXIgYmVjYXVzZSBvZiBhIGNvbW1hbmQgbGluZSBvcHRpb24KCXN0b3JlZCBpbiB0aGUgaW5mbyBzdHJ1Y3R1cmUgb3IgYmVjYXVzZSB0aGUgdGFyZ2V0IHByb3ZpZGVzIGEKCXNwZWNpYWwgcmVsb2MgZW1pdHRpbmcgZnVuY3Rpb24uCglJZiB0aGUgdGFyZ2V0IHByb3ZpZGVzIGEgcmVsb2MgY291bnRpbmcgZnVuY3Rpb24gdXNlIGl0LAoJdW5sZXNzIHBlcmZvcm1pbmcgYSByZWxvY2F0YWJsZSBsaW5rIG9yIGVtaXR0aW5nIGFsbCByZWxvY3MuCglBbHNvIHNldCB0aGUgU0VDX1JFTE9DIGZsYWcgb24gYW55IG91dHB1dCBzZWN0aW9uIHdoaWNoIHdpbGwKCWNvbnRhaW4gcmVsb2NzLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IGVtaXRfcmVsb2NzOiBOZXcgYm9vbGVhbiwgc2V0IGlmIHJlbG9jcwoJc2hvdWxkIGJlIGVtaXR0ZWQsIGVpdGhlciBiZWNhdXNlIG9mIGEgY29tbWFuZCBsaW5lIG9wdGlvbgoJc3RvcmVkIGluIHRoZSBpbmZvIHN0cnVjdHVyZSBvciBiZWNhdXNlIHRoZSB0YXJnZXQgcHJvdmlkZXMgYQoJc3BlY2lhbCByZWxvYyBlbWl0dGluZyBmdW5jdGlvbi4KCUlmIHRoZSB0YXJnZXQgcHJvdmlkZXMgYSByZWxvYyBlbWl0dGluZyBmdW5jdGlvbiwgdXNlIGl0LAoJdW5sZXNzIHBlcmZvcm1pbmcgYSByZWxvY2F0YWJsZSBsaW5rIG9yIGVtaXR0aW5nIGFsbCByZWxvY3MuCgoyMDAxLTA2LTIwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFsd2F5cwoJYWxsb2NhdGUgbG9jYWwgLmdvdCBzcGFjZS4KCjIwMDEtMDYtMTkgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IEZpeCBjcmVhdGlvbiBvZgoJZHluYW1pYyBzeW1ib2xzLgoKMjAwMS0wNi0xOCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGZsaW5rLmggKHN0cnVjdCBlbGZfYXNzaWduX3N5bV92ZXJzaW9uX2luZm8pOiBSZW1vdmUgbWVtYmVyCglleHBvcnRfZHluYW1pYy4gIEFsbCB1c2VycyBjaGFuZ2VkIHRvIHVzZSBpbmZvIG1lbWJlci4KCU5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogUmVtb3ZlIHBhcmFtZXRlcgoJZXhwb3J0X2R5bmFtaWMsIGluc3RlYWQgdXNlIG1lbWJlciBpbiBwYXJhbWV0ZXIgaW5mby4KCSogYmZkLWluLmggKGJmZF9lbGYzMl9zaXplX2R5bmFtaWNfc2VjdGlvbnMsCgliZmRfZWxmNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogVXBkYXRlIHByb3RvdHlwZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMS0wNi0xOCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfaW5mb19mYWlsZWQpOiBBZGQgYSBuZXcgZmllbGQsIHZlcmRlZnMuCgkoTkFNRShiZmRfZWxmLHNpemVfZHluYW1pY19zZWN0aW9ucyk6IFBhc3MgdmVyZGVmcyB0bwoJZWxmX2V4cG9ydF9zeW1ib2wuCgkoZWxmX2V4cG9ydF9zeW1ib2wpOiBDaGVjayBlaWYtPnZlcmRlZnMgdG8gZGVjaWRlIGlmIGEgc3ltYm9sCglzaG91bGQgYmUgZXhwb3J0ZWQuCgoyMDAxLTA2LTE3ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCBhIG5ldyBmaWVsZCwKCXJlYWRvbmx5X3JlbG9jLCB0byByZWNvcmQgaWYgYSByZWxvY2F0aW9uIGluIHRoZSAucmVsLmR5bgoJc2VjdGlvbiBpcyBhZ2FpbnN0IGEgcmVhZC1vbmx5IHNlY3Rpb24uCgkobWlwc19lbGZfbGlua19oYXNoX25ld2Z1bmMpOiBJbml0aWFsaXplIHRoZSByZWFkb25seV9yZWxvYwoJZmllbGQgdG8gZmFsc2UuCgkoX2JmZF9taXBzX2VsZl9jaGVja19yZWxvY3MpOiBSZWNvcmQgaWYgdGhlcmUgaXMgYSByZWxvY2F0aW9uCglpbiB0aGUgLnJlbC5keW4gc2VjdGlvbiBhZ2FpbnN0IGEgcmVhZC1vbmx5IHNlY3Rpb24gYnkgc2V0dGluZwoJREZfVEVYVFJFTCBvciByZWFkb25seV9yZWxvYy4KCShfYmZkX21pcHNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogQ29weSByZWFkb25seV9yZWxvYyBpZgoJaXQgaXMgdHJ1ZS4KCShfYmZkX21pcHNfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFJlY29yZCBERl9URVhUUkVMIGlmCgl0aGVyZSBpcyBhIHJlbG9jYXRpb24gaW4gdGhlIC5yZWwuZHluIHNlY3Rpb24gYWdhaW5zdCBhCglyZWFkLW9ubHkgc2VjdGlvbi4KCShfYmZkX21pcHNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFNldCBEVF9URVhUUkVMIGlmCglERl9URVhUUkVMIGlzIHNldC4KCjIwMDEtMDYtMTIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogY29mZmNvZGUuaCAoc3R5cF9mbGFnc190b19zZWNfZmxhZ3MpOiBDaGFuZ2UgdG8gYSBib29sZWFuCglmdW5jdGlvbi4gIE1vdmUgZmxhZ3dvcmQgcmVzdWx0IGludG8gcGFyYW1ldGVyIGxpc3QuICBSZW1vdmUKCWNvbW1lbnQgYWJvdXQgc2V0dGluZyBiZmRfZXJyb3JfaGFuZGxlciB0byBpbnRlcmNlcHQgZmFpbHVyZQoJcmVzdWx0cy4KCSogY29mZmdlbi5jIChtYWtlX2Ffc2VjdGlvbl9mcm9tX2ZpbGUpOiBFeGFtaW5lIHJlc3VsdCBvZgoJY2FsbGluZyBiZmRfY29mZl9zdHlwX3RvX3NlY19mbGFncyBhbmQgcGFzcyBhIGZhaWx1cmUgYmFjayB0bwoJY2FsbGVyLgoJKiBlY29mZi5oIChzdHlwX2ZsYWdzX3RvX3NlY19mbGFncyk6IENoYW5nZSB0byBhIGJvb2xlYW4KCWZ1bmN0aW9uLiAgTW92ZSBmbGFnd29yZCByZXN1bHQgaW50byBwYXJhbWV0ZXIgbGlzdC4KCSogbGliY29mZi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJlY29mZi5oOiBSZWdlbmVyYXRlLgoKMjAwMS0wNi0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBhb3V0eC5oIChhZGp1c3Rfel9tYWdpYyk6IE9ubHkgcGFkIHRoZSB0ZXN4dCBzZWN0aW9uIGlmIHRoZSBkYXRhCglzZWN0aW9uIGlzIGdvaW5nIHRvIGZvbGxvdyBpdC4KCjIwMDEtMDYtMTIgIENhdGhlcmluZSBNb29yZSAgPGNsbUByZWRoYXQuY29tPgoKCSogZWxmbGluay5oIChlbGZfZ2NfcHJvcGFnYXRlX3Z0YWJsZV9lbnRyaWVzKTogUmVwbGFjZSBGSUxFX0FMSUdOCgl3aXRoIHRoZSBmaWxlX2FsaWduIGVudHJ5IGZyb20gZWxmX2JhY2tlbmRfZGF0YS4KCShlbGZfZ2Nfc21hc2hfdW51c2VkX3Z0ZW50cnlfcmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmX2djX3JlY29yZF92dGVudHJ5KTogTGlrZXdpc2UuCgoyMDAxLTA2LTEwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmbGluay5oOiBXaGl0ZXNwYWNlIGNoYW5nZXMuCgkoZWxmX2xpbmtfcmVhZF9yZWxvY3NfZnJvbV9zZWN0aW9uKTogVXNlICJ1bnNpZ25lZCBpbnQiIGl0ZXJhdG9yCglyYXRoZXIgdGhhbiAidW5zaWduZWQgY2hhciIuCgkoZWxmX2xpbmtfb3V0cHV0X3JlbG9jcyk6IExpa2V3aXNlLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IExpa2V3aXNlLgoJKGVsZl9yZWxvY19saW5rX29yZGVyKTogTElrZXdpc2UuCgkqIGVsZi5jOiBzL0NPTlNUL2NvbnN0Ly4gIFdoaXRlc3BhY2UgY2hhbmdlcy4KCSogZWxmMzItbWlwcy5jOiBGb3JtYXR0aW5nIGZpeC4KCgkqIE1ha2VmaWxlLmFtIChTT1VSQ0VfSEZJTEVTKTogSW5jbHVkZSB4Y29mZi10YXJnZXQuaCwgcmVtb3ZlIHhjb2ZmLmguCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9NYWtlLWluOiBSZW1vdmUgdHJhaWxpbmcgdGFiLgoKMjAwMS0wNi0wOSAgUGhpbGlwIEJsdW5kZWxsICA8cGhpbGJAZ251Lm9yZz4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fcGx0MF9lbnRyeSk6IENvcnJlY3QgZXJyb3IgaW4gbGFzdAoJY2hhbmdlLgoJKGVsZjMyX2FybV9wbHRfZW50cnkpOiBMaWtld2lzZS4KCjIwMDEtMDYtMDggIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZi5jIChzd2FwX291dF9zeW1zKTogS2VlcCBuYW1lcyBmb3IgZ2xvYmFsIHNlY3Rpb24gc3ltYm9scy4KCjIwMDEtMDYtMDcgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy5iZmQ6IFB1dCBiYWNrIGVjb2ZmIGZvciBMaW51eC9taXBzLiBGaXJtd2FyZXMgb24gc29tZQoJTUlQUy1iYXNlZCBtYWNoaW5lcyBuZWVkIGl0LgoKMjAwMS0wNi0wNyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX29iamVjdF9wKTogU2V0IHRoZSBiYWQgc3ltdGFiCglmb3IgU0dJIG9ubHkuCgoJKiBjb25maWcuYmZkOiBSZW1vdmUgZWNvZmYgZnJvbSBMaW51eC9taXBzLgoKMjAwMS0wNi0wNyAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBBZGQgYW4KCWFzc2VydGlvbi4KCShlbGY2NF94ODZfNjRfY2hlY2tfcmVsb2NzKTogRml4IFZURU5UUlkgcmVsb2NhdGlvbjsgc2V0IGFuCglhbGlnbm1lbnQgb2YgOCBmb3IgLnJlbGEgc2VjdGlvbnM7IGhhbmRsZSBmdXJ0aGVyIHJlbG9jYXRpb25zLgoKMjAwMS0wNi0wNiAgQ2hyaXN0aWFuIEdyb2Vzc2xlciA8Y3BnQGFsYWRkaW4uZGU+CgoJKiBjb2ZmLXo4ay5jOiBGaXggZm9ybWF0dGluZy4KCUZpeCBob3d0b3M6IGhvd3RvLT5zaXplIHdhcyBhbHdheXMgMS4KCjIwMDEtMDYtMDUgIFRoaWVtbyBTZXVmZXIgIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogY29uZmlndXJlLmhvc3QgKG1pcHM2NCotKi1saW51eCopOiBEZWZpbmUuCgoyMDAxLTA2LTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9kaXNjYXJkX2NvcGllcyk6IFJlbmFtZSB0bwoJZGlzY2FyZF9jb3BpZXMsIGFuZCB1c2UgZWxmX2xpbmtfaGFzaF9lbnRyeSBhcmcgcmF0aGVyIHRoYW4KCWVsZl9pMzg2X2xpbmtfaGFzaF9lbnRyeS4KCShlbGZfaTM4Nl9saW5rX2hhc2hfdHJhdmVyc2UpOiBEZWxldGUuCgkoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQWRqdXN0IGNhbGwgdG8gZGlzY2FyZF9jb3BpZXMuCglUaWR5IHNpemluZyBvZiBkeW5hbWljIHNlY3Rpb25zLgoJKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyA8Ul8zODZfMzIsIFJfMzg2X1BDMzI+KTogUmVmZXJlbmNlIGNvdW50Cglwb3NzaWJsZSAucGx0IGVudHJpZXMuCgkoZWxmX2kzODZfZ2Nfc3dlZXBfaG9vayk6IExpa2V3aXNlLgoJKGVsZl9pMzg2X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IERpc2NhcmQgLnBsdCBlbnRyaWVzIGZvcgoJZXZlcnl0aGluZyB3aXRoIHBsdC5yZWZjb3VudCA8PSAwLgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBEb24ndCBhbGxvY2F0ZSAuZ290IGFuZAoJLnJlbGdvdCBzcGFjZSBoZXJlLgoJKGVsZl9pMzg2X2djX3N3ZWVwX2hvb2spOiAuLmFuZCBubyBuZWVkIHRvIGRlYWxsb2NhdGUgaGVyZS4uCgkoZWxmX2kzODZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogLi5hbmQgZG9uJ3QgYWxsb2NhdGUgLnBsdCBhbmQKCS5yZWwucGx0IGhlcmUuLgoJKGFsbG9jYXRlX3BsdF9hbmRfZ290KTogLi5pbnN0ZWFkIGRvIGl0IGFsbCBoZXJlLiAgTmV3IGZ1bmN0aW9uLgoJKGVsZl9pMzg2X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFsbG9jYXRlIGxvY2FsIC5nb3Qgc3BhY2UgYW5kCgljYWxsIGFsbG9jYXRlX3BsdF9hbmRfZ290LiAgTm8gbmVlZCB0byB6YXAgLnJlbGdvdCBpZiBub3QgZHluYW1pYy4KCShiZmRfZWxmMzJfYmZkX2ZpbmFsX2xpbmspOiBEZWxldGUuICAoaWUuIHVzZSByZWd1bGFyIGZpbmFsIGxpbmsKCXJhdGhlciB0aGFuIGdjIHZhcmlldHkpLgoJKFdJTExfQ0FMTF9GSU5JU0hfRFlOQU1JQ19TWU1CT0wpOiBEZWZpbmUuCgkoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IFVzZSBpdCBoZXJlIGFuZCBjb3JyZWN0IGhhbmRsaW5nIG9mCglSXzM4Nl9HT1QzMi4gIFByb3ZpZGUgc2VjdGlvbiBhbmQgb2Zmc2V0IGZvciAidW5yZXNvbHZhYmxlCglyZWxvY2F0aW9uIiBlcnJvciBtZXNzYWdlLgoJKGVsZl9pMzg2X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IENvcnJlY3QgaGFuZGxpbmcgb2YgUl8zODZfR09UMzIuCgoJKiBlbGYzMi1pMzg2LmMgKHN0cnVjdCBlbGZfaTM4Nl9saW5rX2hhc2hfdGFibGUpOiBBZGQgc2dvdCwKCXNnb3RwbHQsIHNyZWxnb3QsIHNwbHQsIHNyZWxwbHQsIHNkeW5ic3MsIHNyZWxic3MgZmllbGRzLgoJKGVsZl9pMzg2X2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0IHRoZW0uCgkoY3JlYXRlX2dvdF9zZWN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9pMzg2X2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogU2V0IHRvIGFib3ZlLgoJKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyk6IFVzZSBzaG9ydGN1dHMgZnJvbSBoYXNoIHRhYmxlIHJhdGhlciB0aGFuCgljYWxsaW5nIGJmZF9nZXRfc2VjdGlvbl9ieV9uYW1lLgoJKGVsZl9pMzg2X2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGZfaTM4Nl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShlbGZfaTM4Nl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmX2kzODZfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCgkqIGVsZjMyLWhwcGEuYyAoYWxsb2NhdGVfcGx0X2FuZF9nb3QpOiBTa2lwIGluZGlyZWN0IGFuZCB3YXJuaW5nIHN5bXMuCgoyMDAxLTA2LTAyICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfb2JqZWN0X3ApOiBDaGVjayBFTEZPU0FCSV9MSU5VWAoJYW5kIEVMRk9TQUJJX0hQVVguCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9vYmplY3RfcCk6IExpa2V3aXNlLgoKMjAwMS0wNi0wMiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogYW91dC1jcmlzLmMgKE1BQ0hUWVBFX09LKTogTmV3LiBEZWZpbmVkLgoKMjAwMS0wNi0wMiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBzZWN0aW9uLmMgKF9iZmRfc3RyaXBfc2VjdGlvbl9mcm9tX291dHB1dCk6IEhhbmRsZSBOVUxMCglvdXRwdXRfc2VjdGlvbi4KCjIwMDEtMDYtMDIgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNvbmZpZy5iZmQgKHBvd2VycGMtKi1haXgqLCBwb3dlcnBjLSotYmVvcyosIHJzNjAwMC0qLSopOiBBZGQKCXJzNjAwMGNvZmY2NF92ZWMgb25seSBpZiBCRkQ2NCBpcyBkZWZpbmVkLgoJKHBvd2VycGM2NC0qLWFpeCopOiBFbmFibGUgb25seSBpZiBCRkQ2NCBpcyBkZWZpbmVkLgoKMjAwMS0wNi0wMiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogY29mZi1pYTY0LmMgKGlhNjRjb2ZmX29iamVjdF9wKTogUmV3cml0ZSB3aXRoCglleHRlcm5hbF9QRUlfRE9TX2hkciBhbmQgZXh0ZXJuYWxfUEVJX0lNQUdFX2hkci4KCjIwMDEtMDYtMDEgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IEFkZCBQQzgKCXJlbG9jYXRpb24sIHNtYWxsIHJlZm9ybWF0dGluZy4KCjIwMDEtMDUtMjkgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfY2hlY2tfcmVsb2NzKTogSGFuZGxlIFJfWDg2XzY0XzY0LgoJKGVsZjY0X3g4Nl82NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAxLTA1LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQG9uZS5uZXQuYXU+CgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfY2hlY2tfcmVsb2NzKTogRG9uJ3QgTkVFRF9QTFQgZm9yCgltaWxsaWNvZGUuICBEb24ndCBhbGxvY2F0ZSAuZ290IGFuZCAucmVsYS5nb3Qgc3BhY2UgaGVyZS4uCgkoZWxmMzJfaHBwYV9nY19zd2VlcF9ob29rKTogLi5hbmQgbm8gbmVlZCB0byBkZWFsbG9jYXRlIGhlcmUuLgoJKGVsZjMyX2hwcGFfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogLi5hbmQgZG9uJ3QgYWxsb2NhdGUgLnBsdCBhbmQKCS5yZWxhLnBsdCBoZXJlLi4KCShocHBhX2hhbmRsZV9QSUNfY2FsbHMpOiAuLm5vciBoZXJlLi4KCShhbGxvY2F0ZV9wbHRfYW5kX2dvdCk6IC4uaW5zdGVhZCBkbyBpdCBhbGwgaGVyZS4gIE5ldyBmdW5jdGlvbi4KCShlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFsbG9jYXRlIGxvY2FsIC5nb3Qgc3BhY2UgYW5kCgljYWxsIGFsbG9jYXRlX3BsdF9hbmRfZ290LiAgTm8gbmVlZCB0byB6YXAgLmdvdCBpZiBub3QgZHluYW1pYy4KCShlbGYzMl9ocHBhX2ZpbmFsX2xpbmspOiBDYWxsIHJlZ3VsYXIgYmZkX2ZpbmFsX2xpbmsgaW5zdGVhZCBvZgoJZ2NfY29tbW9uX2ZpbmFsX2xpbmsuCgkoV0lMTF9DQUxMX0ZJTklTSF9EWU5BTUlDX1NZTUJPTCk6IERlZmluZS4KCShlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBVc2UgaXQgaGVyZS4KCShlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFJlbW92ZSBzdXBlcmZsdW91cyB0ZXN0IG9mCglkeW5hbWljX3NlY3Rpb25zX2NyZWF0ZWQuCgkoaHBwYV90eXBlX29mX3N0dWIpOiBEb24ndCBMT05HX0JSQU5DSF9WSUFfUExUIGlmIG1pbGxpY29kZSBzeW0uCgoyMDAxLTA1LTI4ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfODZfNjRfc2l6ZV9pbmZvKTogUmVtb3ZlLCB3ZSBjYW4gdXNlIHRoZQoJZ2VuZXJpYyB2ZXJzaW9uIHNpbmNlIHdlIHdhbnQgYSBoYXNoc2l6ZSBvZiA0LgoJKGVsZl9iYWNrZW5kX3NpemVfaW5mbyk6IExpa2V3aXNlLgoKMjAwMS0wNS0yOCAgVGhpZW1vIFNldWZlciAgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX3NpemVfcmVsb2Nfc2VjdGlvbik6IFVzZSBiZmRfem1hbGxvYyBpbnN0ZWFkIG9mCglhIHplcm9pbmcgbG9vcC4KCShlbGZfbGlua19vdXRwdXRfcmVsb2NzKTogSGFuZGxlIE1JUFMgRUxGNjQgcmVsb2NhdGlvbnMgY29ycmVjdGx5LgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IExpa2V3aXNlLgoJKGVsZl9yZWxvY19saW5rX29yZGVyKTogTGlrZXdpc2UuCgkoZWxmX2ZpbmlzaF9wb2ludGVyX2xpbmtlcl9zZWN0aW9uKTogVHlwby4gSGFuZGxlIE1JUFMgRUxGNjQKCXJlbG9jYXRpb25zIGNvcnJlY3RseS4KCjIwMDEtMDUtMjggIE5pY29sYXMgUGl0cmUgPG5pY29AY2FtLm9yZz4KCgkqIGVsZjMyLWFybS5oOiBmaXggUExUIGdlbmVyYXRpb24gZm9yIGJpZyBlbmRpYW4gQVJNCgoyMDAxLTA1LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQG9uZS5uZXQuYXU+CgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IFNldCB1cCAucGx0IGVudHJpZXMKCWZvciBzeW1ib2xzIGZvcmNlZCBsb2NhbCB0aGF0IG5lZWQgcGxhYmVscy4KCShlbGYzMl9ocHBhX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IERvbid0IGFsbG9jYXRlIHNwYWNlIGluCgkucGx0LnJlbGEgZm9yIGxvY2FsIHN5bXMgaWYgbm9uLXNoYXJlZC4KCShocHBhX2J1aWxkX29uZV9zdHViKTogTWFzayBsc2Igb2YgcGx0Lm9mZnNldC4KCShlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IEFib3J0IGlmIGxzYiBvZiBwbHQub2Zmc2V0IHNldC4KCShjbG9iYmVyX21pbGxpY29kZV9zeW1ib2xzKTogQ29ycmVjdCBjb21tZW50LgoJKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgoyMDAxLTA1LTI4ICBKZWZmIFN0dXJtICA8anN0dXJtQG9uZS1wb2ludC5jb20+CgoJKiByZWxvYy5jOiBBZGQgQkZEX1JFTE9DX1NQQVJDX1VBMTYgYW5kIEJGRF9SRUxPQ19TUEFSQ19VQTY0LgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBlbGYzMi1zcGFyYy5jOiBFbmFibGUgQkZEX1JFTE9DX1NQQVJDX1VBMTYsIEJGRF9SRUxPQ19TUEFSQ19VQTMyCglhbmQgQkZEX1JFTE9DX1NQQVJDX1VBNjQgbWFwcGluZwoJKiBlbGY2NC1zcGFyYy5jOiBMaWtld2lzZS4KCjIwMDEtMDUtMjUgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IFJlbW92ZSBjb2ZmLXBtYWMubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogUmVtb3ZlIGNvZmYtcG1hYy5jLgoJKGNvZmYtcnM2MDAwLmxvKTogUmVtb3ZlIHRoZSBvbGQgZGVwZW5kZW5jeS4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgoJKiBjb25maWd1cmUuaW4gKHBtYWNfeGNvZmZfdmVjKTogUmVwbGFjZSBjb2ZmLXBtYWMubG8gd2l0aAoJY29mZi1yczYwMDAubG8uCgoyMDAxLTA1LTI1ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBjb2ZmLXJzNjAwMC5jIChyczYwMDBjb2ZmX3ZlYyk6IFVzZSByczYwMDBjb2ZmX2NvcmVfcCwKCXJzNjAwMGNvZmZfY29yZV9maWxlX21hdGNoZXNfZXhlY3V0YWJsZV9wLAoJcnM2MDAwY29mZl9jb3JlX2ZpbGVfZmFpbGluZ19jb21tYW5kIGFuZAoJcnM2MDAwY29mZl9jb3JlX2ZpbGVfZmFpbGluZ19zaWduYWwgb25seSBpZiBBSVhfQ09SRSBpcwoJZGVmaW5lZC4KCShwbWFjX3hjb2ZmX3ZlYyk6IExpa2V3aXNlLgoJKiBjb2ZmNjQtcnM2MDAwLmMgKHJzNjAwMGNvZmY2NF92ZWMpOiBMaWtld2lzZS4KCjIwMDEtMDUtMjUgIFRpbW90aHkgV2FsbCAgPHR3YWxsQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGFsbG9jYXRlX2R5bnJlbF9lbnRyaWVzKTogRG9uJ3QgYWxsb2NhdGUgYW4gZW50cnkKCWZvciBfX0dMT0JfREFUQV9QVFIgb24gQUlYNS4gIENsZWFuIHVwIHNvbWUgcmVsb2NhdGlvbiBidWdzLgoKMjAwMS0wNS0yNSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KCSogbGliY29mZi5oOiBMaWtld2lzZS4KCjIwMDEtMDUtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAb25lLm5ldC5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgYWxsb3cKCXVuZGVmaW5lZCBtaWxsaWNvZGUgc3ltcyBpbiBzaGFyZWQgbGlicy4KCShocHBhX2J1aWxkX29uZV9zdHViKTogVHVybiBCRkRfQVNTRVJUcyBpbnRvIGFib3J0cy4KCShlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmMzJfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCjIwMDEtMDUtMjQgIFRvbSBSaXggPHRyaXhAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtIGNvZmYtcG1hYyBiZmQgbm93IGRlZmluZWQgaW4gY29mZi1yczYwMDAuYwoJeGNvZmYtdGFyZ2V0Lmggbm90IHVzZWQgdG8gZGVmaW5lIHJzNjAwMCBvciBwcGMgYmZkLgoJKiBNYWtlZmlsZS5pbiBzYW1lCgoJKiBiZmQtaW4uaCA6IChzdHJ1Y3QgbGluZW5vX2NhY2hlX2VudHJ5KSBwcm9tb3RlIGVsZW1lbnQgIm9mZnNldCIKCXRvIDY0IGJpdC4KCgkqIGNvZmYtcnM2MDAwLmMgOiBNYW55IGNoYW5nZXMgZm9yIDY0IGJpdCBzdXBwb3J0LiAgTW92ZSBjb21tb24KCTMyLzY0IGNvZGUgdG8geGNvZmZsaW5rLmMuICBFeHBsaWN0bHkgZGVmaW5lIHRoZSByczYwMDBjb2ZmX3ZlYwoJYW5kIHBtYWNfeGNvZmZfdmVjCgoJKiBjb2ZmNjQtcnM2MDAwLmMgOiBNYW55IGNoYW5nZXMgZm9yIDY0IGJpdCBzdXBwb3J0LiAgNjQgYml0CglsaW5rZXIgbm93IHN1cHBvcnRlZC4gIEV4cGxpY3RseSBkZWZpbmUgdGhlIHJzNjAwMGNvZmY2NF92ZWMuCgoJKiBjb2ZmY29kZS5oIDogKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKSB4Y29mZiA2NCBiaXQgc3VwcG9ydAoJKGNvZmZfcHJpbnRfYXV4KSBzYW1lCgkoY29mZl93cml0ZV9vYmplY3RfY29udGVudHMpIHNhbWUKCShjb2ZmX3NsdXJwX2xpbmVfdGFibGUpIHNhbWUKCgkqIGNvZmZnZW4uYyA6IChjb2ZmX2ZpeF9zeW1ib2xfbmFtZSkgZm9ybWF0dGluZwoJKGNvZmZfbWFuZ2xlX3N5bWJvbHMpIHhjb2ZmIDY0IGJpdCBzdXBwb3J0CgkoY29mZl93cml0ZV9zeW1ib2wpIHNhbWUKCShjb2ZmX3dyaXRlX2FsaWVuX3N5bWJvbCkgc2FtZQoJKGNvZmZfd3JpdGVfbmF0aXZlX3N5bWJvbCkgc2FtZQoJKGNvZmZfd3JpdGVfc3ltYm9scykgc2FtZQoJKGNvZmZfZ2V0X3N5bWJvbF9pbmZvKSBzYW1lCgkoYmZkX2NvZmZfZ2V0X3N5bWVudCkgc2FtZQoJKGNvZmZfcHJpbnRfc3ltYm9sKSBzYW1lCgoJKiBjb25maWcuYmZkIDogYWRkIHBvd2VycGM2NC0qLWFpeCogdGFyZ2V0CgoJKiBsaWJjb2ZmLWluLmggOiBmb3JtYXR0aW5nCgoJKiBsaWJjb2ZmLmggOiBtb3ZlIHhjb2ZmIGV4dGVybiBkZWNsYXJhdGlvbnMgdG8gbGlieGNvZmYuaAoKCSogbGlieGNvZmYuaCA6IE5ldyBmaWxlCgoJKiB4Y29mZmxpbmsuYyA6IE1hbnkgY2hhbmdlcyBmb3IgeGNvZmY2NCBzdXBwb3J0LiAgTW92ZSBjb21tb24KCXN0cnVjdHVyZXMgdG8gaW5jbHVkZS9jb2ZmL3hjb2ZmLmguICBNb3ZlIHNwZWNpZmljIHN0cnVjdHVyZSB0bwoJYmFja2VuZHMgY29mZi1yczYwMDAuYyBhbmQgY29mZjY0LXJzNjAwMC5jLiAgVXNlIG5ldyBiYWNrZW5kCglmdW5jdGlvbnMsIGRlZmluZWQgaW4gbGlieGNvZmYuaCwgdG8gaXNvbGF0ZSAzMi82NCBkZXBlbmRlbmNpZXMuCgoJKGJmZF94Y29mZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpIDogc3BlY2lhbCBfX3J0aW5pdCBzeW1ib2wgZm9yCglhaXg0LjIrIC1iaW5pdGZpbmkuCgoJKHhjb2ZmX2J1aWxkX2xkc3ltcykgOiBoYW5kbGUgc3BlY2lhbCBfX3J0aW5pdCBzeW1ib2wuCgoyMDAxLTA1LTIzICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3NsdXJwX3JlbG9jX3RhYmxlKTogRml4IHR5cG8KCXMvRU5USVJFUy9FTlRSSUVTLy4KCjIwMDEtMDUtMjMgIFRoaWVtbyBTZXVmZXIgPHNldWZlckBjc3YuaWNhLnVuaS1zdHV0dGdhcnQuZGU+CgoJKiByZWxvYy5jIChiZmRfcmVsb2NfY29kZV9yZWFsKTogQWRkIE1JUFMgRUxGNjQgcmVsb2NhdGlvbnMuCgkqIGxpYmJmZC5oOiBSZWdlbmVyYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoJKiBhb3V0eC5oIChhb3V0X0B2YXJ7c2l6ZX1fbWFjaGluZV90eXBlKTogQWRkIE1JUFMgcjEyayBzdXBwb3J0LgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9taXBzMTIwMDApOiBEZWZpbmUuCgkqIGNwdS1taXBzLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBBZGQgTUlQUyByMTJrIHN1cHBvcnQuCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogQWRkIE1JUFMgcjEyawoJc3VwcG9ydC4KCShfYmZkX21pcHNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVzZSBvZmZpY2lhbCBiZmQgdHlwZWRlZi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBlbGZ4eC10YXJnZXQuaDogRG8gbm90IHJlZGVmaW5lIGJmZF9lbGZOTl9iZmRfbWFrZV9kZWJ1Z19zeW1ib2wuCgoyMDAxLTA1LTIzICBrYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVsZjMyLXNoLmMgKGVsZl9zaF9wbHQwX2VudHJ5X2JlLCBlbGZfc2hfcGx0MF9lbnRyeSwKCWVsZl9zaF9wbHRfZW50cnlfYmUsIGVsZl9zaF9wbHRfZW50cnksIGVsZl9zaF9waWNfcGx0X2VudHJ5X2JlLAoJZWxmX3NoX3BpY19wbHRfZW50cnkpOiBOZXcgUExUIGNvZGUsIHRoYXQgZG9lcyBub3QgdXNlIHIyLCBzaW5jZQoJdGhhdCBpcyB1c2VkIGJ5IEdDQy4KCjIwMDEtMDUtMjMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogZWxmLWJmZC5oIChOVU1fU0hEUl9FTlRSSUVTKTogTmV3IG1hY3JvOiBjb21wdXRlIHRoZSBudW1iZXIKCW9mIGVudHJpZXMgaW4gYSBzdHJ1Y3R1cmVkIHNlY3Rpb24uCgkqIGVsZi5jOiBVc2UgbmV3IG1hY3JvLgoJKiBlbGYzMi1pMzg2LmM6IFVzZSBuZXcgbWFjcm8uCgkqIGVsZjMyLW1pcHMuYzogVXNlIG5ldyBtYWNyby4KCSogZWxmNjQtYWxwaGEuYzogVXNlIG5ldyBtYWNyby4KCSogZWxmNjQtc3BhcmMuYzogVXNlIG5ldyBtYWNyby4KCSogZWxmY29kZS5oOiBVc2UgbmV3IG1hY3JvLgoJKiBlbGZsaW5rLmg6IFVzZSBuZXcgbWFjcm8uCgoyMDAxLTA1LTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGJmZGludC50ZXhpOiBSZXBsYWNlIC1vZm9ybWF0IHdpdGggLS1vZm9ybWF0LgoKMjAwMS0wNS0yMSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZHdhcmYyLmMgKGRlY29kZV9saW5lX2luZm8pOiBGaXggZXJyb3IgbWVzc2FnZS4KCShyZWFkX2FiYnJldnMpOiBGaXggdGVzdCBmb3Igb2Zmc2V0IGFzIHN1Z2dlc3RlZCBieSBBbGFuIE1vZHJhIGFuZAoJYWRqdXN0IGVycm9yIG1lc3NhZ2UuCgoyMDAxLTA1LTE4ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IFJldmVydCB0aGUgbGFzdAoJY2hhbmdlLgoKMjAwMS0wNS0xNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBvbmUubmV0LmF1PgoKCSogZWxmMzItaHBwYS5jIChjbG9iYmVyX21pbGxpY29kZV9zeW1ib2xzKTogVGVtcG9yYXJpbHkgc2V0CglFTEZfTElOS19GT1JDRURfTE9DQUwgdG8gc3VpdCAyMDAxLTA0LTMwIGNoYW5nZS4KCShocHBhX2J1aWxkX29uZV9zdHViKTogQWRkIGFuIGFzc2VydCB0byBjaGVjayBwbHQub2Zmc2V0LgoKMjAwMS0wNS0xNyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IFNldCB0aGUKCXZlcnNpb24gZGVmaW5pdGlvbiB0byBiYXNlbmFtZSBvZiB0aGUgb3V0cHV0IGZpbGVuYW1lLgoKMjAwMS0wNS0xNyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBTZXQgRFRfTkVFREVEIHRvCgliYXNlbmFtZSBvZiB0aGUgYmZkIGZpbGVuYW1lLgoKMjAwMS0wNS0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBvbmUubmV0LmF1PgoKCSogc2VjdGlvbi5jIChhc2VjdGlvbik6IEFkZCBsaW5rZXJfaGFzX2lucHV0IGZpZWxkLgoJKFNURF9TRUNUSU9OKTogQWRqdXN0IGluaXRpYWxpemF0aW9uIHRvIHN1aXQuCgkqIGVjb2ZmLmMgKGJmZF9kZWJ1Z19zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDEtMDUtMTUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxheF9zZWN0aW9uKTogRG9uJ3QgcmVsYXgKCW5lZ2F0aXZlIDMyLWJpdCBvcGVyYW5kcyB0byAxNiBvcGVyYW5kcyB3aGVuIHRoZSBvcGVyYW5kIGlzCglnb2luZyB0byBiZSB6ZXJvLWV4dGVuZGVkIGJ5IHRoZSBtb2RpZmllZCBvcGNvZGUuCgoyMDAxLTA1LTEyICBQZXRlciBUYXJnZXR0ICA8cGV0ZXIudGFyZ2V0dEBhcmNjb3Jlcy5jb20+CgoJKiBjcHUtYXJjLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBBZGQgZW50cnkgJ2Jhc2UnIHJlcHJlc2VudGluZyBvbGQKCW5hbWUgZm9yICdhcmM1JyBjb3JlIHZlcnNpb25zLgoJKGJmZF9hcmNfYXJjaCk6IE1ha2UgYmZkX21hY2hfYXJjXzYgZGVmYXVsdC4KCgkqIGVsZjMyLWFyYy5jIChhcmNfZWxmX29iamVjdF9wKTogTWFrZSBFX0FSQ19NQUNIX0FSQzYgZGVmYXVsdAoJYXJjaGl0ZWN0dXJlLgoJKGFyY19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IE1ha2UgYmZkX21hY2hfYXJjXzYgZGVmYXVsdC4KCjIwMDEtMDUtMTEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChpc191bndpbmRfc2VjdGlvbl9uYW1lKTogQ29uc2lkZXIgbGlua29uY2UgdW53aW5kCglzZWN0aW9ucyBhcyB3ZWxsLgoJKGVsZk5OX2lhNjRfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IE1hcCAuZ251LmxpbmtvbmNlLmlhNjR1bncuRk9PCgl0byAuZ251LmxpbmtvbmNlLnQuRk9PIHRleHQgc2VjdGlvbi4KCjIwMDEtMDUtMTEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbWVyZ2UuYyAoc3RydWN0IHNlY19tZXJnZV9oYXNoX2VudHJ5KTogQWRkIHUuZW50c2l6ZSBhbmQgdS5zdWZmaXgKCWZpZWxkcywgY2hhbmdlIHNlYyBpbnRvIHNlY2luZm8uCgkoc3RydWN0IHNlY19tZXJnZV9pbmZvKTogQWRkIGNoYWluLCByZW1vdmUgbGFzdCBmaWVsZHMuCgkoc3RydWN0IHNlY19tZXJnZV9zZWNfaW5mbyk6IEFkZCBuZXh0LCBzZWMsIHBzZWNpbmZvIGZpZWxkcy4KCShzZWNfbWVyZ2VfaGFzaF9sb29rdXApOiBJZiBsb29rdXAgY291bGQgbm90IHVzZSBhIHN0cmluZyBvbmx5CgliZWNhdXNlIGl0IGhhcyBiYWQgYWxpZ25tZW50LCBtYXJrIHRoZSBvbGQgc3RyaW5nIGZvciBkZWxldGlvbi4KCShzZWNfbWVyZ2VfYWRkKTogQWRkIHNlY2luZm8gYXJndW1lbnQuIERvbid0IGNvbXB1dGUgZW50cnkncwoJcG9zaXRpb24sIGluc3RlYWQgcmVjb3JkIHRoZSBzZWN0aW9uLgoJKHNlY19tZXJnZV9lbWl0KTogVXBkYXRlIGZvciB0aGUgc2VjIGludG8gc2VjaW5mbyBjaGFuZ2UgaW4KCXN0cnVjdCBzZWNfbWVyZ2VfaGFzaF9lbnRyeS4KCShfYmZkX21lcmdlX3NlY3Rpb24pOiBPbmx5IHJlY29yZCB0aGUgc2VjdGlvbiBmb3IgbWVyZ2luZywgZGVmZXIKCXB1dHRpbmcgc3RyaW5ncyBpbnRvIHRoZSBoYXNoIHRhYmxlLgoJKGNtcGxlbmd0aGVudHJ5LCBsYXN0NF9lcSwgbGFzdF9lcSwgcmVjb3JkX3NlY3Rpb24sIG1lcmdlX3N0cmluZ3MsCglfYmZkX21lcmdlX3NlY3Rpb25zKTogTmV3IGZ1bmN0aW9ucy4KCShfYmZkX21lcmdlZF9zZWN0aW9uX29mZnNldCk6IFVwZGF0ZSBmb3IgdGhlIHNlY19tZXJnZV9oYXNoX2VudHJ5CgljaGFuZ2VzLgoJKiBsaWJiZmQtaW4uaCAoX2JmZF9tZXJnZV9zZWN0aW9ucyk6IEFkZCBwcm90b3R5cGUuCgkoX2JmZF9ub2xpbmtfYmZkX21lcmdlX3NlY3Rpb25zKTogRGVmaW5lLgoJKiBsaWJiZmQuaDogTGlrZXdpc2UuCgkoYmZkX2dlbmVyaWNfbWVyZ2Vfc2VjdGlvbnMpOiBBZGQgcHJvdG90eXBlLgoJKiB0YXJnZXRzLmMgKEJGRF9KVU1QX1RBQkxFX0xJTkspOiBBZGQgX2JmZF9tZXJnZV9zZWN0aW9ucy4KCShzdHJ1Y3QgYmZkX3RhcmdldCk6IExpa2V3aXNlLgoJKiBiZmQuYyAoYmZkX21lcmdlX3NlY3Rpb25zKTogRGVmaW5lLgoJKiBiZmQtaW4yLmg6IFJlYnVpbHQuCgkqIGVsZi5jIChfYmZkX2VsZl9tZXJnZV9zZWN0aW9ucyk6IE5ldyBmdW5jdGlvbi4KCSogZWxmLWJmZC5oIChfYmZkX2VsZl9tZXJnZV9zZWN0aW9ucyk6IEFkZCBwcm90b3R5cGUuCgkqIGVsZnh4LXRhcmdldC5oIChiZmRfZWxmTk5fYmZkX21lcmdlX3NlY3Rpb25zKTogRGVmaW5lLgoJKiByZWxvYy5jIChiZmRfZ2VuZXJpY19tZXJnZV9zZWN0aW9ucyk6IE5ldyBmdW5jdGlvbi4KCSogdm1zLmMgKHZtc19iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBOZXcgZnVuY3Rpb24uCgkqIGFvdXQtYWRvYmUuYyAoYW91dF8zMl9iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBEZWZpbmUuCgkqIGFvdXQtdGFyZ2V0LmggKE1ZX2JmZF9tZXJnZV9zZWN0aW9ucyk6IERlZmluZS4KCSogYW91dC10aWMzMC5jIChNWV9iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBEZWZpbmUuCgkqIGJpbmFyeS5jIChiaW5hcnlfYmZkX21lcmdlX3NlY3Rpb25zKTogRGVmaW5lLgoJKiBib3V0LmMgKGJfb3V0X2JmZF9tZXJnZV9zZWN0aW9ucyk6IERlZmluZS4KCSogY29mZi1hbHBoYS5jIChfYmZkX2Vjb2ZmX2JmZF9tZXJnZV9zZWN0aW9ucyk6IERlZmluZS4KCSogY29mZmNvZGUuYyAoY29mZl9iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBEZWZpbmUuCgkqIGNvZmYtbWlwcy5jIChfYmZkX2Vjb2ZmX2JmZF9tZXJnZV9zZWN0aW9ucyk6IERlZmluZS4KCSogaTM4Nm1zZG9zLmMgKG1zZG9zX2JmZF9tZXJnZV9zZWN0aW9ucyk6IERlZmluZS4KCSogaTM4Nm9zOWsuYyAob3M5a19iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBEZWZpbmUuCgkqIGllZWUuYyAoaWVlZV9iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBEZWZpbmUuCgkqIGloZXguYyAoaWhleF9iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBEZWZpbmUuCgkqIG5sbS10YXJnZXQuaCAobmxtX2JmZF9tZXJnZV9zZWN0aW9ucyk6IERlZmluZS4KCSogb2FzeXMuYyAob2FzeXNfYmZkX21lcmdlX3NlY3Rpb25zKTogRGVmaW5lLgoJKiBwcGNib290LmMgKHBwY2Jvb3RfYmZkX21lcmdlX3NlY3Rpb25zKTogRGVmaW5lLgoJKiBzb20uYyAoc29tX2JmZF9tZXJnZV9zZWN0aW9ucyk6IERlZmluZS4KCSogc3JlYy5jIChzcmVjX2JmZF9tZXJnZV9zZWN0aW9ucyk6IERlZmluZS4KCSogdGVraGV4LmMgKHRla2hleF9iZmRfbWVyZ2Vfc2VjdGlvbnMpOiBEZWZpbmUuCgkqIHZlcnNhZG9zLmMgKHZlcnNhZG9zX2JmZF9tZXJnZV9zZWN0aW9ucyk6IERlZmluZS4KCSogeGNvZmYtdGFyZ2V0LmggKF9iZmRfeGNvZmZfYmZkX21lcmdlX3NlY3Rpb25zKTogRGVmaW5lLgoKMjAwMS0wNS0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAY2FtYnJpZGdlLnJlZGhhdC5jb20+CgoJKiBkd2FyZjEuYyAoX2JmZF9kd2FyZjFfZmluZF9uZWFyZXN0X2xpbmUpOiBDaGFuZ2UgdHlwZSBvZiAnYWRkcicKCXRvIGJlIHVuc2lnbmVkIGxvbmcsIGluIG9yZGVyIHRvIG1hdGNoIGl0cyB1c2UuCgoyMDAxLTA1LTEwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBsaW5rZXIuYyAoX2JmZF9nZW5lcmljX2xpbmtfYWRkX29uZV9zeW1ib2wpOiBDaGVjayBsb29wIG9uCglpbmRpcmVjdCBzeW1ib2xzLgoKMjAwMS0wNS0wOSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBGaXggYSB0eXBvLiBBbGxvY2F0ZQoJdmVyc3ltaGRyLT5zaF9zaXplIGJ5dGVzIGZvciBleHR2ZXJzeW0gaW5zdGVhZCBvZiBoZHItPnNoX3NpemUuCglSZW1vdmUgdGhlIHVudXNlZCB2ZXJpYWJsZSBgZHludmVyJy4KCjIwMDEtMDUtMDggIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5AemVtYnUuY29tPgoKCSogY29mZi1pMzg2LmMgKGNvZmZfaTM4Nl9yZWxvYyk6IERvbid0IGR1bXAgY29yZSBpZiBvdXRwdXRfYmZkIGlzCglOVUxMIG9yIGlzIG5vdCBDT0ZGLgoJKGNvZmZfaTM4Nl9ydHlwZV90b19ob3d0byk6IERvbid0IGR1bXAgY29yZSBpZiBvdXRwdXQgc2VjdGlvbgoJb3duZXIgaXMgbm90IENPRkYuCgoyMDAxLTA1LTA3ICBUaGllbW8gU2V1ZmVyIDxzZXVmZXJAY3N2LmljYS51bmktc3R1dHRnYXJ0LmRlPgoKCSogZWNvZmYuYyAoYmZkX2RlYnVnX3NlY3Rpb24pOiBGaXggaW5pdGlhbGl6YXRpb24uCgkqIGVsZi5jIChfYmZkX2VsZl9zbHVycF92ZXJzaW9uX3RhYmxlcyk6IENoYW5nZSBtYXhpZHggdG8gdW5zaWduZWQsIGl0CglpcyBhbHdheXMgYSBwb3NpdGl2ZSBpbnRlZ2VyLiBDYXN0IGF3YXkgc2lnbiBtaXNtYXRjaC4KCSogZWxmMzItbWlwcy5jOiBGaXggbWlzbGVhZGluZyBjb21tZW50IGFuZCB0eXBvLgoJKF9iZmRfbWlwc19lbGZfc2VjdGlvbl9mcm9tX2JmZF9zZWN0aW9uKTogUmVtb3ZlIHVudXNlZCBhdHRyaWJ1dGUsIHVzZQoJY29ycmVjdCBkYXRhIHR5cGUuCgkqIGVsZmxpbmsuYzogRml4IHR5cG8uCgkoX2JmZF9lbGZfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBSZW1vdmUgc3VwZXJmbHVvdXMgaW5pdGlhbGl6YXRpb24uCgkqIGVjb2Zmc3dhcC5oIChlY29mZl9zd2FwX2Zkcl9pbik6IENhc3QgYXdheSBzaWduIG1pc21hdGNoLgoKMjAwMS0wNS0wNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKFNSRUwxNiwgU1JFTDMyLCBTUkVMNjQpOiBTZXQgcGNyZWxfb2Zmc2V0IHRydWUuCgoyMDAxLTA1LTA0ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjYW1icmlkZ2UucmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IFNldAoJRUZfQVJNX0hBU0VOVFJZIGlmIHRoZSBzdGFydCBhZGRyZXNzIGlzIHNldC4KCjIwMDEtMDUtMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGNhbWJyaWRnZS5yZWRoYXQuY29tPgoKCSogdGFyZ2V0cy5jIChfYmZkX3RhcmdldF92ZWN0b3JfZW50cmllcyk6IENvbXB1dGUgdmFsdWUgYmFzZWQgb24KCXRoZSBzaXplIG9mIHRoZSBfYmZkX3RhcmdldF92ZWN0b3IgYW5kIG5vdCBiZmRfdGFyZ2V0X3ZlY3Rvci4KCjIwMDEtMDUtMDMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZmNvZGUuaDogSW5jbHVkZSAibGliaWJlcnR5LmgiLgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBTZXQKCWVsZl9kdF9uYW1lIChhYmZkKSB0byBiYXNlbmFtZSBvZiB0aGUgYmZkIGZpbGVuYW1lLgoJKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogU2V0IHZuX2ZpbGUgdG8gYmFzZW5hbWUKCW9mIHRoZSBiZmQgZmlsZW5hbWUuCgoyMDAxLTA1LTAzICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGY2NC1nZW4uYyAoZWxmX2dlbmVyaWNfaW5mb190b19ob3d0byk6IEFkZCB1bnVzZWQgYXR0cmlidXRlLgoJKGVsZl9nZW5lcmljX2luZm9fdG9faG93dG9fcmVsKTogTGlrZXdpc2UuCgkqIGNvZmYtYWxwaGEuYyAocmVsb2NfbmlsKTogTGlrZXdpc2UuCgkoYWxwaGFfZWNvZmZfYmFkX2Zvcm1hdF9ob29rKTogTGlrZXdpc2UuCgkoYWxwaGFfYWRqdXN0X3JlbG9jX291dCk6IExpa2V3aXNlLgoJKGFscGhhX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGFscGhhX2NvbnZlcnRfZXh0ZXJuYWxfcmVsb2MpOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NfbmlsKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfcmVsb2NfYmFkKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfcmVsb2NfZ3BkaXNwKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfYmZkX3JlbG9jX3R5cGVfbG9va3VwKTogTGlrZXdpc2UuCgkoZWxmNjRfYWxwaGFfaW5mb190b19ob3d0byk6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX2FkZF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IExpa2V3aXNlLgoJKGVsZjY0X2FscGhhX2lzX2xvY2FsX2xhYmVsX25hbWUpOiBMaWtld2lzZS4KCShlbGY2NF9hbHBoYV9tZXJnZV9pbmRfc3ltYm9scyk6IExpa2V3aXNlLgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfcmVsb2NfdHlwZV9sb29rdXApOiBMaWtld2lzZS4KCShtaXBzX2VsZjY0X2dldF9yZWxvY191cHBlcl9ib3VuZCk6IExpa2V3aXNlLgoJKiBubG0zMi1hbHBoYS5jIChubG1fYWxwaGFfbWFuZ2xlX3JlbG9jcyk6IExpa2V3aXNlLgoJKG5sbV9hbHBoYV9nZXRfcHVibGljX29mZnNldCk6IExpa2V3aXNlLgoKMjAwMS0wNS0wMiAgSm9oYW4gUnlkYmVyZyAgPGpyeWRiZXJnQG9wZW5jb3Jlcy5vcmc+CgoJKiBlbGYzMi1vcGVucmlzYy5jIChvcGVucmlzY19lbGZfaG93dG9fdGFibGUpOiBEbyBub3QgY29tcGxhaW4KCWFib3V0IG92ZXJmbG93IGluIFJfT1BFTlJJU0NfTE9fMTZfSU5fSU5TTiBhbmQKCVJfT1BFTlJJU0NfSElfMTZfSU5fSU5TTi4KCjIwMDEtMDQtMzAgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfaGlkZV9zeW1ib2wpOiBTZXQgZHluaW5keCB0byAtMQoJb25seSBmb3IgRUxGX0xJTktfRk9SQ0VEX0xPQ0FMLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfaGlkZV9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2hpZGVfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9oYXNoX2hpZGVfc3ltYm9sKTogTGlrZXdpc2UuCgoJKiBlbGZsaW5rLmggKGVsZl9maXhfc3ltYm9sX2ZsYWdzKTogU2V0IEVMRl9MSU5LX0ZPUkNFRF9MT0NBTAoJaWYgdGhlIHN5bWJvbCBoYXMgaGlkZGVuIG9yIGludGVybmFsIHZpc2liaWxpdHkuCgoyMDAxLTA0LTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQG9uZS5uZXQuYXU+CgoJKiBlbGYzMi1ocHBhLmMgKGZpbmFsX2xpbmtfcmVsb2NhdGUpOiBCcmFuY2ggdG8gLis4IGZvcgoJY2FsbHMgdG8gdW5kZWZpbmVkIHdlYWsgc3ltYm9scy4KCjIwMDEtMDQtMzAgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4sIEFuZHJlYXMgU2Nod2FiIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IENvcnJlY3QgdGVzdCBmb3IKCVJfWDg2XzY0X0dPVFBDUkVMLCBkb24ndCB1c2UgYXNzaWdubWVudHMgaW5zdGVhZCBvZiBjb21wYXJpc29ucy4KCjIwMDEtMDQtMjcgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBPbmx5IHN3YXAKCW91dCBoYW5kbGVkIGVudHJpZXMuCgkoZWxmNjRfeDg2XzY0X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFNldCB1cCBHT1QgZW50cmllcy4KCShlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IEZpeCBHT1RQQ1JFTCBjYWxjdWxhdGlvbi4KCShlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IE1lcmdlIGVudHJpZXMgZm9yIEdPVFBDUkVMIGFuZAoJR09UMzIuCgoyMDAxLTA0LTI3ICBTZWFuIE1jTmVpbCA8c2VhbkBtY25laWwuY29tPgoKCSogY29uZmlnLmJmZDogQWRkIGFybS12eHdvcmtzIHRhcmdldC4KCSogY29mZi1hcm0gKGNvZmZfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBBZGQgaW4gc3ltYm9sIHZhbHVlIHRvCglhZGRlbmQgKGZybyBWWHdvcmtzIHRhcmdldHMpLgoKMjAwMS0wNC0yNiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBWZXJpZnkgaWYgcl9zeW1uZHggaXMKCXZhbGlkLgoKMjAwMS0wNC0yNSAgRnJhbmsgQ2guIEVpZ2xlciAgPGZjaGVAcmVkaGF0LmNvbT4KCgkqIGJmZC1pbi5oIChiZmRfY2FjaGVfY2xvc2UpOiBEZWNsYXJlIG5ld2x5IGV4cG9ydGVkIGZ1bmN0aW9uLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGVkLgoKMjAwMS0wNC0yNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBtZXJnZS5jIChzdHJ1Y3Qgc2VjX21lcmdlX2hhc2hfZW50cnkpOiBBZGQgYWxpZ25tZW50IGZpZWxkLgoJKHN0cnVjdCBzZWNfbWVyZ2VfaGFzaCk6IFJlbW92ZSBhbGlnbm1lbnRfcG93ZXIuCgkoc2VjX21lcmdlX2hhc2hfbmV3ZnVuYyk6IENsZWFyIGFsaWdubWVudC4KCShzZWNfbWVyZ2VfaGFzaF9sb29rdXApOiBQYXNzIGFsaWdubWVudCBhcyBhcmd1bWVudC4KCVVzZSBoYXNocC0+cm9vdC5uZXh0LCBub3QgaGFzaHAtPm5leHQgdG8gd2FsayB0aGUgaGFzaCBjaGFpbi4KCUlmIGEgc3RyaW5nIGFscmVhZHkgaW4gdGhlIGhhc2h0YWJsZSBkb2VzIG5vdCBoYXZlIHJlcXVpcmVkCglhbGlnbm1lbnQsIGNyZWF0ZSBhIG5ldyBoYXNodGFibGUgZW50cnkuCgkoc2VjX21lcmdlX2luaXQpOiBSZW1vdmUgYWxpZ25tZW50X3Bvd2VyIGFyZ3VtZW50LgoJKHNlY19tZXJnZV9hZGQpOiBBZGQgYWxpZ25tZW50IGFyZ3VtZW50LgoJKHNlY19tZXJnZV9lbWl0KTogQWxpZ25tZW50IGlzIG5vdyBhIHBlci1lbnRpdHkgdGhpbmcsIG5vdCBwZXIKCXNlY3Rpb24uCgkoX2JmZF9tZXJnZV9zZWN0aW9uKTogU2FuaXR5IGNoZWNrIGV2ZW4gbm9uLVNFQ19TVFJJTkdTIHNlY3Rpb25zCglmb3IgcHJvcGVyIGFsaWdubWVudC4KCVBhc3MgYWxpZ25tZW50IGluZm9ybWF0aW9uIHRvIHNlY19tZXJnZV9hZGQuCgoyMDAxLTA0LTI0ICBDaHJpc3RpYW4gR3JvZXNzbGVyICA8Y3BnQGFsYWRkaW4uZGU+CgoJKiBjb2ZmLXo4ay5jIChleHRyYV9jYXNlKTogYWRkZWQgaGFuZGxlciBmb3IgUl9ESVNQNywgUl9DQUxMUgoJYW5kIFJfUkVMMTYgcmVsb2MgdHlwZXM7IGFjY2VwdCBvZGQgdmFsdWVzIGZvciBSX1JFTDE2IHR5cGUKCjIwMDEtMDQtMjQgIEpvaGFuIFJ5ZGJlcmcgIDxqcnlkYmVyZ0BvcGVuY29yZXMub3JnPgoKCSogY3B1LW9wZW5yaXNjLmM6IE5ldyBmaWxlLgoJKiBlbGYzMi1vcGVucmlzYy5jOiBMaWtld2lzZS4KCgkqIE1ha2VmaWxlLmFtIChBTExfTUFDSElORVMpOiBBZGQgY3B1LW9wZW5yaXNjLmxvLgoJKEFMTF9NQUNISU5FU19DRklMRVMpOiBBZGQgY3B1LW9wZW5yaXNjLmMuCgkoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWxmMzItb3BlbnJpc2MubG8uCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjMyLW9wZW5yaXNjLmMuCgkoY3B1LW9wZW5yaXNjLmxvLCBlbGYzMi1vcGVucmlzYy5sbyk6IE5ldyBydWxlcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoJKiBjb25maWcuYmZkOiAob3BlbnJpc2MtKi1lbGYpOiBOZXcgdGFyZ2V0LgoJKiBjb25maWd1cmUuaW4gKGJmZF9lbGYzMl9vcGVucmlzY192ZWMpOiBOZXcgdmVjdG9yLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZWQuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgkqIHJlbG9jLmM6IEFkZCBPcGVuUklTQyByZWxvY2F0aW9ucy4KCSogdGFyZ2V0cy5jIChiZmRfZWxmMzJfb3BlbnJpc2NfdmVjKTogRGVjbGFyZS4KCShiZmRfdGFyZ2V0X3ZlY3QpOiBBZGQgYmZkX2VsZjMyX29wZW5yaXNjX3ZlYy4KCSogYXJjaHVyZXMuYyAoZW51bSBiZmRfYXJjaGl0ZWN0dXJlKTogQWRkIGJmZF9hcmNoX29wZW5yaXNjLgoJKGJmZF9vcGVucmlzY19hcmNoKTogRGVjbGFyZS4KCShiZmRfYXJjaHVyZXNfbGlzdCk6IEFkZCBiZmRfb3BlbnJpc2NfYXJjaC4KCSogZWxmLmMgKHByZXBfaGVhZGVycyk6IEFkZCBiZmRfYXJjaF9vcGVucmlzYy4KCjIwMDEtMDQtMjMgIEJvIFRob3JzZW4gIDxib0BzdXNlLmRlPgoKCSogZWxmNjQteDg2LTY0LmM6IEFkZCBjKysgdnRhYmxlIGhhY2suCglTbWFsbCB3aGl0ZXNwYWNlIGFuZCBjb21tZW50IGNoYW5nZXMuCgoyMDAxLTA0LTE5ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3BsdDBfZW50cnkpOiBGaXggaW5zdHJ1Y3Rpb25zLgoJKGVsZjY0X3g4Nl82NF9wbHRfZW50cnkpOiBMaWtld2lzZS4KCShlbGY2NF94ODZfNjRfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBGaXggUExUMCBnZW5lcmF0aW9uLgoJKGVsZjY0X3g4Nl82NF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBGaXggUExUIGdlbmVyYXRpb24uCgoyMDAxLTA0LTE3ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZjMyLWNyaXMuYzogVHdlYWsgY29tbWVudHMgcmVsYXRlZCB0byBkeW5hbWljIGxpbmtpbmcuCgkoY3Jpc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFdoZW4gbm90IGNyZWF0aW5nIHNoYXJlZCBvYmplY3QsIGZpbGwKCWluIHRoZSAuZ290IHRhYmxlIGZvciBhbnkgc3ltYm9sIG5vdCBpbiB0aGUgZHluYW1pYyBzeW1ib2wgdGFibGUuCgkoZWxmX2NyaXNfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogV2hlbiBub3QgY3JlYXRpbmcgc2hhcmVkIG9iamVjdCwKCW9ubHkgZW1pdCBhIC5nb3QucmVsYSByZWxvYyBpZiB0aGUgc3ltYm9sIGlzIGluIHRoZSBkeW5hbWljIHN5bWJvbAoJdGFibGUuCgkoY3Jpc19lbGZfY2hlY2tfcmVsb2NzKTogVXNlIHZhcmlhYmxlIHJfdHlwZSBpbiBhbGwgcGxhY2VzIHJhdGhlcgoJdGhhbiB0aGUgb3JpZ2luYWwgZXhwcmVzc2lvbi4gIEFkZCBkZWZhdWx0IGNhc2UgaW4gc3dpdGNoIGZvcgoJcmVsb2MgdHlwZXMuCgkoZWxmX2NyaXNfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogSXRlcmF0ZSBvdmVyCgllbGZfY3Jpc19kaXNjYXJkX2V4Y2Vzc19wcm9ncmFtX2R5bmFtaWNzIHdoZW4gbm90IGNyZWF0aW5nIHNoYXJlZAoJbGlicmFyeS4KCShlbGZfY3Jpc19kaXNjYXJkX2V4Y2Vzc19kc29fZHluYW1pY3MpOiBSZW5hbWVkIGZyb20KCWVsZl9jcmlzX2Rpc2NhcmRfY29waWVzLiAgQ29ycmVjdCB0eXBvLCBzL1JlbC9SZWxhLy4KCShlbGZfY3Jpc19kaXNjYXJkX2V4Y2Vzc19wcm9ncmFtX2R5bmFtaWNzKTogTmV3LgoKMjAwMS0wNC0xNCAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0BiaWdmb290LmNvbT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfd3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogVXNlCgliZmRfY29mZl9zd2FwX2ZpbGVoZHJfb3V0IGluc3RlYWQgb2YgY29mZl9zd2FwX2ZpbGVoZHJfb3V0LgoKMjAwMS0wNC0xNCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMS0wNC0xNCAgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHNlY3Rpb24uYyAoU1REX1NFQ1RJT04pOiBBZGQgZW50c2l6ZS4KCjIwMDEtMDQtMTMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHNlY3Rpb24uYyAoU0VDX01FUkdFKTogRGVmaW5lIG5ldyBmbGFnIGZvciBtZXJnaW5nLgoJKFNFQ19TVFJJTkdTKTogTGlrZXdpc2UuCgkoZW50c2l6ZSk6IE5ldyBmaWVsZC4KCjIwMDEtMDQtMTMgIFJvZ2VyIFNheWxlICA8cm9nZXJAbWV0YXBob3JpY3MuY29tPgoKCSogY29mZi1pMzg2LmMgKFRBUkdFVF9TWU0pOiBTRUNfUkVBRE9OTFkgaXMgYW4gYXBwbGljYWJsZSBzZWN0aW9uCglmbGFnIG9uIHBlLWkzODYgdGFyZ2V0cy4KCjIwMDEtMDQtMTMgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbGliYmZkLWluLmggKF9iZmRfbWVyZ2Vfc2VjdGlvbik6IE5ldy4KCShfYmZkX3dyaXRlX21lcmdlZF9zZWN0aW9uKTogTmV3LgoJKF9iZmRfbWVyZ2VkX3NlY3Rpb25fb2Zmc2V0KTogTmV3LgoJKiBsaWJiZmQuaDogUmVidWlsdC4KCSogbGlua2VyLmMgKF9iZmRfZ2VuZXJpY19saW5rX291dHB1dF9zeW1ib2xzKTogSGFuZGxlCglkaXNjYXJkX3NlY19tZXJnZS4KCSogYW91dHguaCAoYW91dF9saW5rX3dyaXRlX3N5bWJvbHMpOiBMaWtld2lzZS4KCSogcGRwMTEuYyAoYW91dF9saW5rX3dyaXRlX3N5bWJvbHMpOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBDYWxsIF9iZmRfbWVyZ2Vfc2VjdGlvbi4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBBZGp1c3QgZ2xvYmFsIHN5bWJvbHMgcG9pbnRpbmcgaW50byBTRUNfTUVSR0UKCXNlY3Rpb25zLgoJKGVsZl9saW5rX3NlY19tZXJnZV9zeW1zKTogTmV3LgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IENhbGwgX2JmZF9tZXJnZWRfc2VjdGlvbl9vZmZzZXQKCWFuZCBfYmZkX3dyaXRlX21lcmdlZF9zZWN0aW9uLgoJSGFuZGxlIGRpc2NhcmRfc2VjX21lcmdlLgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfbGlua19oYXNoX3RhYmxlKTogQWRkIG1lcmdlX2luZm8KCWZpZWxkLgoJKHN0cnVjdCBiZmRfZWxmX3NlY3Rpb25fZGF0YSk6IExpa2V3aXNlLgoJKiBlbGYuYyAoX2JmZF9lbGZfbWFrZV9zZWN0aW9uX2Zyb21fc2hkcik6IFNldCBTRUNfTUVSR0UgYW5kCglTRUNfU1RSSU5HUyBzZWN0aW9uIGZsYWdzIGFuZCBlbnRzaXplIGZyb20gdGhlaXIgRUxGIGNvdW50ZXJwYXJ0cy4KCShfYmZkX2VsZl9saW5rX2hhc2hfdGFibGVfaW5pdCk6IEluaXRpYWxpemUgbWVyZ2VfaW5mby4KCShlbGZfZmFrZV9zZWN0aW9ucyk6IFNldCBTSEZfTUVSR0UsIFNIRl9TVFJJTkdTIGFuZCBzaF9lbnRzaXplCglmcm9tIHRoZWlyIEJGRCBjb3VudGVycGFydHMuCgkqIG1lcmdlLmM6IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5hbTogQWRkIHN0cnRhYi5sby4KCSogTWFrZWZpbGUuaW46IFJlYnVpbHQuCgoyMDAxLTA0LTA5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2ZpeF9zeW1ib2xfZmxhZ3MpOiBGb3Igbm9uLWRlZmF1bHQgdmlzaWJpbGl0aWVzLAoJb25seSBoaWRlIHN5bWJvbHMgbWFya2VkIFNUVl9JTlRFUk5BTCBvciBTVFZfSElEREVOLgoKMjAwMS0wNC0wNSAgU3RldmVuIEouIEhpbGwgIDxzamhpbGxAY290dy5jb20+CgoJKiBjb25maWcuYmZkIChtaXBzKmVsKi0qLWxpbnV4LWdudSopOiBVc2UgdHJhZGl0aW9uYWwgbGl0dGxlCgllbmRpYW4gTUlQUyBFTEYgdGFyZ2V0LgoJKiBjb25maWcuYmZkIChtaXBzKi0qLWxpbnV4LWdudSopOiBVc2UgdHJhZGl0aW9uYWwgYmlnIGVuZGlhbgoJTUlQUyBFTEYgdGFyZ2V0LgoKCSogY29uZmlndXJlLmluIChiZmRfZWxmNjRfdHJhZGJpZ21pcHNfdmVjKTogTmV3LiBUcmFkaXRpb25hbAoJNjRiaXQgYmlnIGVuZGlhbiBNSVBTIEVMRiB0YXJnZXQuCgkoYmZkX2VsZjY0X3RyYWRsaXR0bGVtaXBzX3ZlYyk6IE5ldy4gVHJhZGl0aW9uYWwgNjRiaXQgbGl0dGxlCgllbmRpYW4gTUlQUyBFTEYgdGFyZ2V0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKCSogZWxmMzItbWlwcy5jIChJUklYX0NPTVBBVCk6IEhhbmRsZSB0cmFkaXRpb25hbCA2NGJpdCBhbmQKCWxpdHRsZSBlbmRpYW4gdGFyZ2V0cy4KCShtaXBzX2VsZl9zeW1faXNfZ2xvYmFsKTogSGFuZGxlIHRyYWRpdGlvbmFsIHRhcmdldHMuCgoJKiBlbGY2NC1taXBzLmMgKGJmZF9lbGY2NF90cmFkYmlnbWlwc192ZWMpOiBOZXcuIFRyYWRpdGlvbmFsCgk2NGJpdCBiaWcgZW5kaWFuIE1JUFMgRUxGIHRhcmdldC4KCShiZmRfZWxmNjRfdHJhZGxpdHRsZW1pcHNfdmVjKTogTmV3LiBUcmFkaXRpb25hbCA2NGJpdCBsaXR0bGUKCWVuZGlhbiBNSVBTIEVMRiB0YXJnZXQuCgoJKiB0YXJnZXRzLmM6IChfYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgYmZkX2VsZjY0X3RyYWRiaWdtaXBzX3ZlYwoJYW5kIGJmZF9lbGY2NF90cmFkbGl0dGxlbWlwc192ZWMuCgoyMDAxLTA0LTA1ICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfZmFrZV9zZWN0aW9ucyk6IFRyZWF0ICIucmVsb2MiIGFzIGFuCglvcmRpbmFyeSAicHJvZ2JpdHMiIHNlY3Rpb24uCgoyMDAxLTA0LTA0ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmbGluay5oIChlbGZfZml4X3N5bWJvbF9mbGFncyk6IENhbGwgZWxmX2JhY2tlbmRfaGlkZV9zeW1ib2wKCXdoZW4gLUJzeW1ib2xpYyBjYXVzZXMgYSBzeW1ib2wgdG8gbm8gbG9uZ2VyIG5lZWQgYSAucGx0IGVudHJ5LgoKMjAwMS0wNC0wMyAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgoJKiBlZmktYXBwLWlhMzIuYyAoQUxJR05fU0VDVElPTlNfSU5fRklMRSk6IERlbGV0ZWQuCgoyMDAxLTAzLTMwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlZmktYXBwLWlhMzIuYyAoUEVJX1RBUkdFVF9TVUJTWVNURU0pOiBSZW5hbWUgZnJvbSAuLi4KCShQRUlfREVGQVVMVF9UQVJHRVRfU1VCU1lTVEVNKTogVGhpcy4KCjIwMDEtMDMtMjYgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLWdlbi5jIChlbGYzMl9nZW5lcmljX2xpbmtfYWRkX3N5bWJvbHMpOiBOZXcuIENoZWNrCglpZiB0aGVyZSBhcmUgYW55IHJlbG9jYXRpb25zIGZvciBnZW5lcmljIEVMRi4KCShiZmRfZWxmMzJfYmZkX2xpbmtfYWRkX3N5bWJvbHMpOiBEZWZpbmVkIHRvCgllbGYzMl9nZW5lcmljX2xpbmtfYWRkX3N5bWJvbHMuCgkqIGVsZjY0LWdlbi5jIChlbGY2NF9nZW5lcmljX2xpbmtfYWRkX3N5bWJvbHMpOiBOZXcuIENoZWNrCglpZiB0aGVyZSBhcmUgYW55IHJlbG9jYXRpb25zIGZvciBnZW5lcmljIEVMRi4KCShiZmRfZWxmNjRfYmZkX2xpbmtfYWRkX3N5bWJvbHMpOiBEZWZpbmVkIHRvCgllbGY2NF9nZW5lcmljX2xpbmtfYWRkX3N5bWJvbHMuCgoyMDAxLTAzLTIzICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuYW0gKEJVSUxEX0NGSUxFUyk6IE5ldyB2YXJpYWJsZTogTGlzdCBvZiBDIHNvdXJjZQoJZmlsZXMgY3JlYXRlZCBpbiBidWlsZCBkaXJlY3RvcnkuCgkoQlVJTERfSEZJTEVTKTogTmV3IHZhcmlhYmxlOiBMaXN0IG9mIGhlYWRlciBmaWxlcyBjcmVhdGVkIGluCglidWlsZCBkaXJlY3RvcnkuCgkoUE9URklMRVMpOiBEZWxldGUuCgkocG8vUE9URklMRVMuaW4pOiBSZXBsYWNlIHJ1bGUgd2l0aCBlbXB0eSBlbnRyeS4KCShwby9TUkMtUE9URklMRVMuaW4pOiBOZXcgcnVsZTogQ3JlYXRlIGEgbGlzdCBvZiBzb3VyY2UgZmlsZXMKCWluIHRoZSBzb3VyY2UgZGlyZWN0b3J5LgoJKHBvL0JMRC1QT1RGSUxFUy5pbik6IE5ldyBydWxlOiBDcmVhdGUgYSBsaXN0IG9mIHNvdXJjZSBmaWxlcwoJaW4gdGhlIGJ1aWxkIGRpcmVjdG9yeS4KCShNT1NUTFlDTEVBTik6IERvIG5vdCBkZWxldGUgc291cmNlIGZpbGVzIGNyZWF0ZWQgaW4gYnVpbGQKCWRpcmVjdG9yeS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS5pbjogSW5zZXJ0IFNSQy1QT1RGSUxFUy5pbiBhbmQgQkxELVBPVEZJTEVTLmluCglpbnRvIHBvL01ha2VmaWxlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoJKiBwby9NYWtlLWluOiBSZXBsYWNlIG9jY3VycmVuY2VzIG9mIFBPVEZJTEVTIHdpdGggU1JDLVBPVEZJTEVTCglhbmQgQkxEX1BPVEZJTEVTLgoJQWRkIC4uIHRvIHRoZSBzZWFyY2ggcGF0aCB3aGVuIGJ1aWxkaW5nIGJmZC5wb3QuCglEZWxldGUgUE9URklMRVMgd2hlbiBwZXJmb3JtaW5nIGRpc3RjbGVhbi4KCUFkZCBjb21tZW50IGRlc2NyaWJpbmcgd2h5IGRpc3RjbGVhbiBpcyBicm9rZW4gaW4gbWFpbnRhaW5lciBtb2RlLgoJKiBwby9QT1RGSUxFUy5pbjogRGVsZXRlLgoJKiBwby9TUkMtUE9URklMRVMuaW46IE5ldyBmaWxlLgoJKiBwby9CTEQtUE9URklMRVMuaW46IE5ldyBmaWxlLgoJKiBwby9iZmQucG90OiBSZWdlbmVyYXRlLgoKMjAwMS0wMy0yMiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBlbGYzMi1jcmlzLmM6IFNobGliIGFuZCBQSUMgc3VwcG9ydC4gIFBDUkVMIHR3ZWFrcy4KCShlbGZfY3Jpc19kaXNjYXJkX2NvcGllcywgZWxmX2NyaXNfYWRqdXN0X2dvdHBsdF90b19nb3QsCgllbGZfY3Jpc190cnlfZm9sZF9wbHRfdG9fZ290LCBlbGZfY3Jpc19saW5rX2hhc2hfbmV3ZnVuYywKCWVsZl9jcmlzX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUsIGVsZl9jcmlzX2FkanVzdF9keW5hbWljX3N5bWJvbCwKCWVsZl9jcmlzX3NpemVfZHluYW1pY19zZWN0aW9ucywgZWxmX2NyaXNfZmluaXNoX2R5bmFtaWNfc3ltYm9sLAoJZWxmX2NyaXNfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMsZWxmX2NyaXNfaGlkZV9zeW1ib2wpOiBOZXcKCWZ1bmN0aW9ucy4KCShjcmlzX2VsZl9ob3d0b190YWJsZSkgPFJfQ1JJU184X1BDUkVMLCBSX0NSSVNfMTZfUENSRUwsCglSX0NSSVNfMzJfUENSRUw+OiBDb3JyZWN0IGNvbW1lbnRzLiAgU2V0IHBjcmVsX29mZnNldCB0byBmYWxzZS4KCTxSX0NSSVNfQ09QWSwgUl9DUklTX0dMT0JfREFULCBSX0NSSVNfSlVNUF9TTE9ULCBSX0NSSVNfUkVMQVRJVkUsCglSX0NSSVNfMTZfR09ULCBSX0NSSVNfMzJfR09ULCBSX0NSSVNfMTZfR09UUExULCBSX0NSSVNfMzJfR09UUExULAoJUl9DUklTXzMyX0dPVFJFTCwgUl9DUklTXzMyX1BMVF9HT1RSRUwsIFJfQ1JJU18zMl9QTFRfUENSRUw+OgoJTmV3IEhPV1RPIG1lbWJlcnMgZm9yIG5ldyByZWxvY3MuCgkoY3Jpc19yZWxvY19tYXApOiBNYXAgbmV3IHJlbG9jcy4KCShFTEZfRFlOQU1JQ19JTlRFUlBSRVRFUik6IERlZmluZS4KCShQTFRfRU5UUllfU0laRSk6IERlZmluZS4KCShlbGZfY3Jpc19wbHQwX2VudHJ5LCBlbGZfY3Jpc19wbHRfZW50cnksIGVsZl9jcmlzX3BpY19wbHQwX2VudHJ5LAoJZWxmX2NyaXNfcGljX3BsdF9lbnRyeSk6IE5ldywgUExUIHRlbXBsYXRlcy4KCShzdHJ1Y3QgZWxmX2NyaXNfcGNyZWxfcmVsb2NzX2NvcGllZCwgc3RydWN0CgllbGZfY3Jpc19saW5rX2hhc2hfZW50cnksIHN0cnVjdCBlbGZfY3Jpc19saW5rX2hhc2hfdGFibGUpOiBOZXcuCgkoZWxmX2NyaXNfbGlua19oYXNoX3RyYXZlcnNlLCBlbGZfY3Jpc19oYXNoX3RhYmxlKTogRGVmaW5lLgoJKGNyaXNfZmluYWxfbGlua19yZWxvY2F0ZSk6IENoZWNrIHRoYXQgMTYtYml0IEdPVCByZWxvY3MgaGF2ZQoJcG9zaXRpdmUgdmFsdWVzLiAgQWRqdXN0IFBDUkVMIHJlbG9jcyB0byBiZSByZWxhdGl2ZSB0byBsb2NhdGlvbgoJYWZ0ZXIgcmVsb2NhdGlvbi4KCShjcmlzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIHJlbG9jYXRpb25zIHRvIGR5bmFtaWMKCW9iamVjdHMuICBIYW5kbGUgbmV3IHJlbG9jYXRpb25zLiAgQ2FsbCBlcnJvciBoYW5kbGVyIHdoZW4gc2VlaW5nCglub24tUElDIHJlbG9jYXRpb24gZm9yIHJlYWQtb25seSBzZWN0aW9ucyB3aGlsZSBnZW5lcmF0aW5nIHNoYXJlZAoJb2JqZWN0LgoJKGNyaXNfZWxmX2NoZWNrX3JlbG9jcyk6IFNldCByZWZlcmVuY2UgY291bnRzIGZvciBHT1QgYW5kIFBMVAoJZW50cmllcy4KCShiZmRfZWxmMzJfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUsCgllbGZfYmFja2VuZF9hZGp1c3RfZHluYW1pY19zeW1ib2wsCgllbGZfYmFja2VuZF9zaXplX2R5bmFtaWNfc2VjdGlvbnMsCgllbGZfYmFja2VuZF9maW5pc2hfZHluYW1pY19zeW1ib2wsCgllbGZfYmFja2VuZF9maW5pc2hfZHluYW1pY19zZWN0aW9ucywKCWVsZl9iYWNrZW5kX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zLCBiZmRfZWxmMzJfYmZkX2ZpbmFsX2xpbmssCgllbGZfYmFja2VuZF9oaWRlX3N5bWJvbCwgZWxmX2JhY2tlbmRfd2FudF9nb3RfcGx0LAoJZWxmX2JhY2tlbmRfcGx0X3JlYWRvbmx5LCBlbGZfYmFja2VuZF93YW50X3BsdF9zeW0sCgllbGZfYmFja2VuZF9nb3RfaGVhZGVyX3NpemUsIGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6CglEZWZpbmUuCgoJKiByZWxvYy5jOiAoQkZEX1JFTE9DX0NSSVNfQ09QWSwgQkZEX1JFTE9DX0NSSVNfR0xPQl9EQVQsCglCRkRfUkVMT0NfQ1JJU19KVU1QX1NMT1QsIEJGRF9SRUxPQ19DUklTX1JFTEFUSVZFLAoJQkZEX1JFTE9DX0NSSVNfMzJfR09ULCBCRkRfUkVMT0NfQ1JJU18xNl9HT1QsCglCRkRfUkVMT0NfQ1JJU18zMl9HT1RQTFQsIEJGRF9SRUxPQ19DUklTXzE2X0dPVFBMVCwKCUJGRF9SRUxPQ19DUklTXzMyX0dPVFJFTCwgQkZEX1JFTE9DX0NSSVNfMzJfUExUX0dPVFJFTCwKCUJGRF9SRUxPQ19DUklTXzMyX1BMVF9QQ1JFTCk6IE5ldyByZWxvY3MuCgkqIGJmZC1pbjIuaCwgbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgoyMDAxLTAzLTIxICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkoX2JmZF9taXBzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogR2l2ZSBhIGJldHRlciBlcnJvciBtZXNzYWdlIHdoZW4KCWEgcmVsb2NhdGlvbiBpcyBub3QgcmVjb2duaXplZC4KCjIwMDEtMDMtMjEgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfc2V0X2dwKTogQ2hlY2sgc2VjLT5vdXRwdXRfc2VjdGlvbgoJbm9uLU5VTEwgYmVmb3JlIGF0dGVtcHRpbmcgdG8gZGVyZWZlcmVuY2UuCgoyMDAxLTAzLTIwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBjb25maWd1cmUuaW46IFJlbW92ZSB0aGUgcmVkdW5kZW50IEFDX0FSR19QUk9HUkFNLgoJKiBjb25maWd1cmU6IFJlYnVpbGQuCgoyMDAxLTAzLTIwICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgbmVlZCB0aGUKCXJlbG9jYXRpb24gdmFsdWUgd2hlbiByZXNvbHZpbmcgYSByZWZlcmVuY2UgZnJvbSBhIGRlYnVnZ2luZwoJc2VjdGlvbi4KCjIwMDEtMDMtMTYgIFNjb3R0IFRob21hc29uICA8U1Rob21hc29AaGlpLmNvbT4KCgkqIGNvZmY2NC1yczYwMDAuYyAoeGNvZmY2NF9zd2FwX3N5bV9vdXQpOiBGaXggc3ludGF4IGVycm9ycy4KCSh4Y29mZjY0X3N3YXBfc3ltX291dCk6IEZpeCBzeW50YXggZXJyb3JzLgoKMjAwMS0wMy0xNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogRml4IHdhcm5pbmcuCgoyMDAxLTAzLTE1ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2xpbmtfaGFzaF9lbnRyeSk6IEFkZCBtYXliZV9waWNfY2FsbC4KCShocHBhX2xpbmtfaGFzaF9uZXdmdW5jKTogSW5pdCBpdC4KCShocHBhX3R5cGVfb2Zfc3R1Yik6IE9ubHkgdXNlIG5vbi1QSUMgdG8gUElDIGNhbGwgc3R1YiBpZiBjYWxsZXIKCXNlY3Rpb24gYXBwZWFycyB0byBiZSBub24tUElDLgoJKGZpbmFsX2xpbmtfcmVsb2NhdGUpOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFNldCBtYXliZV9waWNfY2FsbCBmb3IgYW55Cglwb3NzaWJsZSBjYW5kaWRhdGUgZnVuY3Rpb24sIGFuZCBzZXQgcGljX2NhbGwgZm9yIHRob3NlIHRoYXQgd2lsbAoJb25seSBoYXZlIGEgLnBsdCBlbnRyeSBmb3IgdGhlIFBJQyBjYWxsIHN0dWIuCgkoaHBwYV9oYW5kbGVfUElDX2NhbGxzKTogU2V0IG1heWJlX3BpY19jYWxsLgoKMjAwMS0wMy0xMiAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IE9ubHkgcmVsb2NhdGlvbgoJUl9TSF9ESVI4V1AqIHJlbG9jcyBpZiB0aGV5J3JlIGFnYWluc3QgZXh0ZXJuYWwgc3ltYm9scywgZWxzZQoJdGhleSdyZSBqdXN0IGZvciByZWxheGluZy4gIFZhbGlkYXRlIHRoZSByZWxvYyB2YWx1ZXMuCgoyMDAxLTAzLTEyICBTdGVmYW4gR2V1a2VuIDxtYWlsQHN0ZWZhbi1nZXVrZW4uZGU+CgoJKiBiaW5hcnkuYyAoYmZkX2V4dGVybmFsX2JpbmFyeV9hcmNoaXRlY3R1cmUpOiBEZWNsYXJlLgoJKGJpbmFyeV9vYmplY3RfcCk6IElmIGJmZF9leHRlcm5hbF9iaW5hcnlfYXJjaGl0ZWN0dXJlIGlzIGRlZmluZWQsCglzZXQgdGhlIGFyY2hpdGVjdHVyZSB0byB0aGlzIHN0cmluZy4KCjIwMDEtMDMtMTEgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IERvbid0IG1ha2UgUExUCgllbnRyaWVzIHRoYXQgY291bGQgc2VydmUgYXMgYSBkZWZpbml0aW9uIGZvciBhIHdlYWsgc3ltYm9sLgoKMjAwMS0wMy0wOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE1vc3QgZmlsZXM6IFVwZGF0ZSBjb3B5cmlnaHQgbm90aWNlcyB1c2luZyBQZXJsIHNjcmlwdCBjcmVhdGVkCglieSBLZXZpbiBCdWV0dG5lciA8a2V2aW5iQHJlZGhhdC5jb20+LgoKMjAwMS0wMy0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IENvbmRpdGlvbmFsaXNlCglwcmlvciBwYXRjaCBvbiAhIGRlZmluZWQgT0xEX0FSTV9BQkkuCgoyMDAxLTAzLTA3ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBGaXggaGFuZGxpbmcgb2YKCXNvbWUgcmVsb2NhdGlvbiB2YWx1ZXMuCgoyMDAxLTAzLTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9maW5hbF9saW5rX3JlbG9jYXRlKTogQ2xlYXIgYml0IHplcm8KCW9mIG9mZnNldCBpbiBCTFgoMSkgaW5zdHJ1Y3Rpb24uCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBDbGVhciBiaXQgemVybyBvZgoJb2Zmc2V0IGluIEJMWCgxKSBpbnN0cnVjdGlvbi4KCUZpeCBmb3JtYXR0aW5nLgoKMjAwMS0wMy0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX3JlbG9jX3R5cGVfbG9va3VwKTogQWRkCglCRkRfUkVMT0NfVEhVTUJfUENSRUxfQkxYLgoKMjAwMS0wMy0wNiAgSWdvciBTaGV2bHlha292ICA8aWdvckB3aW5kcml2ZXIuY29tPgoKCSogYXJjaHVyZXMuYyAoYmZkX2RlZmF1bHRfc2Nhbik6IEFkZCBDb2xkZmlyZSBDUFVzLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNwdS1tNjhrLmM6IEFkZCBDb2xkZmlyZSBDUFVzIGZvciBhcmNoIHRhYmxlLgoJKiBpZWVlLmMgKGllZWVfd3JpdGVfcHJvY2Vzc29yKTogU2V0IHByb3BlciBpZCBmb3IKCUNvbGRmaXJlIENQVXMuCgoyMDAxLTAzLTAxICBELkouIEJhcnJvdyA8ZGpiYXJyb3dAZGUuaWJtLmNvbSxiYXJyb3dfZGpAeWFob28uY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgczM5MCB0YXJnZXQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDEtMDItMjggIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIGVsZjY0LXg4Ni02NC5jIChlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IEFkZCByZWxvY2F0aW9uCgl0byBhZGRlbmQuCgoyMDAxLTAyLTI4ICBQaGlsaXAgQmx1bmRlbGwgIDxwYkBmdXR1cmV0di5jb20+CgoJKiBlbGYzMi1hcm0uaDogVXBkYXRlIG1lbnRpb25zIG9mIHJlbmFtZWQgRUZfeHggY29uc3RhbnRzLgoJKGVsZjMyX2FybV9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogSGFuZGxlIEFSTSBFQUJJIHZlcnNpb24gMi4KCjIwMDEtMDItMjcgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGFvdXR4LmggKE5BTUUoYW91dCxiZmRfZnJlZV9jYWNoZWRfaW5mbykpOiBSZXR1cm4gdHJ1ZSBpZgoJYWJmZC0+dGRhdGEuYW91dF9kYXRhID09IE5VTEwuCgoyMDAxLTAyLTI3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmMzItaHBwYS5jOiBDb3JyZWN0IGZpZWxkIHNlbGVjdG9yIGluIHN0dWIgY29tbWVudHMuCgkoY2xvYmJlcl9taWxsaWNvZGVfc3ltYm9scyk6IEZvcm1hdHRpbmcgZml4LgoKCSogY29uZmlndXJlLmluOiBCdW1wIHZlcnNpb24gdG8gMi4xMS45MC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBNYWtlZmlsZS5hbSAoQ0ZJTEVTKTogUmVuYW1lIHRvIFNPVVJDRV9DRklMRVMuCgkoQ0ZJTEVTKTogJFNPVVJDRV9DRklMRVMgKyBnZW5lcmF0ZWQgQyBmaWxlcy4KCShQT1RGSUxFUyk6IEluY2x1ZGUgJEhGSUxFUyBub3QgJFNPVVJDRV9IRklMRVMuCglSdW4gIm1ha2UgZGVwLWFtIgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZG9jL01ha2VmaWxlLmluOiBUaGlzIHRvby4KCjIwMDEtMDItMjYgIFRpbW90aHkgV2FsbCAgPHR3YWxsQGN5Z251cy5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfYWl4X2FkZF9zeW1ib2xfaG9vayk6IFJlbW92ZSBvYnNvbGV0ZQoJY29tbWVudHMuCgoyMDAxLTAyLTI2ICBOaWNrIENsaWZ0b24gPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb2ZmY29kZS5oIChzdHlwX3RvX3NlY19mbGFncykgW0NPRkZfV0lUSF9QRSB2ZXJzaW9uXTogVGlkeQoJdXAsIHJlcGxhY2luZyBtdWx0aXBsZSBpZiBzdGF0ZW1lbnRzIHdpdGggYSBzd2l0Y2guCgkoaGFuZGxlX0NPTURBVCk6IE5ldyBmdW5jdGlvbi4KCjIwMDEtMDItMjYgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNvZmZjb2RlLmggKHN0eXBfdG9fc2VjX2ZsYWdzKSBbQ09GRl9XSVRIX1BFIHZlcnNpb25dOiBJc3N1ZQoJYSB3YXJuaW5nIGZvciBzZWN0aW9uIGZsYWdzIHdlIGRvIG5vdCBoYW5kbGUgaW5zdGVhZCBvZgoJYWJvcnRpbmcuCgoyMDAxLTAyLTI2ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYyAoeDg2XzY0X2VsZl9ob3d0b190YWJsZSk6IEZpeCBvcmRlciBvZiBlbnRyaWVzLgoKMjAwMS0wMi0yMiAgVGltb3RoeSBXYWxsICA8dHdhbGxAY3lnbnVzLmNvbT4KCgkqIGNvbmZpZy5iZmQgKHRhcmdfY3B1KTogQWRkIHZlY3RvcnMgZm9yIGlhNjQtKi1haXgqIChha2EgTW9udGVyZXkpLgoJKiBjb25maWd1cmUuaW46IEFkZCBvYmplY3RzIGZvciBlbGY2NF9pYTY0X2FpeCB2ZWN0b3JzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBjb25maWd1cmUuaG9zdDogUmVjb2duaXplIGlhNjQtKi1haXgqLgoJKiBlbGZ4eC1pYTY0LmM6IEFkZCBob29rcyBmb3IgRUxGNjQgb24gQUlYNS4gIERlZmluZSBuZXcgdmVjdG9ycwoJZm9yIEFJWC4gIEFJWDUgcmVxdWlyZXMgbW9zdCByZWxvY2F0aW9ucyB0byBiZSBkeW5hbWljICgqYWxsKgoJYmluYXJpZXMgYXJlIHNvbWV3aGF0IHNpbWlsYXIgdG8gc2hhcmVkIGxpYnJhcmllcykuCgkqIHRhcmdldHMuYzogQWRkIGVsZjY0X2lhNjRfYWl4IHZlY3RvcnMuCgoyMDAxLTAyLTIxICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIGNwdS1pYTY0LW9wYy5jIChlbGY2NF9pYTY0X29wZXJhbmRzfTogRml4IHR5cG86IGVycm9yIHN0cmluZyBmb3IKCUM4IHNhaWQgIjEiIGluc3RlYWQgb2YgIjgiLiAgQ2xhcmlmeSBlcnJvciBzdHJpbmcgZm9yIElNTTIyOgoJInNpZ25lZCBpbnRlZ2VyIiBpbnN0ZWFkIG9mIGp1c3QgImludGVnZXIiLgoKMjAwMS0wMi0yMCAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogZWxmNjQteDg2LTY0LmMgKGVsZjY0X3g4Nl82NF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEb24ndCBtYWtlCglQTFQgZW50cmllcyB0aGF0IGNvdWxkIHNlcnZlIGFzIGEgZGVmaW5pdGlvbiBmb3IgYSB3ZWFrIHN5bWJvbC4KCjIwMDEtMDItMTkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmMzItc3BhcmMuYyAoZWxmMzJfc3BhcmNfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QgbWFrZSBQTFQKCWVudHJpZXMgdGhhdCBjb3VsZCBzZXJ2ZSBhcyBhIGRlZmluaXRpb24gZm9yIGEgd2VhayBzeW1ib2wuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IExpa2V3aXNlLgoKMjAwMS0wMi0xOCAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNEPgoKCSogY29uZmlndXJlLmluOiBSZWNvZ25pemUgRnJlZUJTRC9hcm0sIEZyZWVCU0QvUG93ZXJQQywgYW5kIHRyZWF0CglGcmVlQlNEL2kzODYtQ1VSUkVOVCBkaWZmZXJlbnRseSB1bnRpbCBJIGNhbiBmaWd1cmUgb3V0IHRoZSBuZWVkZWQKCWNvcmVmaWxlIGNoYW5nZXMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmJmZDogUmVjb2duaXplIEZyZWVCU0QveDg2LTY0LCBGcmVlQlNEL2lhNjQsIEZyZWVCU0QvYXJtLAoJRnJlZUJTRC9Qb3dlclBDLCBhbmQgRnJlZUJTRC9zcGFyYzY0LgoKMjAwMS0wMi0xOCAgbGFycyBicmlua2hvZmYgIDxsYXJzQG5vY3Jldy5vcmc+CgoJKiBNYWtlZmlsZS5hbTogQWRkIFBEUC0xMSBhLm91dCB0YXJnZXQuCgkqIGNvbmZpZy5iZmQ6IExpa2V3aXNlLgoJKiBjb25maWd1cmUuaW46IExpa2V3aXNlLgoJKiB0YXJnZXRzLmM6IExpa2V3aXNlLgoJKiBhcmNodXJlcy5jOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBMaWtld2lzZS4gIEFkZCBQRFAtMTEgcmVsb2NhdGlvbnMuCgkqIGxpYmJmZC5oOiBBZGQgUERQLTExIHJlbG9jYXRpb25zLgoJKiByZWxvYy5jOiBMaWtld2lzZS4KCSogY3B1LXBkcDExLmM6IE5ldyBmaWxlLgoJKiBwZHAxMS5jOiBOZXcgZmlsZS4KCgkqIGxpYmFvdXQuaCAoR0VUX1dPUkQpIFtBUkNIX1NJWkU9PTE2XTogRGVmaW5lLgoJKEdFVF9TV09SRCkgW0FSQ0hfU0laRT09MTZdOiBMaWtld2lzZS4KCShHRVRfU1dPUkQpIFtBUkNIX1NJWkU9PTE2XTogTGlrZXdpc2UuCgkoUFVUX1dPUkQpIFtBUkNIX1NJWkU9PTE2XTogTGlrZXdpc2UuCgkoR0VUX01BR0lDKTogTmV3IG1hY3JvLgoJKFBVVF9NQUdJQyk6IExpa2V3aXNlLgoJKiBhb3V0LXRhcmdldC5oIChNWShvYmplY3RfcCkpOiBVc2UgR0VUX01BR0lDIHRvIHJlYWQgbWFnaWMgd29yZC4KCjIwMDEtMDItMTggIEppbSBLaW5nZG9uICA8amtpbmdkb25AZW5nci5zZ2kuY29tPgoKCSogaXJpeC1jb3JlLmMgKGlyaXhfY29yZV9jb3JlX2ZpbGVfcCk6IFNldCB0aGUgYXJjaGl0ZWN0dXJlIChHREIKCW11bHRpYXJjaCBuZWVkcyBpdCkuCgoyMDAxLTAyLTE4ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2lucHV0X2JmZCk6IElnbm9yZSBpbnZhbGlkIHNlY3Rpb24gc3ltYm9sCglpbmRleC4KCjIwMDEtMDItMTggIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogdm1zLW1pc2MuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAxLTAyLTE2ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIHZtcy5jOiBGaXggZm9ybWF0dGluZy4KCjIwMDEtMDItMTQgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZi5jIChlbGZfZmluZF9mdW5jdGlvbik6IE5ldyBmdW5jdGlvbi4KCShfYmZkX2VsZl9maW5kX25lYXJlc3RfbGluZSk6IENhbGwgZWxmX2ZpbmRfZnVuY3Rpb24gKCkgdG8gZmluZAoJdGhlIGZpbGUgbmFtZSBhbmQgZnVuY3Rpb24gbmFtZS4KCjIwMDEtMDItMTQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlY29mZi5jIChiZmRfZGVidWdfc2VjdGlvbik6IFVwZGF0ZSB0byBpbml0aWFsaXNlIG5ldyBmaWVsZHMgaW4KCWFzZWN0aW9uIHN0cnVjdHVyZS4KCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EU19DRklMRVMpOiBSZW1vdmUgcGVpZ2VuLmMKCShCRkQ2NF9CQUNLRU5EUyk6IEFkZCBwZXBpZ2VuLmMKCUFkZCBydWxlcyB0byBjcmVhdGUgcGVpZ2VuLmMgYW5kIHBlcGlnZW4uYyBmcm9tIHBlWFhpZ2VuLmMuCgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiAgUmVnZW5lcmF0ZS4KCSogcG8vUE9URklMRVMuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL2JmZC5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAxLTAyLTE0ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBsaWJjb2ZmLWluLmggKHBlX3RkYXRhKTogQWRkIG1lbWJlcnMgdGFyZ2V0X3N1YnN5c3RlbSBhbmQKCWZvcmNlX21pbmltdW1fYWxpZ25tZW50LgoKMjAwMS0wMi0xNCAgQm8gVGhvcnNlbiAgPGJvQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYzogU21hbGwgZm9ybWF0dGluZyBmaXhlcyBhbmQgcmVhcnJhbmdlbWVudHMgb2YgY29kZS4KCShlbGY2NF84Nl82NF9zaXplX2luZm8pOiBTdHJ1Y3QgYWRkZWQgdG8gZml4IGEgcHJvYmxlbQoJd2l0aCB0aGUgaGFzaHRhYmxlIHN0cmluZyBlbnRyaWVzLgoJKGVsZjY0X3g4Nl82NF9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBBZGQgZ2VuZXJhdGlvbiBvZiAuZ290LnBsdC4KCShlbGY2NF94ODZfNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQSBGSVhNRSByZW1vdmVkLgoJKGVsZjY0X3g4Nl82NF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBGaXggYSBkeW5hbWljIGVudHJ5IGFuZAoJcmVtb3ZlIHRoZSBGSVhNRSBmb3IgdGhpcy4KCShlbGY2NF94ODZfNjRfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogRml4IGNoZWNrIGZvciB1bm5lZWRlZCAucGx0CglzZWN0aW9uLiBBbHNvIHJlbW92ZWQgdGhlIEZJWE1FIGZvciBpdC4KCSh4ODZfNjRfZWxmX2hvd3RvX3RhYmxlKTogVXNlIGJmZF9lbGZfZ2VuZXJpY19yZWxvYy4KCShFTEZfRFlOQU1JQ19JTlRFUlBSRVRFUik6IEZpeCB0aGUgbmFtZSBvZiB0aGUgZHluYW1pYyBsaW5rZXIuCgkoZWxmNjRfeDg2XzY0X2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogRW5hYmxlIC5nb3QucGx0IHdyaXRpbmcuCgoyMDAxLTAyLTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2ZpbmFsX2xpbmspOiBTZXQgX19ncCBpZiByZXF1aXJlZAoJYW5kIG5vdCB1c2VyIHByb3ZpZGVkLgoKMjAwMS0wMi0xMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiB2bXMuYyAodm1zX3ByaW50X3N5bWJvbCk6IFJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlLgoKCSogcnM2MDAwLWNvcmUuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAxLTAyLTEzICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIHBlaWNvZGUuaCAoY29mZl9zd2FwX2ZpbGVoZHJfb3V0KSBbQ09GRl9JTUFHRV9XSVRIX1BFXTogRGVmaW5lCglhcyBfYmZkX1hYaV9vbmx5X3N3YXBfZmlsZWhkcl9vdXQuCgkocGVfbWtvYmplY3QpIFtQRUlfRk9SQ0VfTUlOSU1VTV9BTElHTk1FTlRdOiBTZXQKCXBlLT5mb3JjZV9taW5pbXVtX2FsaWdubWVudCB0byBUUlVFLgoJKHBlX21rb2JqZWN0KSBbUEVJX1RBUkdFVF9TVUJTWVNURU1dOiBTZXQgcGUtPnRhcmdldF9zdWJzeXN0ZW0gdG8KCVBFSV9UQVJHRVRfU1VCU1lTVEVNLgoJKHBlX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBDYWxsCglfYmZkX1hYX3ByaW50X3ByaXZhdGVfYmZkX2RhdGFfY29tbW9uKCkgaW5zdGVhZCBvZgoJX2JmZF9wZV9wcmludF9wcml2YXRlX2JmZF9kYXRhX2NvbW1vbigpLgoJKHBlX2JmZF9jb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBDYWxsCglfYmZkX1hYX2JmZF9jb3B5X3ByaXZhdGVfYmZkX2RhdGFfY29tbW9uKCkgaW5zdGVhZCBvZgoJX2JmZF9wZV9iZmRfY29weV9wcml2YXRlX2JmZF9kYXRhX2NvbW1vbigpLgoJKGNvZmZfYmZkX2NvcHlfcHJpdmF0ZV9zZWN0aW9uX2RhdGEpOiBEZWZpbmUgYXMKCV9iZmRfWFhfYmZkX2NvcHlfcHJpdmF0ZV9zZWN0aW9uX2RhdGEgaW5zdGVhZCBvZgoJX2JmZF9wZV9iZmRfY29weV9wcml2YXRlX3NlY3Rpb25fZGF0YS4KCShjb2ZmX2dldF9zeW1ib2xfaW5mbyk6IERlZmluZSBhcyBfYmZkX1hYX2dldF9zeW1ib2xfaW5mbyBpbnN0ZWFkCglvZiBhIF9iZmRfcGVfZ2V0X3N5bWJvbF9pbmZvLgoKCSogcGVpZ2VuLmM6IERlbGV0ZS4KCgkqIHBlWFhpZ2VuLmM6IFJlbmFtZWQgZnJvbSBwZWlnZW4uYy4KCShDT0ZGX1dJVEhfWFgpOiBEZWZpbmUgdGhpcyBtYWNybyAod2lsbCBnZXQgZXhwYW5kZWQgaW50bwoJQ09GRl9XSVRIX3BlcCBvciBDT0ZGX1dJVEhfcGUsIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoaXMgaXMgYmVpbmcKCWNvbXBpbGVkIGFzIHBlaWdlbi5jIG9yIHBlcGlnZW4uYy4KCVtDT0ZGX1dJVEhfcGVwXTogSW5jbHVkZSAiY29mZi9pYTY0LmgiIGluc3RlYWQgb2YgImNvZmYvaTM4Ni5oIiB0bwoJZGVmaW5lIHRoZSBjYW5vbmljYWwgUEVQIHN0cnVjdHVyZXMgYW5kIGRlZmluaXRpb25zLgoJKF9iZmRfWFhpX3N3YXBfYW91dGhkcl9vdXQpOiBJZiBwZS0+Zm9yY2VfbWluaW11bV9hbGlnbm1lbnQgaXMgaW4KCWVmZmVjdCwgZW5mb3JjZSBtaW5pbXVtIGZpbGUgYW5kIHNlY3Rpb24gYWxpZ25tZW50cy4gIElmCglleHRyYS0+U3Vic3lzdGVtIGlzIElNQUdFX1NVQlNZU1RFTV9VTktOT1dOLCBzZXQgaXQgdG8KCXBlLT50YXJnZXRfc3Vic3lzdGVtICh0aGlzIGRlZmF1bHRzIHRvIElNQUdFX1NVQlNZU1RFTV9VTktOT1dOLAoJc28sIGJ5IGRlZmF1bHQsIHRoaXMgaXMgYSBuby1vcCkuCgoJKiBsaWJwZWkuaDogUmVuYW1lIENPRkZfV0lUSF9QRVAgdG8gQ09GRl9XSVRIX3BlcC4KCShfYmZkX1hYX2JmZF9jb3B5X3ByaXZhdGVfYmZkX2RhdGFfY29tbW9uKTogQWRkIG1hY3JvcyB0byBtYXAKCV9iZmRfWFhmb28gdG8gX2JmZF9wZXBmb28gaWYgQ09GRl9XSVRfUEVQIGlzIGRlZmluZWQgYW5kIHRvCglfYmZkX3BlZm9vIGlmIGl0J3Mgbm90IGRlZmluZWQuICBVc2UgdGhlc2UgbWFjcm9zIHRvIGRlZmluZQoJY29mZiBzd2FwIG1hY3Jvcy4KCgkqIGxpYmNvZmYuaCAocGVfdGRhdGEpOiBBZGQgbWVtYmVycyB0YXJnZXRfc3Vic3lzdGVtIGFuZAoJZm9yY2VfbWluaW11bV9hbGlnbm1lbnQuCgoJKiBlZmktYXBwLWlhNjQuYyAoQ09GRl9XSVRIX3BlcCk6IFJlbmFtZSBDT0ZGX1dJVEhfUEVQIHRvCglDT0ZGX1dJVEhfcGVwLgoJKFBFSV9UQVJHRVRfU1VCU1lTVEVNKTogUmVuYW1lIGZyb20gUEVJX0RFRkFVTFRfVEFSR0VUX1NVQlNZU1RFTS4KCgkqIGNvbmZpZ3VyZS5pbiAoYmZkX2VmaV9hcHBfaWE2NF92ZWMpOiBVc2UgcGVwaWdlbi5sbyBpbnN0ZWFkIG9mCglwZWlnZW4ubG8uCgoJKiBjb2ZmLWlhNjQuYzogUmVuYW1lIENPRkZfV0lUSF9QRVAgdG8gQ09GRl9XSVRIX3BlcC4KCShBT1VUU1opOiBSZW5hbWUgUEVQNjRBT1VUU1ogYW5kIFBFUDY0QU9VVEhEUiB0byBQRVBBT1VUU1ogYW5kCglQRVBBT1VUSERSLgoKCSogTWFrZWZpbGUuaW4gKEJGRDY0X0JBQ0tFTkRTKTogTWVudGlvbiBwZXBpZ2VuLmxvLgoJKEJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IE1lbnRpb24gcGVwaWdlbi5jCgkocGVpZ2VuLmMpOiBBZGQgcnVsZSB0byBnZW5lcmF0ZSBmcm9tIHBlWFhpZ2VuLmMuCgkocGVwaWdlbi5jKTogRGl0dG8uCgkocGVwaWdlbi5sbyk6IExpc3QgZGVwZW5kZW5jaWVzIGZvciBwZXBpZ2VuLmxvLgoKMjAwMS0wMi0xMyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9zZXRfZ3ApOiBIYW5kbGUgd2VhayAkZ2xvYmFsJC4gIElmCgkkZ2xvYmFsJCByZWZlcmVuY2VkIGJ1dCBub3QgZGVmaW5lZCwgc2V0IGl0cyB2YWx1ZSBoZXJlLgoKMjAwMS0wMi0wOSAgQm8gVGhvcnNlbiAgPGJvQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYyAoZWxmNjRfeDg2XzY0X2NoZWNrX3JlbG9jcyk6IFNldCAucmVsYS5nb3Qgc2VjdGlvbgoJYWxpZ25tZW50IHRvIDMuCgkoZWxmNjRfeDg2XzY0X2NoZWNrX3JlbG9jcyk6IFdyaXRlIFJfWDg2XzY0X0dPVFBDUkVMIEdPVCBlbnRyeQoJYW5kIHJlbG9jYXRpb24uCgkoZWxmNjRfeDg2XzY0X3JlbG9jYXRlX3NlY3Rpb24pOiBGaXggZm9ybWF0dGluZy4KCShlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IEZpeCBhZGRlbmQgZm9yIHJlbG9jYXRpb24gb2YKCVJfWDg2XzY0Xyg4fDE2fDMyfFBDOHxQQzE2fFBDMzIpLgoKMjAwMS0wMi0xMiAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogZWxmNjQteDg2LTY0LmMgKHg4Nl82NF9lbGZfaG93dG8pOiBGaXggbmFtZSBvZiBSX1g4Nl82NF9HT1RQQ1JFTC4KCjIwMDEtMDItMTEgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2JmZF9maW5hbF9saW5rKTogVXNlIGZpbGVfYWxpZ24gZm9yIFNZTVRBQgoJYWxpZ25tZW50LgoKMjAwMS0wMi0xMSAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9jcmVhdGVfZHluYW1pY19yZWxvY2F0aW9uKTogVW5kbyBwYXRjaAoJZnJvbSAyMDAwLTEwLTEzLiAgRG8gbm90IGFkZCB0aGUgc3ltYm9sJ3MgdmFsdWUgZm9yIFJfTUlQU19SRUwzMgoJcmVsb2NhdGlvbnMgYWdhaW5zdCBkeW5zeW0gc3ltYm9scy4KCgkqIGVsZjMyLW1pcHMuYyAoZWxmX21pcHNfaG93dG9fdGFibGUpOiBGaXggdGhlIGNvbW1lbnQgb24KCXRoZSBSX01JUFNfMjYgcmVsb2NhdGlvbi4KCShtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IFVzZSAocCArIDQpIGluc3RlYWQgb2YgcCBmb3IKCXRoZSBSX01JUFNfMjYgcmVsb2NhdGlvbi4KCShtaXBzX2VsZl9wZXJmb3JtX3JlbG9jYXRpb24pOiBGaXggdGhlIGNvbW1lbnQgb24gdGhlIFJfTUlQUzE2XzI2CglyZWxvY2F0aW9uLgoJKiBlbGY2NC1taXBzLmMgKG1pcHNfZWxmNjRfaG93dG9fdGFibGVfcmVsKTogRml4IHRoZSBjb21tZW50IG9uCgl0aGUgUl9NSVBTXzI2IHJlbG9jYXRpb24uCgkobWlwc19lbGY2NF9ob3d0b190YWJsZV9yZWxhKTogTGlrZXdpc2UuCgoJKiBlbGYzMi1taXBzLmMgKHN0cnVjdCBtaXBzX2VsZl9saW5rX2hhc2hfZW50cnkpOiBBZGRlZCBub19mbl9zdHViCgltZW1iZXIgdG8gbWFyayBzeW1ib2xzIHRoYXQgaGF2ZSBub24tQ0FMTCByZWxvY2F0aW9ucyBhZ2FpbnN0Cgl0aGVtLgoJKG1pcHNfZWxmX2xpbmtfaGFzaF9uZXdmdW5jKTogSW5pdGlhbGl6ZSBub19mbl9zdHViLgoJKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogSGFuZGxlIFJfTUlQU19DQUxMMTYgbGlrZQoJUl9NSVBTX0dPVDE2LgoJKF9iZmRfbWlwc19lbGZfY2hlY2tfcmVsb2NzKTogU2V0IG5vX2ZuX3N0dWIgZm9yIGEgc3ltYm9sIGlmIGEKCW5vbi1DQUxMIHJlbG9jYXRpb24gYWdhaW5zdCBpdCBpcyBlbmNvdW50ZXJlZC4KCShfYmZkX21pcHNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTWVyZ2Ugbm9fZm5fc3R1YiBhcyB3ZWxsLgoJKF9iZmRfbWlwc19lbGZfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogT25seSBjcmVhdGUgYSBzdHViIGlmCglub19mbl9zdHViIGlzIG5vdCBzZXQuCgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX291dHB1dF9leHRzeW0pOiBHZXQgdGhlIG91dHB1dCBzZWN0aW9uCglpbmZvcm1hdGlvbiBmcm9tIHRoZSByZWFsIHN5bWJvbCBmb3IgaW5kaXJlY3Qgb25lcy4KCUNoZWNrIG5vX2ZuX3N0dWIgdG8gZmluZCBvdXQgaWYgYSBzeW1ib2wgaGFzIGEgZnVuY3Rpb24gc3R1YgoJaW5kZWVkLgoKMjAwMS0wMi0xMSAgTWljaGFlbCBTb2tvbG92ICA8bXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHPgoKCSogTWFrZWZpbGUuYW0gKHN0YW1wLWxpYik6IHJhbmxpYiB0aGUgbGliYmZkLmEgaW4gdGhlIGJ1aWxkIGRpcmVjdG9yeS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAxLTAyLTA5ICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoaXNfdW53aW5kX3NlY3Rpb25fbmFtZSk6IE5ldyBmdW5jdGlvbi4gIFJldHVybnMKCXRydWUgaWYgc2VjdGlvbiBuYW1lIGlzIGFuIHVud2luZCB0YWJsZSBzZWN0aW9uIG5hbWUuCgkoZWxmTk5faWE2NF9hZGRpdGlvbmFsX3Byb2dyYW1faGVhZGVycyk6IENvdW50IGVhY2ggdW53aW5kIHNlY3Rpb24KCXNlcGFyYXRlbHkuCgkoZWxmTk5faWE2NF9tb2RpZnlfc2VnbWVudF9tYXApOiBJbnN0YWxsIG9uZSB1bndpbmQgcHJvZ3JhbSBoZWFkZXIKCWZvciBlYWNoIHVud2luZCBzZXBhcmF0ZSBzZWN0aW9uLiAgTm90ZTogbm9ybWFsbHkgdGhlIGxpbmtlcgoJc2NyaXB0IG1lcmdlcyB0aGUgdW53aW5kIHNlY3Rpb25zIHRoYXQgZ28gaW50byBhIHNpbmdsZSBzZWdtZW50LAoJc28gdGhpcyBzdGlsbCBnZW5lcmF0ZXMgYXQgbW9zdCBvbmUgdW53aW5kIHByb2dyYW0gaGVhZGVyIHBlcgoJc2VnbWVudC4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9zZWN0aW9uX2Zyb21fc2hkcik6IEFjY2VwdCBhbnkgc2VjdGlvbgoJbmFtZSBmb3IgU0hUX0lBXzY0X1VOV0lORCwgbm90IGp1c3QgLklBXzY0LnVud2luZC4KCShlbGZOTl9pYTY0X2Zha2Vfc2VjdGlvbnMpOiBNYXJrIHNlY3Rpb25zIHdpdGggbmFtZXMgdGhhdCBzdGFydAoJd2l0aCAuSUFfNjQudW53aW5kIGJ1dCBub3Qgd2l0aCAuSUFfNjQudW53aW5kX2luZm8gYXMgYW4gSUEtNjQKCXVud2luZCBzZWN0aW9uLgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBOZXcgZnVuY3Rpb24uCglVc2UgaXQgdG8gbWFrZSBzaF9pbmZvIGluIHVud2luZCBzZWN0aW9uIHBvaW50IHRvIHRoZSB0ZXh0IHNlY3Rpb24KCWl0IGFwcGxpZXMgdG8uCgoyMDAxLTAyLTA5ICBNYXJ0aW4gU2Nod2lkZWZza3kgIDxzY2h3aWRlZnNreUBkZS5pYm0uY29tPgoKCSogTWFrZWZpbGUuYW06IEFkZCBsaW51eCB0YXJnZXQgZm9yIFMvMzkwLgoJKiBhcmNodXJlcy5jOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBMaWtld2lzZS4KCSogY29uZmlnLmJmZDogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZS5pbjogTGlrZXdpc2UuCgkqIGVsZi5jOiBMaWtld2lzZS4KCSogbGliYmZkLmg6IExpa2V3aXNlLgoJKiB0YXJnZXRzLmM6IExpa2V3aXNlLgoJKiBjcHUtczM5MC5jOiBOZXcgZmlsZS4KCSogZWxmMzItczM5MC5jOiBOZXcgZmlsZS4KCSogZWxmNjQtczM5MC5jOiBOZXcgZmlsZS4KCjIwMDEtMDItMDkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwZWlnZW4uYyAoX2JmZF9wZV9nZXRfc3ltYm9sX2luZm8pOiBTdXBwcmVzcyBhZGRpdGlvbiBvZgoJSW1hZ2VCYXNlLiAgVGhpcyBoYXMgYWxyZWFkeSBiZWVuIGRvbmUgYnkgY29mZl9zd2FwX2hkcl9pbi4KCjIwMDEtMDItMDkgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfY29weV9wcml2YXRlX2JmZF9kYXRhKTogTmV3IGZ1bmN0aW9uLgoKMjAwMS0wMi0wOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9jaGVja19yZWxvY3MpOiBEb24ndCB0cnVzdCByZWxvY19jb3VudC4KCShzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAxLTAyLTA5ICBNYXJrIEtldHRlbmlzICA8a2V0dGVuaXNAZ251Lm9yZz4KCgkqIGVsZjMyLXNwYXJjLmMgKF9iZmRfc3BhcmNfZWxmX2hvd3RvX3RhYmxlKTogVHJlYXQgUl9TUEFSQ19VQTMyCglzaW1pbGFyIHRvIFJfU1BBUkNfMzIuCgkqIGVsZjY0LXNwYXJjLmMJKHNwYXJjNjRfZWxmX2hvd3RvX3RhYmxlKTogTGlrZXdpc2UuCgoyMDAxLTAyLTA4ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyk6IFJlc2VydmUgUl8zODZfUEMzMgoJcmVsb2NhdGlvbiBlbnRyaWVzIGZvciB3ZWFrIGRlZmluaXRpb25zIHdoZW4gYnVpbGRpbmcgRFNPIHdpdGgKCS1Cc3ltYm9saWMuCgoyMDAxLTAyLTA4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoYWxwaGFfZWxmX2R5bmFtaWNfc3ltYm9sX3ApOiBSZXNwZWN0IHdlYWtuZXNzCgliZWZvcmUgdmlzaWJpbGl0eS4gIExvY2FsbHkgZGVmaW5lZCBwcm90ZWN0ZWQgc3ltYm9scyBhcmUgbm90CglkeW5hbWljLgoKMjAwMS0wMi0wOCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0ByZWRoYXQuY29tPgoKCSogY29uZmlnLmJmZDogRW5hYmxlIGNvZmY2NCBmb3IgcnM2MDAwLSouICBQYXRjaCBmcm9tCgk8aHpvbGlAYXVzdGluLmlibS5jb20+LgoKMjAwMS0wMi0wNyAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0BiaWdmb290LmNvbT4KCgkqIGNvZmZnZW4uYyAoY29mZl9maW5kX25lYXJlc3RfbGluZSk6IElmIHN0YWJzIGluZm8gaXMgc3VjY2Vzc2Z1bGx5Cglmb3VuZCwgZG8gbm90IGF0dGVtcHQgdG8gZmluZCBkd2FyZjIgaW5mbyBiZWZvcmUgcmV0dXJuaW5nLgoKMjAwMS0wMi0wNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmggKGlzX2dsb2JhbF9zeW1ib2xfZGVmaW5pdGlvbik6IFJlbmFtZSB0bwoJaXNfZ2xvYmFsX2RhdGFfc3ltYm9sX2RlZmluaXRpb24gYW5kIGhhdmUgaXQgcmVqZWN0IGZ1bmN0aW9uCglzeW1ib2xzLgoJKGVsZl9saW5rX2lzX2RlZmluZWRfYXJjaGl2ZV9zeW1ib2wpOiBVc2UgcmVuYW1lZCBmdW5jdGlvbi4KCjIwMDEtMDItMDcgIFRvZGQgVmllcmxpbmcgIDx0dkB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGxpYmJmZC1pbi5oIChiZmRfdGFyZ2V0X3ZlY3Rvcik6IENoYW5nZSBleHRlcm4gYXJyYXkgdG8gcG9pbnRlci4KCSogbGliYmZkLmggKGJmZF90YXJnZXRfdmVjdG9yKTogTGlrZXdpc2UuCgkqIHRhcmdldHMuYyAoYmZkX3RhcmdldF92ZWN0b3IpOiBSZW5hbWUgdG8gX2JmZF90YXJnZXRfdmVjdG9yIGFuZAoJbWFrZSBzdGF0aWM7IGNyZWF0ZSBwb2ludGVyIHJlZmVyZW5jZSBuYW1lZCBiZmRfdGFyZ2V0X3ZlY3Rvci4KCShfYmZkX3RhcmdldF92ZWN0b3JfZW50cmllcyk6IENhbGN1bGF0ZSB0aGlzIGJhc2VkIG9uIHRoZSBhcnJheQoJdHlwZWQgX2JmZF90YXJnZXRfdmVjdG9yLgoKMjAwMS0wMi0wNiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X2R5bmFtaWNfc3ltYm9sX3ApOiBPbmx5IGhpZGRlbiBhbmQKCWludGVybmFsIHN5bWJvbHMgYXJlIG5vdCBkeW5hbWljLgoJKiBlbGY2NC1hbHBoYS5jIChhbHBoYV9lbGZfZHluYW1pY19zeW1ib2xfcCk6IExpa2V3aXNlLgoKMjAwMS0wMi0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChCRkQ2NF9CQUNLRU5EU19DRklMRVMpOiBSZW1vdmUgZWxmNjQtaWE2NC5jLCBzbwoJdGhhdCBpdCB3aWxsIG5vdCBiZSBwdWxsZWQgaW50byB0aGUgbGlzdCBvZiBmaWxlcyB0aGF0IG1ha2UgdXAKCXBvL1BPVEZJTEVTLmluLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogcG8vYmZkLnBvdDogIFJlZ2VuZXJhdGUuCgoyMDAxLTAyLTA2ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBwZWljb2RlLmggKGNvZmZfc3dhcF9maWxlaGRyX2luKTogUmVtb3ZlIHRoZSBlX21hZ2ljCgljaGVja2luZy4KCShwZV9iZmRfb2JqZWN0X3ApOiBSZXdyaXRlIHdpdGggZXh0ZXJuYWxfUEVJX0RPU19oZHIgYW5kCglleHRlcm5hbF9QRUlfSU1BR0VfaGRyLgoKMjAwMS0wMi0wNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBlbGYtbTEwMjAwLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMS0wMi0wNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfcmVsb2MpOiBEbyBub3QgY29udmVydCByZWxvYyBhZGRlbmQgdG8gUEMKCXJlbCwgaXQgd2lsbCBiZSBoYW5kbGVkIGxhdGVyIG9uLgoKMjAwMS0wMi0wMiAgRnJlZCBGaXNoICA8Zm5mQG5pbmVtb29ucy5jb20+CgoJKiBNYWtlZmlsZS5pbjogRml4IHR5cG8uCgoyMDAxLTAyLTAxICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGVsZi1tMTAzMDAuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAxLTAxLTMwICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2VsZl9nZXRfc3ltYm9sX3R5cGUpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfZ2V0X3N5bWJvbF90eXBlKTogRGVmaW5lLgoJKGVsZjY0X2hwcGFfb2JqZWN0X3ApOiBTZXQgYXJjaGl0ZWN0dXJlIGFuZCBtYWNoaW5lIGZyb20gZWxmCgloZWFkZXIgZmxhZ3MuCgoyMDAxLTAxLTMwICBDdXJ0aXMgTC4gSmFuc3NlbiAgPGNsamFuc3NAY2Euc2FuZGlhLmdvdj4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2ZpbmRfbmVhcmVzdF9saW5lKTogUXVlcnkgZHdhcmYyCgliZWZvcmUgbWRlYnVnLgoKMjAwMS0wMS0yNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZnh4LWlhNjQuYyAoZWxmTk5faWE2NF9keW5hbWljX3N5bWJvbF9wKTogUmV0dXJuIGZhbHNlCglmb3Igbm9uLWRlZmF1bHQgdmlzaWJpbGl0eS4KCSogZWxmNjQtYWxwaGEuYyAoYWxwaGFfZWxmX2R5bmFtaWNfc3ltYm9sX3ApOiBMaWtld2lzZSwgYnV0CglkZWxldGUgdWdseSBtYWNybyBhbmQgcmVwbGFjZSB3aXRoIHByZXR0eSBmdW5jdGlvbi4KCjIwMDEtMDEtMjUgIE1hcmsgRWxicmVjaHQgIDxzbm93YmFsbDNAYmlnZm9vdC5jb20+CgoJKiBjb2ZmLWdvMzIuYzogVXBkYXRlIGNvcHlyaWdodC4KCSogY29mZi1zdGdvMzIuYzogTGlrZXdpc2UuCgkqIGNvZmYtZ28zMi5jIChDT0ZGX0xPTkdfRklMRU5BTUVTKTogRGVmaW5lLgoJKiBjb2ZmLXN0Z28zMi5jIChDT0ZGX0xPTkdfRklMRU5BTUVTKTogTGlrZXdpc2UuCgkqIGNvZmYtZ28zMi5jIChDT0ZGX1NFQ1RJT05fQUxJR05NRU5UX0VOVFJJRVMpOiBSZW1vdmUgLmJzcyBlbnRyeS4KCSogY29mZi1zdGdvMzIuYyAoQ09GRl9TRUNUSU9OX0FMSUdOTUVOVF9FTlRSSUVTKTogTGlrZXdpc2UuCgoyMDAxLTAxLTI1ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGJmZC1pbjIuaDogUmVidWlsZC4KCSogbGliYmZkLmg6IExpa2V3aXNlLgoKMjAwMS0wMS0yMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogYmZkLWluMi5oOiBSZWJ1aWxkLgoKMjAwMS0wMS0yMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogdm1zLW1pc2MuYyAoX2JmZF92bXNfbmV4dF9yZWNvcmQpOiBSZXR1cm4gLTEgaWYgUFJJVih2bXNfYnVmKQoJaXMgTlVMTCBvciBQUklWKHZtc19yZWMpIGlzIG91dHNpZGUgb2YgdGhlIGJ1ZmZlci4KCjIwMDEtMDEtMjMgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogY29mZjY0LXJzNjAwMC5jOiBGaXggZm9ybWF0dGluZy4KCSogY29mZi1hcm0uYzogTGlrZXdpc2UuCgkqIGNvZmZnZW4uYzogTGlrZXdpc2UuCgkqIGNvZmZsaW5rLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW1pcHMuYzogTGlrZXdpc2UuCgkqIGNvZmYtcG1hYy5jOiBMaWtld2lzZS4KCSogY29mZi1wcGMuYzogTGlrZXdpc2UuCgkqIGNvZmYtcnM2MDAwLmM6IExpa2V3aXNlLgoJKiBlbGYzMi5jOiBMaWtld2lzZS4KCSogZWxmMzItZnIzMC5jOiBMaWtld2lzZS4KCSogZWxmMzItaTM3MC5jOiBMaWtld2lzZS4KCSogZWxmMzItaTg2MC5jOiBMaWtld2lzZS4KCSogZWxmMzItbTMyci5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4KCSogZWxmMzItc2guYzogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYzogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jOiBMaWtld2lzZS4KCSogZWxmbGluay5jOiBMaWtld2lzZS4KCSogZWxmbGluay5oOiBMaWtld2lzZS4KCSogZWxmLW0xMDIwMC5jOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jOiBMaWtld2lzZS4KCSogZWxmeHgtaWE2NC5jOiBMaWtld2lzZS4KCgkqIGFvdXR4Lmg6IEZpeCBmb3JtYXR0aW5nLgoJKiBiZmQuYzogTGlrZXdpc2UuCgkqIGJmZC1pbjIuaDogTGlrZXdpc2UuCgkqIGJmZC1pbi5oOiBMaWtld2lzZS4KCSogY3B1LWkzODYuYzogTGlrZXdpc2UuCgkqIGNwdS1tNjhoYzExLmM6IExpa2V3aXNlLgoJKiBkd2FyZjIuYzogTGlrZXdpc2UuCgkqIGVsZjY0LXg4Ni02NC5jOiBMaWtld2lzZS4KCSogZm9ybWF0LmM6IExpa2V3aXNlLgoJKiBmcmVlYnNkLmg6IExpa2V3aXNlLgoJKiBoYXNoLmM6IExpa2V3aXNlLgoJKiBocDMwMGhwdXguYzogTGlrZXdpc2UuCgkqIGhwcGFic2QtY29yZS5jOiBMaWtld2lzZS4KCSogaHB1eC1jb3JlLmM6IExpa2V3aXNlLgoKMjAwMS0wMS0yMiAgQm8gVGhvcnNlbiAgPGJvQHN1c2UuZGU+CgoJKiBlbGY2NC14ODYtNjQuYzogQWRkZWQgUElDIHN1cHBvcnQgZm9yIFg4Ni02NC4KCShlbGY2NF94ODZfNjRfbGlua19oYXNoX25ld2Z1bmMpOiBGdW5jdGlvbiBhZGRlZC4KCShlbGY2NF94ODZfNjRfbGlua19oYXNoX3RhYmxlX2NyZWF0ZSk6IExpa2V3aXNlLgoJKGVsZjY0X3g4Nl82NF9jaGVja19yZWxvY3MpOiBMaWtld2lzZS4KCShlbGY2NF94ODZfNjRfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkoZWxmNjRfeDg2XzY0X2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGY2NF94ODZfNjRfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmNjRfeDg2XzY0X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZjY0X3g4Nl82NF9kaXNjYXJkX2NvcGllcyk6IExpa2V3aXNlLgoJKGVsZjY0X3g4Nl82NF9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShlbGY2NF94ODZfNjRfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGY2NF94ODZfNjRfcmVsb2NhdGVfc2VjdGlvbik6IEFkZCByZWxvY2F0aW9uIG9mIFBJQyBzZWN0aW9ucy4KCjIwMDEtMDEtMjEgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AZHMyLnBnLmdkYS5wbD4KCgkqIE1ha2VmaWxlLmFtIChpbnN0YWxsLWRhdGEtbG9jYWwpOiBNYWtlIHVzZSBvZiAkKERFU1RESVIpLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDEtMDEtMjEgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogY29mZi1hMjlrLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMS0wMS0xOSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9jaGVja19yZWxvY3MpOiBSZXBvcnQgZmlsZXMgd2l0aCBiYWQKCXJlbG9jYXRpb24gc2VjdGlvbiBuYW1lcy4KCShlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVwb3J0IGZpbGVzIHdpdGggYmFkIHJlbG9jYXRpb24KCXNlY3Rpb24gbmFtZXMgYW5kIHJldHVybiBmYWxzZS4KCjIwMDEtMDEtMTcgIEJvIFRob3JzZW4gIDxib0BzdXNlLmRlPgoKCSogdGFyZ2V0cy5jOiBBbHBoYWJldGl6ZSBsaXN0IG9mIHh2ZWNzLgoKMjAwMS0wMS0xNCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGNvbmZpZy5iZmQ6IEFkZCBsaW51eCB0YXJnZXQgdmFyaWFudCBmb3IgZWxmeHgtaHBwYS4KCSogY29uZmlndXJlLmluOiBSZWNvZ25pemUgYmZkX2VsZjMyX2hwcGFfbGludXhfdmVjIGFuZAoJYmZkX2VsZjY0X2hwcGFfbGludXhfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGVsZjY0LWhwcGEuYzogSW5jbHVkZSBlbGY2NC10YXJnZXQuaCBhZ2FpbiB0byBzdXBwb3J0IGxpbnV4Cgl0YXJnZXQgdmFyaWFudC4KCShlbGY2NF9ocHBhX3Bvc3RfcHJvY2Vzc19oZWFkZXJzKTogU2V0IEVMRk9TQUJJX0xJTlVYIGZvciBsaW51eC4KCSogZWxmMzItaHBwYS5jOiBJbmNsdWRlIGVsZjMyLXRhcmdldC5oIGFnYWluIHRvIHN1cHBvcnQgbGludXgKCXRhcmdldCB2YXJpYW50LgoJKGVsZjMyX2hwcGFfcG9zdF9wcm9jZXNzX2hlYWRlcnMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfcG9zdF9wcm9jZXNzX2hlYWRlcnMpOiBEZWZpbmUuCgkqIHRhcmdldHMuYyAoYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgYmZkX2VsZjY0X2hwcGFfbGludXhfdmVjIGFuZAoJYmZkX2VsZjMyX2hwcGFfbGludXhfdmVjLgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZSk6IEFkZCB0ZXh0X3NlZ21lbnRfYmFzZSwKCWFuZCBkYXRhX3NlZ21lbnRfYmFzZSBmaWVsZHMuCgkoZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGVfY3JlYXRlICk6IEluaXQgdGhlbS4KCShlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IFVwZGF0ZSBjb21tZW50cy4KCShocHBhX3JlY29yZF9zZWdtZW50X2FkZHIpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogQ2FsbCBpdC4KCShmaW5hbF9saW5rX3JlbG9jYXRlKTogSGFuZGxlIFJfUEFSSVNDX1NFR1JFTDMyLgoJKGVsZjMyX2hwcGFfZmluYWxfbGluayk6IE5ldyBmdW5jdGlvbi4KCShiZmRfZWxmMzJfYmZkX2ZpbmFsX2xpbmspOiBEZWZpbmUgdG8gY2FsbCBpdC4KCShocHBhX3Vud2luZF9lbnRyeV9jb21wYXJlKTogTmV3IGZ1bmN0aW9uLgoJKiBjYWNoZS5jIChiZmRfb3Blbl9maWxlKTogQ3JlYXRlIGZpbGVzIGluIHdyaXRlK3JlYWQgbW9kZS4KCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX2hvd3RvX3RhYmxlKTogU2V0IGJpdHNpemUgdmFsdWUgZm9yCglTRUdSRUwzMiBhbmQgbnVtZXJvdXMgb3RoZXIgcmVsb2NzLiAgQ2hhbmdlIGR1cGxpY2F0ZQoJUl9QQVJJU0NfTk9ORSByZWxvY3MgdG8gUl9QQVJJU0NfVU5JTVBMRU1FTlRFRC4KCgkqIG9wbmNscy5jIChiZmRfZmRvcGVucik6IEFkZCBwYXJlbnMgbGlrZSB0aGUgY29tbWVudCBzYXlzIGFyb3VuZAoJT19BQ0NNT0RFLgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNyZWF0ZQoJLnBsdCBlbnRyaWVzIGZvciBEVF9JTklUIGFuZCBEVF9GSU5JLgoJKGVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBSZW1vdmUgc3BlY2lhbCBoYW5kbGluZyBvZgoJRFRfSU5JVCBhbmQgRFRfRklOSS4KCgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVc2UgMTYtYml0CglvZmZzZXRzIGZvciBzdHViIC5wbHQgYWNjZXNzIGlmIHdpZGUgbW9kZS4gIENoZWNrIG9mZnNldCBpbiByYW5nZS4KCjIwMDEtMDEtMTMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1mcjMwLmMgKGZyMzBfZWxmX2hvd3RvX3RhYmxlKTogUmVtb3ZlIHNwdXJpb3VzIGJsYW5rCglsaW5lLgoKCSogY29mZmNvZGUuaCAoY29mZl9jYW5vbmljYWxpemVfcmVsb2MpOiBSZW1vdmUgc3B1cmlvdXMgYmxhbmsKCWxpbmUuCgoyMDAxLTAxLTEyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogY29uZmlndXJlLmluIChbYmZkX2VsZjY0X3g4Nl82NF92ZWNdKTogU2V0IHRhcmdldDY0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAxLTAxLTExICBQZXRlciBUYXJnZXR0ICA8cGV0ZXIudGFyZ2V0dEBhcmNjb3Jlcy5jb20+CgoJKiBiZmQtaW4yLmggKGJmZF9hcmNoaXRlY3R1cmUpOiBBZGQgYmZkX21hY2hfYXJjXzUsCgliZmRfbWFjaF9hcmNfNiwgYmZkX21hY2hfYXJjXzcsIGJmZF9tYWNoX2FyY184IGZvciBBUkMgdmFyaWFudHMuCgkqIGNwdS1hcmMuYyAoYXJjaF9pbmZvX3N0cnVjdCk6IEFkZCBlbnRyaWVzIGZvciB2YXJpYW50cy4KCShiZmRfYXJjX2FyY2gpIFNldCBkZWZhdWx0IHRvIGJmZF9tYWNoX2FyY181LgoJKGFyY19nZXRfbWFjaCkgRG9uJ3QgYXNzdW1lIG1hY2hpbmUgbmFtZXMgcHJlZml4ZWQgYXJjLSBiZWZvcmUKCXRlc3RpbmcuCgkqIGVsZjMyLWFyYy5jIChhcmNfZWxmX29iamVjdF9wKTogU2V0IG1hY2hpbmUgbnVtYmVyIGJhc2VkIG9uIG5ldwoJc2VsZWN0aW9ucy4KCShhcmNfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpIExpa2V3aXNlLgoJKEVMRl9NQUNISU5FX0NPREUpIFVzZSBFTV9BUkMuCgoyMDAxLTAxLTEwICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29mZi1hcm0uYyAoTE9DQUxfTEFCRUxfUFJFRklYKTogQ2hhbmdlIGRlZmluaXRpb24gdG8gIiIuCgoyMDAxLTAxLTA3ICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogUkVBRE1FOiBSZXBsYWNlIGBidWctZ251LXV0aWxzQGdudS5vcmcnIHdpdGgKCWBidWctYmludXRpbHNAZ251Lm9yZycuCgoyMDAxLTAxLTA0ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIHNvbS5jOiBGaXggZm9ybWF0dGluZy4KCjIwMDEtMDEtMDMgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogZWNvZmZzd2FwLmg6IEZpeCBmb3JtYXR0aW5nLgoJKiBlbGYtYmZkLmg6IExpa2V3aXNlLgoJKiBlbGZhcm0tbmFiaS5jOiBMaWtld2lzZS4KCSogZWxmYXJtLW9hYmkuYzogTGlrZXdpc2UuCgkqIGVsZmNvZGUuaDogTGlrZXdpc2UuCgkqIGVsZmNvcmUuaDogTGlrZXdpc2UuCgkqIGVsZmxpbmsuYzogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaDogTGlrZXdpc2UuCgkqIGVsZnh4LWlhNjQuYzogTGlrZXdpc2UuCgkqIGVsZnh4LXRhcmdldC5oOiBMaWtld2lzZS4KCSogbGliYmZkLmM6IExpa2V3aXNlCgkqIGxpbmtlci5jOiBMaWtld2lzZS4KCSogbHlueC1jb3JlLmM6IExpa2V3aXNlLgoKMjAwMS0wMS0wMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBwYzUzMi1tYWNoLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBwZS1hcm0uYzogTGlrZXdpc2UuCgkqIHBlLWkzODYuYzogTGlrZXdpc2UuCgkqIHBlLW1pcHMuYzogTGlrZXdpc2UuCgkqIHBlLXBwYy5jOiBMaWtld2lzZS4KCSogcGUtc2guYzogTGlrZXdpc2UuCgkqIHBlaS1taXBzLmM6IExpa2V3aXNlLgoJKiBwZWktc2guYzogTGlrZXdpc2UuCgkqIHBlaWNvZGUuaDogTGlrZXdpc2UuCgkqIHBwY2Jvb3QuYzogTGlrZXdpc2UuCgkqIHB0cmFjZS1jb3JlLmM6IExpa2V3aXNlLgoKMjAwMS0wMS0wMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiByZWxvYy5jOiBGaXggZm9ybWF0dGluZy4KCSogcmlzY2l4LmM6IExpa2V3aXNlLgoJKiByczYwMDAtY29yZS5jOiBMaWtld2lzZS4KCSogeGNvZmYtdGFyZ2V0Lmg6IExpa2V3aXNlLgoKMjAwMC0xMi0yOSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogZWxmY29kZS5oIChlbGZfb2JqZWN0X3ApOiBBbHNvIHJlc3RvcmUgdGhlIGJmZCBtYWNoIGZpZWxkIG9uCgllcnJvciwgYnkgY2FsbGluZyBiZmRfZGVmYXVsdF9zZXRfYXJjaF9tYWNoIHdpdGggaW5jb21pbmcKCXZhbHVlcy4KCjIwMDAtMTItMjYgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogdmF4bmV0YnNkLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiB2ZXJzYWRvcy5jOiBMaWtld2lzZS4KCSogdm1zLWdzZC5jOiBMaWtld2lzZS4KCSogdm1zLWhkci5jOiBMaWtld2lzZS4KCSogdm1zLW1pc2MuYzogTGlrZXdpc2UuCgoyMDAwLTEyLTI1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGFyY2hpdmUuYyAoY29mZl93cml0ZV9hcm1hcCk6IERvbid0IHdyaXRlIG1vcmUgdGhhbiBzeW1ib2xfY291bnQKCWBhcmNoaXZlX21lbWJlcl9maWxlX3B0cidzLgoKMjAwMC0xMi0yNSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiB2bXMtdGlyLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0xMi0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiB2bXMuYzogRml4IGZvcm1hdHRpbmcuCgkqIHZtcy5oOiBMaWtld2lzZS4KCjIwMDAtMTItMjEgIFNhbnRlcmkgUGFhdm9sYWluZW4gPHNhbnR0dUBzc2guY29tPgoKCSogdm1zLWhkci5jOiBJbmNsdWRlIGFsbG9jYS5oIGlmIEhBVkVfQUxMT0NBX0ggaXMgZGVmaW5lZC4KCgkqIHBlaWNvZGUuaCAocGVfSUxGX29iamVjdF9wKTogQWRkIGNvbnN0IHRvIGltcG9ydCBvZiBUQVJHRVRfTElUVExFX1NZTS4KCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfZ2VuZXJpY19yZWxvYyk6IEFkZCBjYXN0IHRvIGF2b2lkICh2b2lkICopCglhcml0aG1ldGljLgoKCSogZWxmMzItZnIzMC5jOiBBZGQgY2FzdHMgdG8gYXZvaWQgKHZvaWQgKikgYXJpdGhtZXRpYy4KCgkqIGNvZmZjb2RlLmggKHN0eXBfdG9fc2VjX2ZsYWdzKTogQWRkIGVtcHR5IHN0YXRlbWVudCBhZnRlciBsYWJlbC4KCjIwMDAtMTItMjEgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGxpYmJmZC5jIChiZmRfZ2V0X2JpdHMpOiBBZGRlZAoJKGJmZF9wdXRfYml0cyk6IExpa2V3aXNlCgkqIGJmZC1pbi5oOiBEZWNsYXJlZCB0aGUgYWJvdmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgoyMDAwLTEyLTIwICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIHRhcmdldHMuYzogRml4IGZvcm1hdHRpbmcuCgkqIHRla2hleC5jOiBMaWtld2lzZS4KCSogdHJhZC1jb3JlLmM6IExpa2V3aXNlLgoKMjAwMC0xMi0xOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBzY281LWNvcmUuYzogRml4IGZvcm1hdHRpbmcuCgkqIHNlY3Rpb24uYzogTGlrZXdpc2UuCgkqIHNwYXJjbGludXguYzogTGlrZXdpc2UuCgkqIHNwYXJjbHlueC5jOiBMaWtld2lzZS4KCSogc3BhcmNuZXRic2QuYzogTGlrZXdpc2UuCgkqIHNyZWMuYzogTGlrZXdpc2UuCgkqIHN0YWJzLmM6IExpa2V3aXNlLgoJKiBzdGFiLXN5bXMuYzogTGlrZXdpc2UuCgkqIHN1bm9zLmM6IExpa2V3aXNlLgoJKiBzeW1zLmM6IExpa2V3aXNlLgoJKiBzeXNkZXAuaDogTGlrZXdpc2UuCgoyMDAwLTEyLTE4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29mZi1hcm0uYyAoRVhUUkFfU19GTEFHUyk6IE9ubHkgZGVmaW5lIGlmIG5vdCBhbHJlYWR5CglkZWZpbmVkLgoJKiBlcG9jLXBlLWFybS5jIChFWFRSQV9TX0ZMQUdTKTogRGVmaW5lLgoJKiBlcG9jLXBlaS1hcm0uYyAoRVhUUkFfU19GTEFHUyk6IERlZmluZS4KCjIwMDAtMTItMTggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiB2bXMtbWlzYy5jIChfYmZkX3Ztc19nZXRfcmVjb3JkKTogQWRkIGRlZmF1bHQgY2FzZSB0bwoJZmlsZV9mb3JtYXQgc3dpdGNoLgoKMjAwMC0xMi0xNSAgTWlsb3NsYXYgVHJtYWMgPG1pdHJAdm9sbnkuY3o+CgoJKiBlbGZjb3JlLmggKGVsZl9jb3JlX2ZpbGVfcCk6IE1vdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtCgloZWFkZXJzIGJlZm9yZSBhdHRlbXB0aW5nIHRvIHJlYWQgdGhlbS4KCjIwMDAtMTItMTQgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogcGVpZ2VuLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBzb20uYzogTGlrZXdpc2UuCgkqIHNvbS5oOiBMaWtld2lzZS4KCjIwMDAtMTItMTMgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogcGVpZ2VuLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0xMi0xMiAgSmltIFdpbHNvbiAgPHdpbHNvbkByZWRoYXQuY29tPgoKCSogIGVsZnh4LWlhNjQuYyAoZ2V0X2R5bl9zeW1faW5mbyk6IENhc3QgJXAgYXJndW1lbnQgdG8gdm9pZCAqLgoKMjAwMC0xMi0wOCAgTWFyayBTYWx0ZXIgIDxtc2FsdGVyQHJlZGhhdC5jb20+CgoJKiBiaW5hcnkuYyAoYmluYXJ5X3NldF9zZWN0aW9uX2NvbnRlbnRzKTogSWdub3JlIHNlY3Rpb25zCgl3aXRoIHplcm8gc2l6ZS4KCjIwMDAtMTItMTIgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogbTY4a2xpbnV4LmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBtNjhrbmV0YnNkLmM6IExpa2V3aXNlLgoJKiBtaXBzYnNkLmM6IExpa2V3aXNlLgoJKiBuZXRic2QtY29yZS5jOiBMaWtld2lzZS4KCSogbmV0YnNkLmg6IExpa2V3aXNlLgoJKiBuZXdzb3MzLmM6IExpa2V3aXNlLgoJKiBubG0zMi1hbHBoYS5jOiBMaWtld2lzZS4KCSogbmxtMzItaTM4Ni5jOiBMaWtld2lzZS4KCSogbmxtMzItcHBjLmM6IExpa2V3aXNlLgoJKiBubG0zMi1zcGFyYy5jOiBMaWtld2lzZS4KCSogbmxtY29kZS5oOiBMaWtld2lzZS4KCSogbmxtc3dhcC5oOiBMaWtld2lzZS4KCSogbmxtLXRhcmdldC5oOiBMaWtld2lzZS4KCSogbnMzMmtuZXRic2QuYzogTGlrZXdpc2UuCgoyMDAwLTEyLTEwICBGcmVkIEZpc2ggIDxmbmZAYmUuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogRG9uJ3QgY29tcGxhaW4gYWJvdXQgdW5kZWZpbmVkCglzeW1ib2xzIGluIHNoYXJlZCBvYmplY3RzIGlmIGFsbG93X3NobGliX3VuZGVmaW5lZCBpcyB0cnVlLgoKMjAwMC0xMi0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNwdS1zaC5jOiBGaXggZm9ybWF0dG5nLgoJKiBlbGYuYzogRml4IGZvcm1hdHRuZy4KCSogZWxmMzItbWlwcy5jOiBGaXggZm9ybWF0dG5nLgoJKiBlbGYzMi1zaC5jOiBGaXggZm9ybWF0dG5nLgoJKiBlbGY2NC1hbHBoYS5jOiBGaXggZm9ybWF0dG5nLgoKMjAwMC0xMi0wOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9maW5kX25lYXJlc3RfbGluZSk6IFBhc3MKCWR3YXJmMl9maW5kX2xpbmVfaW5mbyBhcyBsYXN0IHBhcmFtZXRlciB0byBpbnZvY2F0aW9uIG9mCglfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZS4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9maW5kX25lYXJlc3RfbGluZSk6IFBhc3MKCWR3YXJmMl9maW5kX2xpbmVfaW5mbyBhcyBsYXN0IHBhcmFtZXRlciB0byBpbnZvY2F0aW9uIG9mCglfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZS4KCjIwMDAtMTItMDggIE1hcmsgRWxicmVjaHQgIDxzbm93YmFsbDNAYmlnZm9vdC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBNb3ZlIGR3YXJmMi5sbyBmcm9tIGhlcmUuLi4KCShCRkRfTElCUyk6IC4uLnRvIGhlcmUuCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogTW92ZSBkd2FyZjIuYyBmcm9tIGhlcmUuLi4KCShCRkRfTElCU19DRklMRVMpOiAuLi50byBoZXJlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLmluOiBSZW1vdmUgZHdhcmYubG8gZnJvbSB0aGUgZWxmIHNoZWxsIHZhcmlhYmxlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGxpYmNvZmYtaW4uaCAoY29mZl90ZGF0YSk6IEFkZCBwb2ludGVyIGR3YXJmMl9maW5kX2xpbmVfaW5mby4KCSogbGliY29mZi5oOiBSZWdlbmVyYXRlLgoJKiBjb2ZmZ2VuLmMgKGNvZmZfZmluZF9uZWFyZXN0X2xpbmUpOiBDYWxsCglfYmZkX2R3YXJmMl9maW5kX25lYXJlc3RfbGluZS4KCSogZHdhcmYyLmMgKF9iZmRfZHdhcmYyX2ZpbmRfbmVhcmVzdF9saW5lKTogQWRkIHBhcmFtZXRlci4gVXBkYXRlCglhY2NvcmRpbmdseS4KCShyZWFkX2FiYnJldnMpOiBMaWtld2lzZQoJKGRlY29kZV9saW5lX2luZm8pOiBMaWtld2lzZS4KCShwYXJzZV9jb21wX3VuaXQpOiBMaWtld2lzZS4KCShjb21wX3VuaXRfZmluZF9uZWFyZXN0X2xpbmUpOiBMaWtld2lzZS4KCSogbGliYmZkLWluLmggKF9iZmRfZHdhcmYyX2ZpbmRfbmVhcmVzdF9saW5lKTogVXBkYXRlIHByb3RvdHlwZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIGVsZi5jIChfYmZkX2VsZl9maW5kX25lYXJlc3RfbGluZSk6IFVwZGF0ZSBjYWxsLgoJKiBlbGYtYmZkLmggKGVsZl9vYmpfdGRhdGEpOiBDaGFuZ2UgZHdhcmYyX2ZpbmRfbGluZV9pbmZvIHRvIHR5cGUgUFRSLgoJKiBkd2FyZjIuYyAoY29uY2F0X2ZpbGVuYW1lKTogVXNlIElTX0FCU09MVVRFX1BBVEguCgkqIGNvZmZjb2RlLmggKFNUWVBfWENPRkZfREVCVUcsIFNUWVBfREVCVUdfSU5GTyk6IE5ldyBtYWNyb3MuCgkoc2VjX3RvX3N0eXBfZmxhZ3MpOiBVc2UgdGhlbS4gSGFuZGxlIERXQVJGMiBzZWN0aW9ucy4KCShzdHlwX3RvX3NlY19mbGFncyk6IEhhbmRsZSBEV0FSRjIgc2VjdGlvbnMuCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluZF9uZWFyZXN0X2xpbmUpOiBBZGQgcGFyYW1ldGVyIHRvIGNhbGwKCXRvIF9iZmRfZmluZF9uZWFyZXN0X2xpbmUuCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9maW5kX25lYXJlc3RfbGluZSk6IEFkZCBwYXJhbWV0ZXIgdG8KCWNhbGwgdG8gX2JmZF9maW5kX25lYXJlc3RfbGluZS4KCjIwMDAtMTItMDggIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogY29mZmdlbi5jOiBGaXggZm9ybWF0dGluZy4KCSogZWxmLW0xMDMwMC5jOiBMaWtld2lzZS4KCSogZWxmMzItaTM4Ni5jOiBMaWtld2lzZS4KCSogZWxmMzItaTk2MC5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBwYy5jOiBMaWtld2lzZS4KCSogZWxmMzItc2guYzogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmM6IExpa2V3aXNlLgoJKiBlbGYzMi12ODUwLmM6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jOiBMaWtld2lzZS4KCSogZWxmNjQtbWlwcy5jOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYzogTGlrZXdpc2UuCgoyMDAwLTEyLTA3ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGVsZjMyLXBwYy5jOiBGaXggZm9ybWF0dGluZy4KCSogZWxmNjQteDg2LTY0LmM6IExpa2V3aXNlLgoKMjAwMC0xMi0wNiAgVWxmIENhcmxzc29uICA8dWxmY0BlbmdyLnNnaS5jb20+CgoJRnJvbSAgUmFsZiBCYWVjaGxlICA8cmFsZkBnbnUub3JnPgoKCSogZWxmMzItbWlwcy5jIChlbGYzMl9taXBzX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBBbHdheXMgcGVybWl0CglCRkRzIGNvbnRhaW5pbmcgbm8gc2VjdGlvbnMgb3IgZW1wdHkgLnRleHQsIC5kYXRhIG9yIC5ic3Mgc2VjdGlvbnMKCXRvIGJlIG1lcmdlZCwgcmVnYXJkbGVzcyBvZiB0aGVpciBmbGFncy4KCjIwMDAtMTItMDYgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogZWxmMzItbTMyci5jOiBGaXggZm9ybWF0dGluZy4KCSogZWxmMzItbTY4aGMxMS5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4aGMxMi5jOiBMaWtld2lzZS4KCSogZWxmMzItbTY4ay5jOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYzogTGlrZXdpc2UuCgkqIGVsZjMyLXBqLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYzogTGlrZXdpc2UuCgoyMDAwLTEyLTA1ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGVsZjMyLWZyMzAuYzogRml4IGZvcm1hdHRpbmcuCgkqIGVsZjMyLWhwcGEuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWk4NjAuYzogTGlrZXdpc2UuCgkqIGVsZjMyLWk5NjAuYzogTGlrZXdpc2UuCgoyMDAwLTEyLTAzICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGVsZjMyLWFybS5oOiBGaXggZm9ybWF0dGluZy4KCSogZWxmMzItYXZyLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1jcmlzLmM6IExpa2V3aXNlLgoJKiBlbGYzMi1kMTB2LmM6IExpa2V3aXNlLgoJKiBlbGYzMi1kMzB2LmM6IExpa2V3aXNlLgoJKiBlbGYtaHBwYS5oOiBMaWtld2lzZS4KCSogZWxmLW0xMDIwMC5jOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jOiBMaWtld2lzZS4KCjIwMDAtMTItMDEgIENocmlzIERlbWV0cmlvdSAgPGNnZEBzaWJ5dGUuY29tPgoKCSogYW91dHguaCAoTkFNRShhb3V0LG1hY2hpbmVfdHlwZSkpOiBBZGQgYmZkX21hY2hfbWlwczMyIGFuZAoJYmZkX21hY2hfbWlwczMyXzRrLiAgVXBkYXRlIEZJWE1FIGNvbW1lbnQuCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX21pcHMzMik6IE5ldyBjb25zdGFudC4KCShiZmRfbWFjaF9taXBzNEssIGJmZF9tYWNoX21pcHMzMl80aykgUmVuYW1lIHRoZSBmb3JtZXIgdG8KCXRoZSBsYXR0ZXIsIHJlbnVtYmVyIGl0LgoJKiBiZmQtaW4yLmggKGJmZF9tYWNoX21pcHMzMik6IE5ldyBjb25zdGFudC4KCShiZmRfbWFjaF9taXBzNEssIGJmZF9tYWNoX21pcHMzMl80aykgUmVuYW1lIHRoZSBmb3JtZXIgdG8KCXRoZSBsYXR0ZXIsIHJlbnVtYmVyIGl0LgoJKiBjcHUtbWlwcy5jIChJX21pcHMzMik6IE5ldyBjb25zdGFudC4KCShJX21pcHM0SywgSV9taXBzMzJfNGspOiBSZW5hbWUgdGhlIGZvcm1lciB0byB0aGUgbGF0dGVyLgoJKGFyY2hfaW5mb19zdHJ1Y3QpOiBBZGQgYmZkX21hY2hfbWlwczMyIGVudHJ5LCByZXBsYWNlCgliZmRfbWFjaF9taXBzNEsgZW50cnkgd2l0aCBiZmRfbWFjaF9taXBzMzJfNGsgZW50cnkuCgkqIGVsZjMyLW1pcHMuYyAoZWxmX21pcHNfaXNhKTogQWRkIEVfTUlQU19BUkNIXzMyIGNhc2UuCgkoZWxmX21pcHNfbWFjaCk6IExpa2V3aXNlLiAgQWxzbywgcmVwbGFjZSBFX01JUFNfTUFDSF9NSVBTMzIKCXdpdGggRV9NSVBTX01BQ0hfTUlQUzMyXzRLLgoJKF9iZmRfbWlwc19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IFJlcGxhY2UKCWJmZF9tYWNoX21pcHM0SyB3aXRoIGJmZF9tYWNoX21pcHMzMl80ayBjYXNlLCBhZGQKCWJmZF9tYWNoX21pcHMzMiBjYXNlLgoJKF9iZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEdlbmVyYWxpemUgSVNBIG1peGluZwoJY29tcGFyaXNvbiB3aXRoIHN1cHBvcnQgZm9yIE1JUFMzMi4KCShfYmZkX21pcHNfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBQcmludCBJU0EgbmFtZSBmb3IKCU1JUFMzMi4KCgkqIGFvdXR4LmggKE5BTUUoYW91dCxtYWNoaW5lX3R5cGUpKTogQWRkIGNhc2VzIGZvcgoJYmZkX21hY2hfbWlwczUgYW5kIGJmZF9tYWNoX21pcHM2NC4KCSogYXJjaHVyZXMuYyAoYmZkX21hY2hfbWlwczUsIGJmZF9tYWNoX21pcHM2NCk6IE5ldyBjb25zdGFudHMuCgkqIGJmZC1pbjIuaCAoYmZkX21hY2hfbWlwczUsIGJmZF9tYWNoX21pcHM2NCk6IExpa2V3aXNlLgoJKiBjcHVfbWlwcy5jIChJX21pcHM1LCBJX21pcHM2NCk6IE5ldyBkZWZpbml0aW9ucy4KCShhcmNoX2luZm9fc3RydWN0KTogQWRkIGVudHJpZXMgZm9yIGJmZF9tYWNoX21pcHM1IGFuZAoJYmZkX21hY2hfbWlwczY0LgoJKiBlbGYzMi1taXBzLmMgKGVsZl9taXBzX2lzYSwgZWxmX21pcHNfbWFjaCwKCV9iZmRfbWlwc19lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IEFkZCBjYXNlcyBmb3IKCUVfTUlQU19BUkNIXzUgYW5kIEVfTUlQU19BUkNIXzY0LgoJKF9iZmRfbWlwc19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IEFkZCBjYXNlcyBmb3IKCWJmZF9tYWNoX21pcHM1IGFuZCBiZmRfbWFjaF9taXBzNjQuCgoJKiBhb3V0eC5oIChOQU1FKGFvdXQsbWFjaGluZV90eXBlKSk6IEFkZCBhCgliZmRfbWFjaF9taXBzX3NiMSBjYXNlLgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9taXBzX3NiMSk6IE5ldyBjb25zdGFudC4KCSogYmZkLWluMi5oIChiZmRfbWFjaF9taXBzX3NiMSk6IE5ldyBjb25zdGFudC4KCSogY3B1LW1pcHMuYyAoSV9zYjEpOiBOZXcgY29uc3RhbnQuCgkoYXJjaF9pbmZvX3N0cnVjdCk6IEFkZCBlbnRyeSBmb3IgYmZkX21hY2hfbWlwc19zYjEuCgkqIGVsZjMyLW1pcHMuYyAoZWxmX21pcHNfbWFjaCk6IEFkZCBjYXNlIGZvcgoJRV9NSVBTX01BQ0hfU0IxLgoJKF9iZmRfbWlwc19lbGZfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IEFkZCBjYXNlIGZvcgoJYmZkX21hY2hfbWlwc19zYjEuCgoyMDAwLTEyLTAxICBKb2VsIFNoZXJyaWxsIDxqb2VsQE9BUmNvcnAuY29tPgoKCSogY29uZmlnLmJmZCAoYXJtLSotcnRlbXMqLCBhMjlrLSpydGVtcyopOiBOZXcgdGFyZ2V0cy4KCShzcGFyYyotKi1ydGVtc2VsZiosIHNwYXJjKi0qLXJ0ZW1zYW91dCopOiBOZXcgdGFyZ2V0cy4KCShzcGFyYyotKi1ydGVtcyopOiBTd2l0Y2hlZCBmcm9tIGEub3V0IHRvIEVMRi4KCjIwMDAtMTEtMzAgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIE1ha2VmaWxlLmFtIChCRkQ2NF9CQUNLRU5EUyk6IEFkZCBlbGY2NC14ODYtNjQubG8KCUJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGY2NC14ODYtNjQuYwoJKGVsZjY0LXg4Ni02NC5sbyk6IEFkZCBkZXBlbmRlbmNpZXMuCgkqIGFyY2h1cmVzLmMgKERFU0NSSVBUSU9OKTogQWRkIGJmZF9tYWNoX3g4Nl82NCwKCWJmZF9tYWNoX3g4Nl82NF9pbnRlbF9zeW50YXguCgkqIGVsZi5jIChwcmVwX2hlYWRlcnMpOiBVc2UgRU1feDg2XzY0IGZvciA2NGJpdCBvdXRwdXQuCgkqIGNvbmZpZy5iZmQgKHg4Nl82NCk6IEFkZC4KCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgYmZkX2VsZjY0X3g4Nl82NF92ZWMuCgkqIGNwdS1pMzg2LmMgKGJmZF94ODZfNjRfYXJjaF9pbnRlbF9zeW50YXgsIGJmZF94ODZfNjRfYXJjaCk6IEFkZC4KCShiZmRfaTM4Nl9hcmNoLCBpODA4Nl9hcik6IExpbmsgaW4uCgkqIGVsZjY0LXg4Ni02NC5jOiBOZXcgZmlsZS4KCSogcmVsb2MuYyAoRU5VTURPQyk6IEFkZCBCRkRfUkVMT0NfWDg2XzY0Ki4KCSogdGFyZ2V0cy5jIChiZmRfZWxmNjRfeDg2XzY0X3ZlYyk6IEFkZC4KCShiZmRfdGFyZ2V0X3ZlY3QpOiBBZGQgYmZkX2VsZjY0X3g4Nl82NF92ZWMuCgoyMDAwLTExLTMwICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIHhjb2ZmbGluay5jOiBGaXggZm9ybWF0dGluZy4KCjIwMDAtMTEtMjggIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogYW91dHguaDogRml4IGZvcm1hdHRpbmcuCgkqIGJmZC1pbi5oOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBMaWtld2lzZS4KCSogY2FjaGUuYzogTGlrZXdpc2UuCgkqIGNpc2NvLWNvcmUuYzogTGlrZXdpc2UuCgkqIGNvZmY2NC1yczYwMDAuYzogTGlrZXdpc2UuCgkqIGNvZmZjb2RlLmg6IExpa2V3aXNlLgoJKiBjb2Zmc3dhcC5oOiBMaWtld2lzZS4KCSogY29yZWZpbGUuYzogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYzogTGlrZXdpc2UuCgoyMDAwLTExLTI3ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGFvdXQtYWRvYmUuYzogRml4IGZvcm1hdHRpbmcuCgkqIGNvZmY2NC1yczYwMDAuYzogTGlrZXdpc2UuCgkqIGNvZmZnZW4uYzogTGlrZXdpc2UuCgkqIGNvZmZsaW5rLmM6IExpa2V3aXNlLgoKMjAwMC0xMS0yNyAgUGhpbGlwIEJsdW5kZWxsICA8cGJAZnV0dXJldHYuY29tPgoKCSogbGliY29mZi1pbi5oIChjb2ZmX3RkYXRhKTogQWRkIGBzdHJpbmdzX3dyaXR0ZW4nIGZsYWcuCgkob2JqX2NvZmZfc3RyaW5nc193cml0dGVuKTogTmV3IGFjY2Vzc29yIG1hY3JvIGZvciBhYm92ZS4KCSogbGliY29mZi5oOiBSZWdlbmVyYXRlLgoJKiBjb2ZmbGluay5jIChfYmZkX2NvZmZfZmluYWxfbGluayk6IFNheSB0aGF0IHdlIHdyb3RlIHRoZQoJc3RyaW5ncy4KCSogY29mZmNvZGUuaCAoY29mZl93cml0ZV9vYmplY3RfY29udGVudHMpOiBObyBuZWVkIHRvIHdyaXRlIG91dAoJdGhlIHN0cmluZyB0YWJsZSBpZiBpdCdzIGFscmVhZHkgYmVlbiBkb25lLgoKMjAwMC0xMS0yMiAgUGhpbGlwIEJsdW5kZWxsICA8cGJAZnV0dXJldHYuY29tPgoKCSogY29mZmxpbmsuYyAoX2JmZF9jb2ZmX2dlbmVyaWNfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IG9iamVjdCB0bwoJd2VhayB1bmRlZmluZWQgc3ltYm9scy4KCjIwMDAtMTEtMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9hcm1fNVRFKTogRGVmaW5lLgoJKGJmZF9tYWNoX2FybStYU2NhbGUpOiBEZWZpbmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX3JlbG9jX3R5cGVfbG9va3VwKTogQWNjZXB0CglCRkRfUkVMT0NfQVJNX1BDUkVMX0JMWC4KCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2ZsYWdzKTogU2V0IGZsYWdzIGZvciA1dCwgNXRlIGFuZAoJWFNjYWxlIG1hY2hpbmUgbnVtYmVycy4KCgkqIGNvbmZpZy5iZmQgKHhzY2FsZS1lbGYpOiBBZGQgdGFyZ2V0LgoJKHhzY2FsZS1jb2ZmKTogQWRkIHRhcmdldC4KCgkqIGNwdS1hcm0uYzogQWRkIHhzY2FsZSBtYWNoaW5lIG5hbWUuCglBZGQgdjV0LCB2NXRlIGFuZCBYU2NhbGUgbWFjaGluZSBudW1iZXJzLgoKMjAwMC0xMS0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBhaXgzODYtY29yZS5jOiBGaXggZm9ybWF0dGluZy4KCjIwMDAtMTEtMjIgIEppbSBXaWxzb24gIDx3aWxzb25AcmVkaGF0LmNvbT4KCgkqIGNvZmYtaWE2NC5jIChob3d0b190YWJsZSk6IFVzZSBFTVBUWV9IT1dUTy4KCShpbl9yZWxvY19wKTogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gdW51c2VkIHBhcmFtZXRlcnMuCgkqIGNwdS1pYTY0LW9wYy5jIChpbnNfcnN2ZCwgZXh0X3JzdmQsIGluc19jb25zdCwgZXh0X2NvbnN0KTogTGlrZXdpc2UuCgkoaW5zX2ltbXNfc2NhbGVkKTogSW5pdGlhbGl6ZSBzaWduX2JpdCBhdCBmdW5jdGlvbiBlbnRyeS4KCShlbGY2NF9pYTY0X29wZXJhbmRzKTogQWRkIG1pc3NpbmcgaW5pdGlhbGl6ZXJzLgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfcmVsb2MsIGVsZk5OX2lhNjRfcmVsb2NfdHlwZV9sb29rdXAsCgllbGZOTl9pYTY0X2luZm9fdG9faG93dG8sIGVsZk5OX2lhNjRfZmFrZV9zZWN0aW9ucywKCWVsZk5OX2lhNjRfYWRkX3N5bWJvbF9ob29rLCBlbGZOTl9pYTY0X2lzX2xvY2FsX2xhYmVsX25hbWUsCgllbGZOTl9pYTY0X2xvY2FsX2hhc2hfdGFibGVfaW5pdCwgZ2V0X2ZwdHIsIGdldF9wbHRvZmYsCgllbGZOTl9pYTY0X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IEFkZCBBVFRSSUJVVEVfVU5VU0VEIGZvciB1bnVzZWQKCXBhcmFtZXRlcnMuCgkoZWxmTk5faWE2NF9pbmZvX3RvX2hvd3RvKTogSW5pdGlhbGl6ZSBmcmVlX3JlbG9jcywgZnJlZV9jb250ZW50cywKCWFuZCBmcmVlX2V4dHN5bXMgYXQgZnVuY3Rpb24gZW50cnkuCgkoZWxmTk5fYWRkX3N5bWJvbF9ob29rKTogQWRkIHVuc2lnbmVkIGNhc3QgdG8gYmZkX2dldF9ncF9zaXplIHJlc3VsdC4KCShlbGZOTl9pYTY0X2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogRGVsZXRlIHVudXNlZCBsb2NhbCBoLgoJKGdldF9nb3QpOiBEZWxldGUgdW51c2VkIGxvY2FsIHNyZWwuCgkoZWxmTk5faWE2NF9jaGVja19yZWxvY3MpOiBJbml0aWFsaXplIGR5bnJlbF90eXBlIHdoZW4gZGVjbGFyZWQuCgkoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogRGVsZXRlIHVudXNlZCBsb2NhbCBkeW5pbmR4LgoKMjAwMC0xMS0yMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjb2ZmLWEyOWsuYzogRml4IGZvcm1hdHRpbmcuCgkqIGNvZmYtaDg1MDAuYzogTGlrZXdpc2UuCgkqIGNvZmYtaTk2MC5jOiBMaWtld2lzZS4KCSogY29mZi1wcGMuYzogTGlrZXdpc2UuCgkqIGNvZmYtcnM2MDAwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXN0Z28zMi5jOiBMaWtld2lzZS4KCSogY29mZi10aWM1NHguYzogTGlrZXdpc2UuCgkqIGNvZmYtdzY1LmM6IExpa2V3aXNlLgoJKiBjcHUtaDg1MDAuYzogTGlrZXdpc2UuCgkqIGNwdS1ocHBhLmM6IExpa2V3aXNlLgoJKiBjcHUtbnMzMmsuYzogTGlrZXdpc2UuCgkqIGVjb2ZmLmM6IExpa2V3aXNlLgoJKiBlY29mZmxpbmsuYzogTGlrZXdpc2UuCgoyMDAwLTExLTIxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jX2xvb3ApOiBGaXggY29tcGlsZSB0aW1lIHdhcm5pbmcsIGFuZAoJcmVtb3ZlIHBvc3NpYmlsaXR5IG9mIGluZmluaXRlIGxvb3AuCgoyMDAwLTExLTIwICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGFpeDM4Ni1jb3JlLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBhb3V0LWFkb2JlLmM6IExpa2V3aXNlLgoJKiBhb3V0LWFybS5jOiBMaWtld2lzZS4KCSogYW91dC1lbmNhcC5jOiBMaWtld2lzZS4KCSogYW91dC1uczMyay5jOiBMaWtld2lzZS4KCSogYW91dC10YXJnZXQuaDogTGlrZXdpc2UuCgkqIGFvdXQtdGljMzAuYzogTGlrZXdpc2UuCgkqIGFvdXRmMS5oOiBMaWtld2lzZS4KCSogYW91dHguaDogTGlrZXdpc2UuCgkqIGFyY2hpdmUuYzogTGlrZXdpc2UuCgkqIGJmZC1pbi5oOiBMaWtld2lzZS4KCSogYmZkLWluMi5oOiBMaWtld2lzZS4KCSogYmZkLmM6IExpa2V3aXNlLgoJKiBib3V0LmM6IExpa2V3aXNlLgoKMjAwMC0xMS0xNyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmeHgtaWE2NC5jIChlbGZOTl9pYTY0X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IERvbid0IGNyZWF0ZQoJcGx0b2ZmIGVudHJpZXMgZm9yIERUX0lOSVQgYW5kIERUX0ZJTkkuCgkoZWxmTk5faWE2NF9maW5hbF9saW5rKTogRG9uJ3Qgc2V0IERUX0lOSVQvRklOSSBlbnRyaWVzLgoJKGVsZk5OX2lhNjRfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBEb24ndCBmaWxsIGluIERUX0lOSVQvRklOSQoJZW50cmllcy4KCjIwMDAtMTEtMTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBlbGZ4eC1pYTY0LmMgKGVsZk5OX2lhNjRfY2hlY2tfcmVsb2NzKTogSGFuZGxlIElQTFQgcmVsb2NzLgoJKGFsbG9jYXRlX2R5bnJlbF9lbnRyaWVzKTogTGlrZXdpc2UuCgkoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuICBTZXQgUkVMIGFkZGVuZHMgY29ycmVjdGx5LgoJKHNldF9wbHRvZmZfZW50cnkpOiBMaWtld2lzZS4KCShpYTY0X2hvd3RvX3RhYmxlKTogUmVtb3ZlIFJfSUE2NF9TRUdCQVNFLCBhbmQgUl9JQTY0X0VQTFRbTUxdU0IKCShlbGZOTl9pYTY0X3JlbG9jX3R5cGVfbG9va3VwKTogTGlrZXdpc2UuCgkoZWxmTk5faWE2NF9pbnN0YWxsX3ZhbHVlKTogTGlrZXdpc2UuCgkoZWxmTk5faWE2NF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIHJlbG9jLmMgKEJGRF9SRUxPQ19JQTY0X1NFR0JBU0UpOiBSZW1vdmUuCgkoQkZEX1JFTE9DX0lBNjRfRVBMVE1TQiwgQkZEX1JFTE9DX0lBNjRfRVBMVExTQik6IFJlbW92ZS4KCjIwMDAtMTEtMTYgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogY3B1LWEyOWsuYzogRml4IGZvcm1hdHRpbmcuCgkqIGNwdS1hbHBoYS5jOiBMaWtld2lzZS4KCSogY3B1LWFybS5jOiBMaWtld2lzZS4KCSogY3B1LWF2ci5jOiBMaWtld2lzZS4KCSogY3B1LWQxMHYuYzogTGlrZXdpc2UuCgkqIGNwdS1oODUwMC5jOiBMaWtld2lzZS4KCSogY3B1LWhwcGEuYzogTGlrZXdpc2UuCgkqIGNwdS1pMzcwLmM6IExpa2V3aXNlLgoJKiBjcHUtaTM4Ni5jOiBMaWtld2lzZS4KCSogY3B1LWk5NjAuYzogTGlrZXdpc2UuCgkqIGNwdS1pYTY0LW9wYy5jOiBMaWtld2lzZS4KCSogY3B1LWlhNjQuYzogTGlrZXdpc2UuCgkqIGNwdS1tMzJyLmM6IExpa2V3aXNlLgoJKiBjcHUtbTY4aGMxMS5jOiBMaWtld2lzZS4KCSogY3B1LW02OGhjMTIuYzogTGlrZXdpc2UuCgkqIGNwdS1tNjhrLmM6IExpa2V3aXNlLgoJKiBjcHUtbTg4ay5jOiBMaWtld2lzZS4KCSogY3B1LW1pcHMuYzogTGlrZXdpc2UuCgkqIGNwdS1uczMyay5jOiBMaWtld2lzZS4KCSogY3B1LXBqLmM6IExpa2V3aXNlLgoJKiBjcHUtcG93ZXJwYy5jOiBMaWtld2lzZS4KCSogY3B1LXNoLmM6IExpa2V3aXNlLgoJKiBjcHUtc3BhcmMuYzogTGlrZXdpc2UuCgkqIGNwdS10aWM1NHguYzogTGlrZXdpc2UuCgkqIGNwdS12ODUwLmM6IExpa2V3aXNlLgoJKiBjcHUtdmF4LmM6IExpa2V3aXNlLgoJKiBjcHUtdzY1LmM6IExpa2V3aXNlLgoJKiBjcHUtd2UzMmsuYzogTGlrZXdpc2UuCgkqIGNwdS16OGsuYzogTGlrZXdpc2UuCgkqIGR3YXJmMS5jOiBMaWtld2lzZS4KCSogZHdhcmYyLmM6IExpa2V3aXNlLgoKMjAwMC0xMS0xNSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjb2ZmLWFybS5jOiBGaXggZm9ybWF0dGluZy4KCSogY29mZi1wcGMuYzogTGlrZXdpc2UuCgkqIGNvZmYtcnM2MDAwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXNoLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXNwYXJjLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXRpYzMwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLXRpYzU0eC5jOiBMaWtld2lzZS4KCSogY29mZi10aWM4MC5jOiBMaWtld2lzZS4KCSogY29mZi13NjUuYzogTGlrZXdpc2UuCgkqIGNvZmYtd2UzMmsuYzogTGlrZXdpc2UuCgkqIGNvZmYtejhrLmM6IExpa2V3aXNlLgoKMjAwMC0xMS0xNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX2NoZWNrX3JlbG9jcyk6IENyZWF0ZSB0aGUgcmVsb2MKCXNlY3Rpb24gd2l0aCB0aGUgc2FtZSBBTExPQ3xMT0FEIGZsYWdzIGFzIHRoZSBzb3VyY2Ugc2VjdGlvbi4KCjIwMDAtMTEtMTQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsYXhfb3B0X2NhbGwpOiBPbmx5IGNoZWNrIGJpdHMgdXNlZAoJYnkgU1RPX0FMUEhBIGNvbnN0YW50cy4KCjIwMDAtMTEtMTQgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogY29mZi1wbWFjLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBjb2ZmLXBwYy5jOiBMaWtld2lzZS4KCjIwMDAtMTEtMTMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogQWxzbyBhZGQgaW5kaXJlY3QKCXN5bWJvbHMgZm9yIGNvbW1vbiBzeW1ib2xzIHdpdGggdGhlIGRlZmF1bHQgdmVyc2lvbi4KCjIwMDAtMTEtMDkgIFBoaWxpcCBCbHVuZGVsbCAgPHBiQGZ1dHVyZXR2LmNvbT4KCgkqIHNlY3Rpb24uYyAoU1REX1NFQ1RJT04pOiBTZXQgZ2NfbWFyayBmbGFnLgoKMjAwMC0xMS0xMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjb2ZmLWk5NjAuYzogTGlrZXdpc2UuCgkqIGNvZmYtbTY4ay5jOiBMaWtld2lzZS4KCSogY29mZi1tODhrLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW1jb3JlLmM6IExpa2V3aXNlLgoJKiBjb2ZmLW1pcHMuYzogTGlrZXdpc2UuCgoyMDAwLTExLTExICBCZXJuZCBTY2htaWR0ICA8YmVybmRzQGN5Z251cy5jby51az4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSWdub3JlIFJfU0hfTk9ORSByZWxvY3MuCgoyMDAwLTExLTEwICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGNvZmYtaDgzMDAuYzogRml4IGZvcm1hdHRpbmcuCgkqIGNvZmYtaDg1MDAuYzogTGlrZXdpc2UuCgkqIGNvZmYtaTM4Ni5jOiBMaWtld2lzZS4KCSogY29mZi1pODYwLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWk5NjAuYzogTGlrZXdpc2UuCgkqIGNvZmYtaWE2NC5jOiBMaWtld2lzZS4KCjIwMDAtMTEtMDkgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogYXJjaGl2ZS5jOiBGaXggZm9ybWF0dGluZy4KCSogYXJjaHVyZXMuYzogTGlrZXdpc2UuCgoyMDAwLTExLTA3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZWxmeHgtaWE2NC5jIChlbGY2NF9pYTY0X2ZpbmFsX2xpbmspOiBOZXcgbG9jYWwgdW53aW5kX291dHB1dF9zZWMuCglTZXQgaXQgYmVmb3JlIGJmZF9lbGY2NF9iZmRfZmluYWxfbGluayBjYWxsLiAgVXNlIGl0IGFmdGVyIHRoZSBjYWxsLgoJKiBzZWN0aW9uLmMgKGJmZF9zZXRfc2VjdGlvbl9jb250ZW50cyk6IENhbGwgbWVtY3B5IGlmCglzZWN0aW9uLT5jb250ZW50cyBzZXQgYW5kIGxvY2F0aW9uIG5vdCBlcXVhbCB0byBjb250ZW50cyBwbHVzIG9mZnNldC4KCjIwMDAtMTEtMDggIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogYmZkLWluLmg6IEZpeCBmb3JtYXR0aW5nLgoJKiBiZmQtaW4yLmg6IExpa2V3aXNlLgoJKiBiZmQuYzogTGlrZXdpc2UuCgkqIGJpbmFyeS5jOiBMaWtld2lzZS4KCSogYm91dC5jOiBMaWtld2lzZS4KCSogY29mZi1hMjlrLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWFscGhhLmM6IExpa2V3aXNlLgoJKiBjb2ZmLWFwb2xsby5jOiBMaWtld2lzZS4KCSogY29mZi1hdXguYzogTGlrZXdpc2UuCgoyMDAwLTExLTA3ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGFpeDM4Ni1jb3JlLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBhb3V0ZjEuaDogTGlrZXdpc2UuCgkqIGFvdXR4Lmg6IExpa2V3aXNlLgoJKiBhcmNodXJlcy5jOiBMaWtld2lzZS4KCSogYXJtbmV0YnNkLmM6IExpa2V3aXNlLgoKMjAwMC0xMS0wNyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGNvZmYtaDgzMDAuYyAoc3BlY2lhbCk6IEFkanVzdCByZWxvYyBhZGRyZXNzLgoKMjAwMC0xMS0wNiAgU3RldmUgRWxsY2V5IDxzamVAY3VwLmhwLmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9tYWNoX2lhNjRfZWxmNjQsIGJmZF9tYWNoX2lhNjRfZWxmMzIpOiBBZGQgZGVmaW5lcwoJdG8gZGlmZmVyZW50aWF0ZSBlbGYzMiBhbmQgZWxmNjQgb24gaWE2NC4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuYmZkOiBBZGQgdGFyZ2V0IGZvciAiaWE2NCotKi1ocHV4KiIuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIGJmZF9lbGYzMl9pYTY0X2JpZ192ZWMgdG8gc2VsdmVjcyBzd2l0Y2guCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY3B1LWlhNjQuYyAoYmZkX2lhNjRfZWxmMzJfYXJjaCk6IEFkZCBlbGYzMiBhcmNoIGluZm8gc3RydWN0dXJlLgoJKiB0YXJnZXRzLmM6IEFkZCBiZmRfdGFyZ2V0IGJmZF9lbGYzMl9pYTY0X2JpZ192ZWMuCgoJKiBNYWtlZmlsZS5hbTogTWFrZSBlbGYzMi1pYTY0LmMgYW5kIGVsZjY0LWlhNjQuYyBkZXJpdmVkIG9iamVjdHMKCWZyb20gZWxmeHgtaWE2NC5jLiAgQWRkIGRlcGVuZW5jeSBydWxlcyBmb3IgbWFraW5nIGVsZjMyLWlhNjQubG8uCgkqIE1ha2VmaWxlLmluOiBSZWduZXJhdGUuCgkqIGVsZjY0LWlhNjQuYzogRGVsZXRlZC4KCSogZWxmeHgtaWE2NC5jOiBOZXcgZmlsZSwgcGFyYW1hdGVyaXplZCB2ZXJzaW9uIG9mIGVsZjY0LWlhNjQuYy4KCjIwMDAtMTEtMDYgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogYW91dC1hZG9iZS5jOiBGaXggZm9ybWF0dGluZy4KCSogYW91dC1hcm0uYzogTGlrZXdpc2UuCgkqIGFvdXQtY3Jpcy5jOiBMaWtld2lzZS4KCSogYW91dC1lbmNhcC5jOiBMaWtld2lzZS4KCSogYW91dC1uczMyay5jOiBMaWtld2lzZS4KCSogYW91dC10YXJnZXQuaDogTGlrZXdpc2UuCgkqIGFvdXQtdGljMzAuYzogTGlrZXdpc2UuCgoyMDAwLTExLTA1ICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogQWx3YXlzIHBlcm1pdAoJQkZEcyBjb250YWluaW5nIG5vIHNlY3Rpb25zIHRvIGJlIG1lcmdlZCwgcmVnYXJkbGVzcyBvZiB0aGVpciBmbGFncy4KCjIwMDAtMTEtMDQgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBTdXBwcmVzcyBlcnJvciBtZXNzYWdlCglpZiBhIHJlbG9jYXRpb24gZm9yIGFuIHVuZGVmaW5lZCBzeW1ib2wgYWxzbyByZXN1bHRzIGluIGFuCglvdmVyZmxvdy4KCjIwMDAtMTEtMDYgIENocmlzdG9waGVyIEZheWxvciA8Y2dmQGN5Z251cy5jb20+CgoJKiBjb25maWcuYmZkOiBBZGQgc3VwcG9ydCBmb3IgU3VuIENob3J1cy4KCjIwMDAtMTEtMDUgIERhdmlkIE8nQnJpZW4gIDxvYnJpZW5ARnJlZUJTRC5vcmc+CgoJKiBjb25maWd1cmUuaW46IFJlY29nbml6ZSBhbHBoYS0qLWZyZWVic2QqLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAwLTExLTAyICBMdWNpYW5vIEdlbW1lIDxpc2hpdGF3YUB5YWhvby5jb20+CgoJKiBzcmVjLmMgKENIVU5LKTogUmVuYW1lIHRvIERFRkFVTFRfQ0hVTksuCgkoQ2h1bmspOiBOZXcgZ2xvYmFsIHZhcmlhYmxlIHNldCBieSBhIHBhcmFtZXRlciBpbiBvYmpjb3B5LmMuCgkoUzNGb3JjZWQpOiBOZXcgZ2xvYmFsIHZhcmlhYmxlIHNldCBieSBhIHBhcmFtZXRlciBpbgoJb2JqY29weS5jLgoJKHNyZWNfc2V0X3NlY3Rpb25fY29udGVudHMpOiBJZiBTM0ZvcmNlZCBpcyB0cnVlLCBhbHdheXMgZ2VuZXJhdGUKCVMzIHJlY29yZHMuCgkoc3JlY193cml0ZV9zZWN0aW9uKTogVXNlICdDaHVuaycgdG8gbGltaXQgbWF4aW11bSBsZW5ndGggb2YgUwoJcmVjb3Jkcy4KCjIwMDAtMTEtMDIgIFBlciBMdW5kYmVyZyAgPHBsdW5kaXNAY2hhb3NkZXYub3JnPgoKCSogY29uZmlnLmJmZDogQWRkIHN1cHBvcnQgZm9yIGlbMzQ1Nl04Ni1jaGFvc2Rldi1zdG9ybS1jaGFvcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDAtMTAtMzEgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBPbmx5IGhhbmRsZQoJRUZfU09GVF9GTE9BVCBpZiBpdCBpcyBkZWZpbmVkLgoKMjAwMC0xMC0yNyAgUGhpbGlwIEJsdW5kZWxsICA8cGhpbGJAZ251Lm9yZz4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fY29weV9wcml2YXRlX2JmZF9kYXRhKTogRG9uJ3QgcmVmdXNlCglhdHRlbXB0cyB0byBtaXggUElDIGNvZGUgd2l0aCBub24tUElDLCBqdXN0IG1hcmsgdGhlIG91dHB1dCBhcwoJYmVpbmcgcG9zaXRpb24gZGVwZW5kZW50LgoJKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogTGlrZXdpc2UuICBQcmludCBhbiBlcnJvcgoJbWVzc2FnZSBmb3IgRUZfU09GVF9GTE9BVCBtaXNtYXRjaGVzLiAgRGlzcGxheSBkaWFnbm9zdGljcyBmb3IKCWFsbCBtaXNtYXRjaGVzLCBub3QganVzdCB0aGUgZmlyc3Qgb25lLgoKMjAwMC0xMC0yNSAgQ2hyaXMgRGVtZXRyaW91ICA8Y2dkQHNpYnl0ZS5jb20+CgoJKiBpZWVlLmMgKGllZWVfYXJjaGl2ZV9wKTogUGx1ZyBvbmUgb2YgbWFueSBwb3NzaWJsZQoJbWVtb3J5IGxlYWtzIGluIGVycm9yIGhhbmRsaW5nLgoKMjAwMC0xMC0yMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19tZXJnZV9wcml2YXRlX2JmZF9kYXRhLAoJZWxmMzJfc3BhcmNfb2JqZWN0X3AsIGVsZjMyX3NwYXJjX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOgoJU3VwcG9ydCB2OHBsdXNiLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhLAoJc3BhcmM2NF9lbGZfb2JqZWN0X3ApOiBTdXBwb3J0IHY5Yi4KCSogYXJjaHVyZXMuYzogRGVjbGFyZSB2OHBsdXNiIGFuZCB2OWIgbWFjaGluZXMuCgkqIGJmZC1pbjIuaDogRGl0dG8uCgkqIGNwdS1zcGFyYy5jOiBEaXR0by4KCjIwMDAtMTAtMTYgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAc2hvZ2dvdGguY3lnbnVzLmNvbT4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBDbGVhciB0aGUgbG9jYXRpb24KCW9mIGEgR09UIHJlbG9jLgoKCSogZWxmMzItcHBjLmMgKFNZTUJPTF9SRUZFUkVOQ0VTX0xPQ0FMKTogTmV3IG1hY3JvLgoJKFNZTUJPTF9DQUxMU19MT0NBTCk6IE5ldyBtYWNyby4KCShwcGNfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFVzZSBTWU1CT0xfQ0FMTFNfTE9DQUwuCgkocHBjX2VsZl9jaGVja19yZWxvY3MpOiBVc2UgU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwuCgkocHBjX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBVc2UgU1lNQk9MX1JFRkVSRU5DRVNfTE9DQUwuCgkocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogVXNlIGZsYWcgdmFyaWFibGUgdG8gZGV0ZXJtaW5lCgl3aGV0aGVyIHRoZSByZWxvY2F0aW9uIHJlZmVycyB0byBhIGxvY2FsIHN5bWJvbC4KCVRlc3Qgd2hldGhlciBhIFBMVFJFTDI0IHJlbG9jIHdpbGwgcHJvZHVjZSBhIHJlbG9jIGJ5IGxvb2tpbmcKCXRvIHNlZSB3aGV0aGVyIGEgUExUIGVudHJ5IHdhcyBtYWRlLgoKMjAwMC0xMC0xNCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BzaG9nZ290aC5jeWdudXMuY29tPgoKCSogZWxmMzItcHBjLmMgKHBwY19lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QgbWFrZSBQTFQKCWVudHJpZXMgdGhhdCBjb3VsZCBzZXJ2ZSBhcyBhIGRlZmluaXRpb24gZm9yIGEgd2VhayBzeW1ib2wuCgoyMDAwLTEwLTEzICBVbGYgQ2FybHNzb24gIDx1bGZjQGVuZ3Iuc2dpLmNvbT4KCglGcm9tICBSYWxmIEJhZWNobGUgIDxyYWxmQGdudS5vcmc+CgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBOZXcgYXJndW1lbnQKCWxvY2FsX3AuICBBZGQgc3ltYm9sIHZhbHVlIG9ubHkgZm9yIG5vbi1SX01JUFNfUkVMMzIgcmVsb2NhdGlvbnMKCWFnYWluc3QgbG9jYWwgc3ltYm9scy4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogVW5kbyBwYXRjaCBmcm9tIDIwMDAtMTAtMDEuCgoyMDAwLTEwLTEyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogc2VjdGlvbi5jIChzdHJ1Y3Qgc2VjKTogQWRkIGtlcHRfc2VjdGlvbi4KCShzdHJ1Y3QgYmZkX2NvbWRhdF9pbmZvKTogUmVtb3ZlIHNlYywgd2UgY2FuIHVzZSBhYm92ZS4KCShTVERfU0VDVElPTik6IEFkZCBpbml0aWFsaXplci4KCShiZmRfbWFrZV9zZWN0aW9uX2FueXdheSk6IEluaXQgaGVyZSB0b28uCgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IFJlbW92ZSB1bm5lY2Vzc2FyeQoJemVyb2luZyBvZiBgZmxhZ3MnLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IFNldCBhbGwgYXNlY3Rpb24tPnN5bWJvbC0+dmFsdWUncyBoZXJlLCBhbmQKCWZ1ZGdlIHZhbHVlcyBmb3IgZGlzY2FyZGVkIGxpbmstb25jZSBzZWN0aW9uIHN5bWJvbHMuCgoJKiBlbGY2NC1ocHBhLmM6IEluY2x1ZGUgYWxsb2NhLWNvbmYuaAoKMjAwMC0xMC0xMSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZi5jIChzd2FwX291dF9zeW1zKTogUmV2ZXJ0IDIwMDAtMTAtMDcgY2hhbmdlcy4KCgkqIGllZWUuYyAoaWVlZV9tYWtlX2VtcHR5X3N5bWJvbCk6IE9vcHMsIGJmZF96YWxsb2MgbmVlZHMgYW5vdGhlciBhcmcuCgoyMDAwLTEwLTEwICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogaWVlZS5jIChpZWVlX21ha2VfZW1wdHlfc3ltYm9sKTogVXNlIGJmZF96YWxsb2MsIG5vdCBiZmRfem1hbGxvYy4KCjIwMDAtMTAtMTAgIFRvbSBSaXggPHRyaXhAcmVkaGF0LmNvbT4KCgkqIHNlY3Rpb24uYyAoYmZkX21ha2Vfc2VjdGlvbl9hbnl3YXkpOiBSZWxlYXNlIG5ld3NlY3QgcHRyIHdoZW4KCW5ld3NlY3QtPnN5bWJvbCBmYWlscyB0byBhbGxvYy4gIFVzZSBiZmRfcmVsZWFzZSBpbnN0ZWFkIG9mIGZyZWUuCgoyMDAwLTEwLTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tCgoJKiBlbGY2NC1pYTY0LmMgKGVsZjY0X2lhNjRfdW53aW5kX2VudHJ5X2NvbXBhcmVfYmZkKTogTmV3LgoJKGVsZjY0X2lhNjRfdW53aW5kX2VudHJ5X2NvbXBhcmUpOiBOZXcuCgkoZWxmNjRfaWE2NF9maW5hbF9saW5rKTogU29ydCB0aGUgLklBXzY0LnVud2luZCBzZWN0aW9uLgoKMjAwMC0xMC0wNyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZmxpbmsuaCAoc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogRG9uJ3QgY3JlYXRlIHZhcmlvdXMgdGFncyBpZgoJLmR5bnN0ciBpcyBleGNsdWRlZCBmcm9tIHRoZSBsaW5rLiAgRG9uJ3Qgc2V0IGZpcnN0IGR5bnN5bSBlbnRyeQoJaWYgZHluc3ltY291bnQgaXMgemVyby4KCShlbGZfYmZkX2ZpbmFsX2xpbmspOiBEb24ndCB0cnkgdG8gc3dhcCBvdXQgZHluYW1pYyBzeW1zIGlmCgkuZHluc3ltIGV4Y2x1ZGVkIGZyb20gdGhlIGxpbmsuICBEb24ndCB0cnkgdG8gd3JpdGUgYW55IGR5bmFtaWMKCXNlY3Rpb25zIGV4Y2x1ZGVkIGZyb20gdGhlIGxpbmsuCgoJKiBlbGYuYyAoc3dhcF9vdXRfc3ltcyk6IEhhbmRsZSBnbG9iYWwgc2VjdGlvbiBzeW1ib2xzLgoKMjAwMC0xMC0wNSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBwZWlnZW4uYyAoX2JmZF9wZWlfc3dhcF9zY25oZHJfb3V0KTogbm90ZSBleHRlbmRlZCByZWxvY3MKCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYWxpZ25tZW50X2hvb2spOiByZWFkIGV4dGVuZGVkIHJlbG9jIGNvdW50CgkoY29mZl93cml0ZV9yZWxvY3MpOiB3cml0ZSBleHRlbmRlZCByZWxvYyBjb3VudAoJKGNvZmZfd3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogYWNjb3VudCBmb3IgZXh0ZW5kZWQgcmVsb2NzCgoyMDAwLTEwLTA1ICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfYmFja2VuZF9kYXRhKTogQWRkIGVsZl9iYWNrZW5kX3NlY3Rpb25fZmxhZ3MKCWZpZWxkLgoJKiBlbGYuYyAoX2JmZF9lbGZfbWFrZV9zZWN0aW9uX2Zyb21fc2hkcik6IENhbGwgdGhlCgllbGZfYmFja2VuZF9zZWN0aW9uX2ZsYWdzIGZ1bmN0aW9uLgoJKiBlbGY2NC1pYTY0LmMgKGVsZjY0X2lhNjRfc2VjdGlvbl9mcm9tX3NoZHIpOiBEZWxldGUgZmxhZyBjb252ZXJzaW9uCgljb2RlLgoJKGVsZjY0X2lhNjRfc2VjdGlvbl9mbGFncyk6IE5ldyBmdW5jdGlvbiBjb250YWluaW5nIGZsYWcgY29udmVyc2lvbgoJY29kZS4KCShlbGZfYmFja2VuZF9zZWN0aW9uX2ZsYWdzKTogRGVmaW5lIHRvIGVsZjY0X2lhNjRfc2VjdGlvbl9mbGFncy4KCSogZWxmeHgtdGFyZ2V0LmggKGVsZl9iYWNrZW5kX3NlY3Rpb25fZmxhZ3MpOiBEZWZpbmUuCgkoZWxmTk5fYmVkKTogSW5pdGlhbGl6ZSBlbGZfYmFja2VuZF9zZWN0aW9uX2ZsYWdzIGZpZWxkLgoKMjAwMC0xMC0wMiAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBDb3JyZWN0IGNhbGwgdG8KCV9iZmRfZWxmMzJfZ2NfcmVjb3JkX3Z0YWJsZS4gIENvcnJlY3QgYSBjb21tZW50LgoKMjAwMC0xMC0wMSAgVWxmIENhcmxzc29uICA8dWxmY0BlbmdyLnNnaS5jb20+CgoJRnJvbSAgUmFsZiBCYWVjaGxlICA8cmFsZkBnbnUub3JnPgoKCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTWFyayBnbGQKCXByb2R1Y2VzIGJpbmFyaWVzIHdpdGggZ290WzFdID0gMHg4MDAwMDAwMSB0byBkaWZmZXJlbmNpYXRlIHRoZW0KCWZvciB0aGUgZHluYW1pYyBsaW5rZXIgZnJvbSB0aGUgYnJva2VuIGJpbmFyaWVzIHByb2R1Y2VkIGJ5IG9sZAoJdmVyc2lvbnMuCgoyMDAwLTA5LTMwICBQZXRyIFNvcmZhIDxwZXRyc0BzY28uY29tPgoKCSogZWxmLmMgKGVsZmNvcmVfZ3Jva19wc3RhdHVzKTogQ2hlY2sgZm9yIHNpemUgb2YgcHhzdGF0dXNfdC4KCShlbGZjb3JlX2dyb2tfbHdwc3RhdHVzKTogQ2hlY2sgZm9yIHNpemUgb2YgbHdweHN0YXR1c190LgoJKiBjb25maWd1cmUuaW46IEFkZCBjaGVjayBmb3IgcHhzdGF0dXNfdCBhbmQgbHdweHN0YXR1c190LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDAwLTA5LTI3ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCglEZWZpbmUgdHdvIGJmZF90YXJnZXRzIGZvciBhYnNlbmNlIGFuZCBwcmVzZW5jZSBvZiBsZWFkaW5nCgl1bmRlcnNjb3JlIG9uIHN5bWJvbHMuICBNYWtlIHN1cmUgdG8gb25seSBsaW5rIHNhbWUga2luZC4KCSogZWxmMzItY3Jpcy5jIChjcmlzX2VsZl9vYmplY3RfcCwKCWNyaXNfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcsIGNyaXNfZWxmX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEsCgljcmlzX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogTmV3LgoJKGVsZl9iYWNrZW5kX29iamVjdF9wLCBlbGZfYmFja2VuZF9maW5hbF93cml0ZV9wcm9jZXNzaW5nLAoJYmZkX2VsZjMyX2JmZF9wcmludF9wcml2YXRlX2JmZF9kYXRhLAoJYmZkX2VsZjMyX2JmZF9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogRGVmaW5lLgoJPFRhcmdldCB2ZWN0b3IgZGVmaW5pdGlvbj46IEluY2x1ZGUgZWxmMzItdGFyZ2V0LmggdHdpY2Ugd2l0aAoJZGlmZmVyZW50IG1hY3JvIHNldHRpbmdzOgoJKFRBUkdFVF9MSVRUTEVfU1lNKTogRmlyc3QgYXMgYmZkX2VsZjMyX2NyaXNfdmVjLCB0aGVuIGFzCgliZmRfZWxmMzJfdXNfY3Jpc192ZWMuCgkoVEFSR0VUX0xJVFRMRV9OQU1FKTogRmlyc3QgYXMgImVsZjMyLWNyaXMiLCB0aGVuICJlbGYzMi11cy1jcmlzIi4KCShlbGZfc3ltYm9sX2xlYWRpbmdfY2hhcik6IEZpcnN0IGFzIDAsIHRoZW4gJ18nLgoJKElOQ0xVREVEX1RBUkdFVF9GSUxFKTogRGVmaW5lIGZvciBzZWNvbmQgaW5jbHVkZSBvZiBlbGYzMi10YXJnZXQuaC4KCSogY29uZmlnLmJmZCAoY3Jpcy0qLSopOiBBZGQgYmZkX2VsZjMyX3VzX2NyaXNfdmVjIHRvIHRhcmdfc2VsdmVjcy4KCSogY29uZmlndXJlLmluIChiZmRfZWxmMzJfY3Jpc192ZWMsIGNyaXNfYW91dF92ZWMpOiBOZXcgdmVjdG9yLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIHRhcmdldHMuYzogRGVjbGFyZSBiZmRfZWxmMzJfdXNfY3Jpc192ZWMuCgkqIHBvL2JmZC5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAwLTA5LTI5ICBNb21jaGlsIFZlbGlrb3YgIDx2ZWxjb0BmYWRhdGEuYmc+CgoJKiBlbGYzMi1hcm0uaCAoYXJtX2FkZF90b19yZWwpOiBDb3JyZWN0bHkgYWRqdXN0IHRoZSBhZGRlbmQgZm9yCglSX0FSTV9USE1fUEMyMiByZWxvY2F0aW9ucy4KCjIwMDAtMDktMjkgIE5JSUJFIFl1dGFrYSA8Z25paWJlQGNocm9vdC5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IERvbid0IGJmZF9yZWxlYXNlIHJ1bnBhdGguCgoyMDAwLTA5LTI5ICBNb21jaGlsIFZlbGlrb3YgPHZlbGNvQGZhZGF0YS5iZz4KCgkqIGVsZi5jIChlbGZfZmFrZV9zZWN0aW9ucyk6IERvIG5vdCBtYXJrIHRoZSBzZWN0aW9uIFNIVF9OT0JJVFMgaWYKCWlzIGhhcyB0aGUgU0VDX0hBU19DT05URU5UUyBmbGFnIHNldC4KCjIwMDAtMDktMjggIIHWcmphbiBGcmliZXJnICA8b3JqYW5mQGF4aXMuY29tPgoJICAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogYW91dC1jcmlzLmMgKE5fVFhUQUREUik6IERlZmluZS4KCjIwMDAtMDktMjggIEpvaG4gRGF2aWQgQW5nbGluIDxkYXZlQGhpYXVseTEuaGlhLm5yYy5jYT4KCgkqIHNvbS5jOiBJbmNsdWRlIGFsbG9jYS1jb25mLmguCgkqIE1ha2VmaWxlLmFtOiAibWFrZSBkZXAtYW0iCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wOS0yNyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZjMyLWhwcGEuYyAocGx0X3N0dWIpOiBOZXcuCgkoUExUX1NUVUJfRU5UUlkpOiBEZWZpbmUuCgkoZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGUpOiBDaGFuZ2UgbXVsdGlfc3Vic3BhY2UgdG8gcGFja2VkCglib29sZWFuLiAgQWRkIG5lZWRfcGx0X3N0dWIsIGhhc18xMmJpdF9icmFuY2ggYW5kIGhhc18xN2JpdF9icmFuY2guCgkoZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogSW5pdCB0byBzdWl0LgoJKGVsZjMyX2hwcGFfY2hlY2tfcmVsb2NzKTogU2V0IGhhc18xMmJpdF9icmFuY2ggYW5kCgloYXNfMTdiaXRfYnJhbmNoIGFzIGFwcHJvcHJpYXRlLgoJKGVsZjMyX2hwcGFfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogU2V0IG5lZWRfcGx0X3N0dWIgZm9yCglub24tbG9jYWwgZnVuY3Rpb25zLgoJKGVsZjMyX2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQ29ycmVjdCBzZXR0aW5nIG9mIHJlbHRleHQuCglBZGQgc3BhY2UgZm9yIHBsdF9zdHViIGFzIG5lZWRlZC4KCShlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFBvaW50IC5wbHQgZW50cmllcyBmb3IgZ2xvYmFsCglmdW5jdGlvbnMgYXQgcGx0X3N0dWIuCgkoZWxmMzJfaHBwYV9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IFdyaXRlIHBsdF9zdHViLgoJKGVsZjMyX2hwcGFfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMpOiBMZWF2ZSAucGx0IGV4ZWN1dGFibGUuCgoJKiBlbGYzMi1ocHBhLmggKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IEFkZCBncm91cF9zaXplIHBhcmFtLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IExpa2V3aXNlLiAgVXNlIGl0IGluc3RlYWQKCW9mIGZpeGVkIHNpemUsIGFuZCBpZiBuZWdhdGl2ZSwgZGlzYWJsZSBoYW5kbGluZyBvZiBpbnB1dCBzZWN0aW9ucwoJYmVmb3JlIHN0dWIgc2VjdGlvbi4gIFNldCB1cCBkZWZhdWx0IHN0dWIgZ3JvdXAgc2l6ZSBkZXBlbmRpbmcKCW9uIGRldGVjdGVkIGJyYW5jaCByZWxvY3MuCgkoaHBwYV9idWlsZF9vbmVfc3R1Yik6IFVzZSBscnNlbCBhbmQgcnJzZWwgZm9yIGltcG9ydCBzdHVicyB0bwoJZW5zdXJlIGRpZmZlcmVudCBvZmZzZXRzIGZyb20gc3ltX3ZhbHVlIGFyZW4ndCByb3VuZGVkIHRvCglkaWZmZXJlbnQgMmsgYmxvY2tzLiAgVXNlIGxyc2VsIGFuZCBycnNlbCBmb3Igb3RoZXIgc3R1YnMgdG9vIGZvcgoJY29uc2lzdGVuY3kgcmF0aGVyIHRoYW4gbmVjZXNzaXR5LgoJKGVsZjMyX2hwcGFfY2hlY2tfcmVsb2NzKTogSGFuZGxlIFJfUEFSSVNDX0RJUjE0Ri4KCShmaW5hbF9saW5rX3JlbG9jYXRlKTogTGlrZXdpc2UuCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9ob3d0b190YWJsZSk6IEFkZCBSX1BBUklTQ19ESVIxNEYgcmVsb2MuCgkoX2JmZF9lbGZfaHBwYV9nZW5fcmVsb2NfdHlwZSk6IEdlbmVyYXRlIHRoZW0uCgkoZWxmX2hwcGFfZmluYWxfbGlua19yZWxvY2F0ZSk6IEhhbmRsZSB0aGVtLgoJKGVsZl9ocHBhX3JlbG9jYXRlX2luc24pOiBMaWtld2lzZS4KCShfYmZkX2VsZl9ocHBhX2dlbl9yZWxvY190eXBlKTogQWRkIG1pc3NpbmcgZV9sZHNlbCBhbmQgZV9yZHNlbCBjYXNlcy4KCjIwMDAtMDktMjYgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogZWxmY29kZS5oIChlbGZfb2JqZWN0X3ApOiBQcmVzZXJ2ZSBhbmQgY2xlYXIgYWJmZCBzZWN0aW9uCglpbmZvcm1hdGlvbi4gIFJlc3RvcmUgYXQgZXJyb3IuCgoyMDAwLTA5LTI2ICBQYXVsIFNva29sb3Zza3kgIDxQYXVsLlNva29sb3Zza3lAdGVjaG5vbG9naXN0LmNvbT4KCgkqIHBlaWdlbi5jIChfYmZkX3BlaV9zd2FwX2FvdXRoZHJfaW4pOiBJZiBzb21lIERhdGFEaXJlY3RvcnkKCWlzIGVtcHR5LCBtYWtlIHN1cmUgdGhhdCBpdHMgcnZhIGFsc28gMC4gTlQgbG9hZGVyIGRpc2xpa2VzCgloYXZpbmcgb3RoZXJ3aXNlLgoKMjAwMC0wOS0yNiAgU3RldmUgRWxsY2V5IDxzamVAY3VwLmhwLmNvbT4KCgkqIHNvbS5jIChzb21fYmZkX2Rlcml2ZV9taXNjX3N5bWJvbF9pbmZvKTogTWFrZSB3ZWFrIHN5bWJvbHMKCWdsb2JhbCBieSBkZWZhdWx0LgoKMjAwMC0wOS0yMSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBGaXggd2VhayBzeW0gaGFuZGxpbmcgaW4KCWN1cnJlbnRseSB1bnVzZWQgUkVMQVRJVkVfRFlOQU1JQ19SRUxPQ1MgY29kZS4KCShocHBhX2Rpc2NhcmRfY29waWVzKTogTGlrZXdpc2UuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogU2l6ZSBgaW5wdXRfbGlzdCcgYXJyYXkgY29ycmVjdGx5LiAgQ29ycmVjdAoJY29tbWVudHMuICBEb24ndCBjaGVjayBub24tY29kZSBvdXRwdXQgc2VjdGlvbnMgZm9yIHN0dWIgZ3JvdXBpbmcuCgoyMDAwLTA5LTIwICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogc2VjdGlvbi5jIChiZmRfZ2V0X3VuaXF1ZV9zZWN0aW9uX25hbWUpOiBSZXR1cm4gTlVMTCBpZgoJYmZkX21hbGxvYyBmYWlscy4KCjIwMDAtMDktMTkgIE1pY2hhZWwgU29rb2xvdiAgPG1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRz4KCgkqIGVsZjMyLW02OGsuYyAoZWxmX2NwdTMyX3BsdDBfZW50cnkpOiBDaGFuZ2UgdGhlIFBMVCBlbnRyeSAwCglpbnN0cnVjdGlvbiBzZXF1ZW5jZSB0byBhY3R1YWxseSB3b3JrLgoJKGVsZl9tNjhrX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogQ2hhbmdlIHRoZSBwYXRjaC1pbiBvZmZzZXQKCWFjY29yZGluZ2x5LgoKMjAwMC0wOS0xOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFVzZQoJX2JmZF9maW5hbF9saW5rX3JlbG9jYXRlIHRvIGFwcGx5IHRoZSByZWxvY2F0aW9uIGFnYWluc3QgYSBzZWN0aW9uCglzeW1ib2wsIHdoZW4gZG9pbmcgcmVsb2NhdGFibGUgbGlua3MuCgoyMDAwLTA5LTE4ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3N0dWJfaGFzaF9lbnRyeSk6IFJlbmFtZSBpbnB1dF9zZWN0aW9uCgl0byBpZF9zZWMuCgkoc3R1Yl9oYXNoX25ld2Z1bmMpOiBIZXJlIHRvby4KCShocHBhX2FkZF9zdHViKTogQW5kIGhlcmUuCgkoZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGUpOiBSZW1vdmUgc3R1Yl9zZWN0aW9uX2NyZWF0ZWQsCglyZWxvY19zZWN0aW9uX2NyZWF0ZWQsIGZpcnN0X2luaXRfc2VjIGFuZCBmaXJzdF9maW5pX3NlYy4gIEFkZAoJc3R1Yl9ncm91cC4KCShlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBJbml0IHRvIHN1aXQuCgkoaHBwYV9nZXRfc3R1Yl9lbnRyeSk6IEFkZCBzdXBwb3J0IGZvciBncm91cGluZyBzdHViIHNlY3Rpb25zLgoJKGhwcGFfYWRkX3N0dWIpOiBMaWtld2lzZS4gIFJlbW92ZSBzZWNfY291bnQgcGFyYW0gYW5kIGluaXQvZmluaQoJc2VjdGlvbiBjb2RlLiAgSW5kZXggc3R1YiB2YXJzIGJ5IHNlY3Rpb24tPmlkLgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IExpa2V3aXNlLiAgUmVtb3ZlIGR1cGxpY2F0ZWQgZnVuY3Rpb24KCWV4aXQgcGF0aHMuICBaYXAgYWxsb2NhdGlvbiBvZiBhYm92ZSByZW1vdmVkIHZhcnMuICBSZWZpbmUKCWxpbmstb25jZSB0ZXN0LgoKCSogZWxmMzItaHBwYS5oIChlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBBZGQgb3V0cHV0X2JmZCBwYXJhbS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBMaWtld2lzZS4KCShocHBhX2dldF9zdHViX2VudHJ5KTogUGFzcyBpbiBwb2ludGVyIHRvIGVsZjMyX2hwcGFfbGlua19oYXNoX3RhYmxlCglyYXRoZXIgdGhhbiBwb2ludGVyIHRvIGJmZF9saW5rX2luZm8uCgkoaHBwYV9hZGRfc3R1Yik6IExpa2V3aXNlLgoJKGZpbmFsX2xpbmtfcmVsb2NhdGUpOiBMaWtld2lzZS4KCjIwMDAtMDktMTcgIERhdmlkIEh1Z2dpbnMtRGFpbmVzICA8ZGhkQGxpbnV4Y2FyZS5jb20+CgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IERvbid0IHRyeSB0byBidWlsZCBzdHVicyBmb3IgZGlzY2FyZGVkCglsaW5rLW9uY2Ugc2VjdGlvbnMuCgoyMDAwLTA5LTE2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNoLmMgKEVMRl9NQVhQQUdFU0laRSk6IERlZmluZSB0byAxMjgsIHRvIG1hdGNoCglsZC9lbXVscGFyYW1zL3NoZWxmLnNoLgoKMjAwMC0wOS0xMCAgTWljaGFlbCBTb2tvbG92ICA8bXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHPgoKCSogZWxmMzItbTY4ay5jIChiZmRfbTY4a19lbGYzMl9jcmVhdGVfZW1iZWRkZWRfcmVsb2NzKTogTmV3IGZ1bmN0aW9uLgoJKiBiZmQtaW4uaCAoYmZkX202OGtfZWxmMzJfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IEFkZCBkZWNsYXJhdGlvbi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMC0wOS0xNSAgS2VubmV0aCBCbG9jayAgPEtlbm5ldGguQmxvY2tAY29tcGFxLmNvbT4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbGF4X3dpdGhfbGl0dXNlKTogbGQgcGVyZm9ybXMKCUxJVFVTRSByZWxvY2F0aW9ucyBpbmNvcnJlY3RseSBpZiAtcmVsYXggaXMgc3BlY2lmaWVkIG9uIHRoZSBsZAoJY29tbWFuZCBsaW5lIGFuZCB0aGUgZGlzcGxhY2VtZW50IGZpZWxkIG9mIHRoZSBsb2FkIG9yIHN0b3JlCglpbnN0cnVjdGlvbiBpcyBub24temVyby4gKFBhdGNoIGJ5IHBhdWwud2luYWxza2lAY29tcGFxLmNvbSkKCjIwMDAtMDktMTUgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGYzMi1ocHBhLmMgKGhwcGFfYWRkX3N0dWIpOiBEb250IHNldCBmaXJzdF9pbml0X3NlYyBhbmQKCWZpcnN0X2Zpbmlfc2VjIGhlcmUuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogSW5zdGVhZCBjb3JyZWN0bHkgZmluZCB0aGUgZmlyc3QgLmluaXQKCWFuZCAuZmluaSBzZWN0aW9uIGhlcmUuCgoyMDAwLTA5LTE1ICBEYXZpZCBIdWdnaW5zLURhaW5lcyAgPGRoZEBsaW51eGNhcmUuY29tPgoKCSogZWxmMzItaHBwYS5jIChjbG9iYmVyX21pbGxpY29kZV9zeW1ib2xzKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQ2FsbCBpdC4KCjIwMDAtMDktMTQgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfbGlua19oYXNoX2VudHJ5KTogTWFrZSBwaWNfY2FsbAoJcGFja2VkLiAgQWRkIHBsYWJlbCwgcGx0X2FicyBwYWNrZWQgYm9vbGVhbnMuCgkoaHBwYV9saW5rX2hhc2hfbmV3ZnVuYyk6IEluaXQgbmV3IGZpZWxkcy4KCShQTEFCRUxfUExUX0VOVFJZX1NJWkUpOiBEZWZpbmUuCgkoaHBwYV9zdHViX25hbWUpOiBVc2Ugc2l6ZV90IGxlbiB2YXJzLgoJKGhwcGFfYWRkX3N0dWIpOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX2J1aWxkX3N0dWJzKTogTGlrZXdpc2UuCgkoaHBwYV9idWlsZF9vbmVfc3R1Yik6IEtpbGwgc29tZSBjb21waWxlciB3YXJuaW5ncy4KCShlbGYzMl9ocHBhX2NoZWNrX3JlbG9jcyk6IEFsd2F5cyBnZW5lcmF0ZSBhIHBsdCBlbnRyeSBmb3IgUExBQkVMcwoJaWYgZHluYW1pYyBsaW5raW5nLiAgTXVuZ2UgdGhlIGxvY2FsIHBsdCBvZmZzZXRzIGludG8KCWxvY2FsX2dvdF9yZWZjb3VudHMuICBTZXQgaC0+cGxhYmVsIGZvciBhbGwgZ2xvYmFsIFBMQUJFTHMuICBVc2UKCXNpemVfdCBsZW4gdmFycy4gIEFkZCBhc3NlcnQgZm9yIHBsYWJlbCBhZGRlbmQuCgkoZWxmMzJfaHBwYV9nY19zd2VlcF9ob29rKTogU3dlZXAgbG9jYWwgcGx0IGVudHJpZXMgdG9vLgoJKGVsZjMyX2hwcGFfaGlkZV9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfaGlkZV9zeW1ib2wpOiBEZWZpbmUuCgkoZWxmMzJfaHBwYV9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBEb24ndCB0aHJvdyBhd2F5IHBsdCBlbnRyaWVzCgl3aXRoIGgtPnBsYWJlbCBzZXQuICBEb24ndCBtYWtlIHBsdCBlbnRyaWVzIHRvIGhhdmUgZHluYW1pYyBzeW1zCgl3aGVuIHRoZXkgaGF2ZSBiZWVuIGZvcmNlZCBsb2NhbC4gIElmIHBsdCBlbnRyeSBpcyB1c2VkIGJ5IGEKCXBsYWJlbCwgbWFrZSBpdCBQTEFCRUxfUExUX0VOVFJZX1NJWkUuCgkoZWxmMzJfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBTZXQgcGx0X2FicyBmb3IgaW5pdCBmbnMuCglTZXQgdXAgLnBsdCBvZmZzZXRzIGZvciBsb2NhbCBzeW1zLgoJKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IEluaXRpYWxpc2UgcGx0IGVudHJpZXMgZm9yIGxvY2FsCglzeW1zLiAgTGVhdmUgd2VhayB1bmRlZmluZWQgcGxhYmVscyB6ZXJvLiAgTWFrZSBnbG9iYWwgcGxhYmVsCglyZWxvY3MgYWdhaW5zdCBmdW5jdGlvbiBzeW1ib2wsIGFuZCBsZWF2ZSB0aGUgYWRkZW5kIHplcm8uCglVc2UgKkFCUyogRElSMzIgcmVsb2NzIGluc3RlYWQgb2YgU0VHUkVMMzIgZm9yIGR5bmFtaWMgZ290IHJlbG9jcy4KCShlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFNldCB1cCBJUExUIHJlbG9jcyBmb3IKCW5vbi1keW5hbWljIHN5bXMuICBJbml0IGV4dHJhIHBsdCBmb3IgcGxhYmVscy4gIFVzZSAqQUJTKiBESVIzMgoJcmVsb2NzIGluc3RlYWQgb2YgU0VHUkVMMzIgZm9yIGR5bmFtaWMgZ290IHJlbG9jcy4KCShlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogUmVzZXJ2ZSBvbmUgbW9yZSAuZ290IGVudHJ5LgoJKGVsZl9iYWNrZW5kX2dvdF9oZWFkZXJfc2l6ZSk6IEFkanVzdC4KCShlbGYzMl9ocHBhX3NldF9ncCk6IENhbGN1bGF0ZSBhbiAiaWRlYWwiIExUUC4KCgkqIGVsZjMyLWhwcGEuYyAoTE9OR19CUkFOQ0hfVklBX1BMVCk6IERlZmluZS4KCShocHBhX3R5cGVfb2Zfc3R1Yik6IFVzZSBpdCBpbnN0ZWFkIG9mICNpZiAwCgkoaHBwYV9kaXNjYXJkX2NvcGllcyk6IFVzZSBpdCBoZXJlIHRvby4KCShlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFuZCBoZXJlLgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZSk6IFJlbW92ZSBgb2Zmc2V0JyBmaWVsZC4KCShlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBBbmQgaGVyZS4KCShocHBhX2J1aWxkX29uZV9zdHViKTogQW5kIGhlcmUuICBJbnN0ZWFkIGtlZXAgdHJhY2sgb2Ygc3R1YgoJb2Zmc2V0IHVzaW5nIF9yYXdfc2l6ZS4KCShlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX2J1aWxkX3N0dWJzKTogTGlrZXdpc2UuCgkoaHBwYV9zaXplX29uZV9zdHViKTogTGlrZXdpc2UuICBSZXNpemUgcmVsb2Mgc2VjdGlvbiB0b28uCgoJKiBlbGYzMi1ocHBhLmMgKGhwcGFfYWRkX3N0dWIpOiBDb3JyZWN0IGZpcnN0X2luaXRfc2VjIGFuZAoJZmlyc3RfZmluaV9zZWMgaGFuZGxpbmcuICBEb24ndCBzZWFyY2ggZm9yIHJlbG9jIHNlY3Rpb24gb3Igc2V0CglocGxpbmstPnJlbG9jX3NlY3Rpb25fY3JlYXRlZCBoZXJlLgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IEluc3RlYWQgc2VhcmNoIGZvciByZWxvYyBzZWN0aW9ucywgYW5kCglzZXQgcmVsb2Nfc2VjdGlvbl9jcmVhdGVkIGhlcmUuCgkoaHBwYV9oYW5kbGVfUElDX2NhbGxzKTogU2V0IEVMRl9MSU5LX0hBU0hfTkVFRFNfUExULgoJKGVsZjMyX2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTWFrZSBhIC5wbHQgZW50cnkgZm9yIERUX0lOSVQKCWFuZCBEVF9GSU5JLgoJKGVsZjMyX2hwcGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBTZXQgRFRfSU5JVCBhbmQgRFRfRklOSS4KCgkqIGVsZjMyLWhwcGEuYyAoaHBwYV9idWlsZF9vbmVfc3R1Yik6IFJlcGxhY2UgYGVsZl9oYXNoX3RhYmxlIChpbmZvKScKCXdpdGggYGhwbGluay0+cm9vdC4nLgoJKGVsZjMyX2hwcGFfY2hlY2tfcmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmMzJfaHBwYV9nY19zd2VlcF9ob29rKTogTGlrZXdpc2UuCgkoZWxmMzJfaHBwYV9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShocHBhX2hhbmRsZV9QSUNfY2FsbHMpOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKGVsZjMyX2hwcGFfc2V0X2dwKTogTGlrZXdpc2UuCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmMzJfaHBwYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBMaWtld2lzZS4KCShlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoJRnJvbSAgRGF2aWQgSHVnZ2lucy1EYWluZXMgIDxkaGRAbGludXhjYXJlLmNvbT4KCSogZWxmMzItaHBwYS5jIChocHBhX3R5cGVfb2Zfc3R1Yik6IEdlbmVyYXRlIGltcG9ydCBzdHVicyBmb3IKCWRlZmluZWQgd2VhayBzeW1ib2xzIGluIHNoYXJlZCBsaW5rcy4KCShmaW5hbF9saW5rX3JlbG9jYXRlKTogQ2FsbHMgdG8gZGVmaW5lZCB3ZWFrIHN5bWJvbHMgaW4gc2hhcmVkCglvYmplY3RzIG11c3QgZ28gdmlhIGltcG9ydCBzdHVicywgYXMgdGhlIHRhcmdldCBtaWdodCBub3QgYmUga25vd24KCWF0IGxpbmsgdGltZS4KCjIwMDAtMDktMTQgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX2hvd3RvX3RhYmxlKTogTW92ZWQgUl9TSF9HT1QzMiwgUl9TSF9QTFQzMiwKCVJfU0hfQ09QWSwgUl9TSF9HTE9CX0RBVCwgUl9TSF9KTVBfU0xPVCwgUl9TSF9SRUxBVElWRSwKCVJfU0hfR09UT0ZGLCBSX1NIX0dPVFBDKSB0byB0aGUgcmFuZ2UgZnJvbSAxNjAgdG8gMTY3LiAgUmVwbGFjZWQKCXRoZSBvcmlnaW5hbCBlbnRyaWVzIHdpdGggRU1QVFlfSE9XVE9zLCBhbmQgYWRkZWQgbmV3IG9uZXMgdG8gZmlsbAoJaW4gdGhlIGdhcC4KCShzaF9lbGZfaW5mb190b19ob3d0byk6IE1ha2Ugc3VyZSB0aGUgbmV3IGdhcCBpc24ndCB1c2VkLgoJKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAwLTA5LTEzICBBbmRlcnMgTm9ybGFuZGVyICA8YW5vcmxhbmRAYWNjLnVtdS5zZT4KCgkqIGNwdS1taXBzLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBBZGQgbWlwczo0SwoJKiBiZmQtaW4yLmggKGJmZF9tYWNoX21pcHM0Syk6IE5ldyBkZWZpbmUuCgkqIGFyY2h1cmVzLmM6IEFkZCBiZmRfbWFjaF9taXBzNEsgdG8gY29tbWVudC4KCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBSZXR1cm4KCUVfTUlQU19BUkNIXzIgZm9yIGJmZF9tYWNoX21pcHM0Sy4KCjIwMDAtMDktMTMgIE1hcmNvIEZyYW56ZW4gPG1hcmNvZkB0aHlyb24uY29tPgoKCSogc29tLmMgKHNvbV93cml0ZV9zeW1ib2xfc3RyaW5ncyk6IERvIG5vdCB1c2VkIGZpeGVkIGJ1ZmZlcnMsCgl1c2Ugc2l6ZV90IGFzIGEgY291bnRlci4KCShzb21fd3JpdGVfc3BhY2Vfc3RyaW5ncyk6IFNpbWlsYXJseS4KCjIwMDAtMDktMTIgIEphc29uIEVja2hhcmR0ICA8amxlQGN5Z251cy5jb20+CgoJKiBlbGYzMi1pODYwLmMgKGVsZjMyX2k4NjBfcmVsb2NhdGVfcGMyNik6IE5ldyBmdW5jdGlvbgoJYW5kIHByb3RvdHlwZS4KCShlbGYzMl9pODYwX3JlbG9jYXRlX3NlY3Rpb24pOiBJbnZva2UgbmV3IGZ1bmN0aW9uIGZyb20gaGVyZS4KCjIwMDAtMDktMTEgIE1pY2hhZWwgU29rb2xvdiAgPG1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRz4KCgkqIGVsZi5jIChfYmZkX2VsZl9tYWtlX3NlY3Rpb25fZnJvbV9zaGRyKTogTWFrZSBkZWJ1Z19zZWNfbmFtZXMKCXN0YXRpYy4KCjIwMDAtMDktMTAgIE1pY2hhZWwgU29rb2xvdiAgPG1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRz4KCgkqIGNvZmYtbTY4ay5jIChiZmRfbTY4a19jb2ZmX2NyZWF0ZV9lbWJlZGRlZF9yZWxvY3MpOiBFbWl0IDggTlVMcyBmb3IKCXRhcmdldCBzZWN0aW9uIG5hbWUgaW5zdGVhZCBvZiBkdW1waW5nIGNvcmUgd2hlbiB0aGUgdGFyZ2V0IHN5bWJvbCBpcwoJdW5kZWZpbmVkLgoKMjAwMC0wOS0wOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiByaXNjaXguYzogUmVtb3ZlIERFRlVOLgoKMjAwMC0wOS0wOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IERvIG5vdAoJaW5pdGlhbGlzZSBmbGFncyBpbiBvdXRwdXQgYmZkIGlmIHRoZSBpbnB1dCBiZmQgaXMgdGhlIGRlZmF1bHQKCWFyY2hpdGVjdHVyZSB3aXRoIHRoZSBkZWZhdWx0IGZsYWdzLgoKMjAwMC0wOS0wOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBhcmNoaXZlLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBjb2ZmLWFybS5jOiBMaWtld2lzZS4KCSogZG9jL2NoZXcuYzogTGlrZXdpc2UuCgoyMDAwLTA5LTA4ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogc2VjdGlvbi5jIChiZmRfZ2V0X3VuaXF1ZV9zZWN0aW9uX25hbWUpOiBQdXQgYSBkb3QgYmVmb3JlIHRoZQoJbnVtZXJpYyBzdWZmaXguCgoyMDAwLTA5LTA3ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIGRvYy9jaGV3LmM6IFJlbW92ZSBhbGwgdXNlcyBvZiBERUZVTiBhbmQgREVGVU5fVk9JRC4KCSogZWxmLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0wOS0wNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcuYmZkIChzaC0qLWxpbnV4Kik6IEFkZGVkLgoJKiBjb25maWd1cmUuaW4gKGJmZF9lbGYzMl9zaGxpbl92ZWMsIGJmZF9lbGYzMl9zaGJsaW5fdmVjKTogTmV3LgoJKiB0YXJnZXRzLmM6IERlY2xhcmUgdGhlbS4KCSogZWxmMzItc2gtbGluLmM6IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5hbTogQ29tcGlsZSBpdC4KCSogZWxmMzItc2guYzogRG9uJ3Qgb3ZlcnJpZGUgZGVmaW5lcyBmcm9tIGVsZjMyLXNoLWxpbi5jLgoJKiBjb25maWd1cmUsIE1ha2VmaWxlLmluOiBSZWJ1aWx0LgoKMjAwMC0wOS0wNiAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BjeWdudXMuY29tPgoKCSogeGNvZmZsaW5rLmMgKHhjb2ZmX2xpbmtfaW5wdXRfYmZkKTogSW5jbHVkZSB0aGUgLnRvY2JzcwoJcHNlZHVvLXNlY3Rpb24gd2hlbiBkZXRlcm1pbmluZyB3aGVyZSB0aGUgVE9DIGVuZHMuCgoJKiBjb2ZmLXJzNjAwMC5jIChfYmZkX3hjb2ZmX3N3YXBfYXV4X291dCk6IFVzZSBiZmRfaF9wdXRfMTYgdG8KCW91dHB1dCB4X3R2bmR4IGFzIGl0IGlzIG9ubHkgdHdvIGJ5dGVzIHdpZGUuCgoJKiBjb2ZmLXJzNjAwMC5jICh4Y29mZl9ob3d0b190YWJsZSk6IEEgbW9kaWZpYWJsZSBicmFuY2gtYWJzb2x1dGUKCXJlbG9jIGlzIDI2IG9yIDMyIGJpdHMgd2lkZS4KCgkqIGNvZmYtcnM2MDAwLmMgKF9iZmRfeGNvZmZfcnR5cGUyaG93dG8pOiBUaGUgYml0c2l6ZSBpcyBpcnJlbGV2YW50Cglmb3IgcmVsb2NzIHRoYXQgZG9uJ3QgY2hhbmdlIGFueXRoaW5nLiAgQWxzbyBsb29rIGF0IHRoZSBmdWxsCgk2IGJpdHMgb2YgYml0c2l6ZS4KCjIwMDAtMDktMDYgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBjb25maWcuYmZkIChhcm0qLSotdWNsaW51eCopOiBOZXcgdGFyZ2V0LgoKMjAwMC0wOS0wNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmU6IFJlYnVpbHQgd2l0aCBuZXcgbGlidG9vbC5tNC4KCjIwMDAtMDktMDYgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBzZWN0aW9uLmMgKGJmZF9nZXRfdW5pcXVlX3NlY3Rpb25fbmFtZSk6IEF2b2lkIGMrKyByZXNlcnZlZAoJd29yZCBmb3IgdmFyaWFibGUgbmFtZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMC0wOS0wNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCSogbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgkqIHBvL2JmZC5wb3Q6IFJlZ2VuZXJhdGUuCgkqIGRvYy9iZmRpbnQudGV4aTogUmVtb3ZlIENWUyBkYXRlIHN0cmluZyAtIGl0IGZvaWxzIGNvbXBhcmVzIHdpdGgKCWxvY2FsIHZlcnNpb25zLgoKMjAwMC0wOS0wNSAgU3RldmVuIEpvaG5zb24gIDxzYmpvaG5zb25Ab3plbWFpbC5jb20uYXU+CgoJKiBjcHUtcG93ZXJwYy5jICAoYXJjaF9pbmZvX3N0cnVjdCk6IEFkZGVkIE1QQzg2MCBGYW1pbHkgZW50cnkuCgoyMDAwLTA5LTA1ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCVNoYXJlZCBsaWJyYXJ5IGFuZCBQSUMgc3VwcG9ydC4KCSogZWxmMzItaHBwYS5jIChQTFRfRU5UUllfU0laRSk6IE5ldy4KCShHT1RfRU5UUllfU0laRSk6IE5ldy4KCShFTEZfRFlOQU1JQ19JTlRFUlBSRVRFUik6IE5ldy4KCShTVFVCX1NVRkZJWCk6IERlZmluZS4KCShMT05HX0JSQU5DSF9QSUNfSU5fU0hMSUIpOiBEZWZpbmUuCgkoUkVMQVRJVkVfRFlOQU1JQ19SRUxPQ1MpOiBEZWZpbmUuCgkoZW51bSBlbGYzMl9ocHBhX3N0dWJfdHlwZSk6IE5ldy4KCShzdHJ1Y3QgZWxmMzJfaHBwYV9zdHViX2hhc2hfZW50cnkpOiBSZW5hbWUgb2Zmc2V0IHRvCglzdHViX29mZnNldC4gIEFkZCBhIG51bWJlciBvZiBuZXcgZmllbGRzLgoJKHN0cnVjdCBlbGYzMl9ocHBhX2xpbmtfaGFzaF9lbnRyeSk6IE5ldy4KCShzdHJ1Y3QgZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGUpOiBBZGQgbnVtZXJvdXMgZmllbGRzLiAgUmVtb3ZlCglnbG9iYWxfdmFsdWUuCgkoZWxmMzJfaHBwYV9oYXNoX3RhYmxlKTogUmVuYW1lIHRvIGhwcGFfbGlua19oYXNoX3RhYmxlLgoJKGVsZjMyX2hwcGFfc3R1Yl9oYXNoX2xvb2t1cCk6IFJlbmFtZSB0byBocHBhX3N0dWJfaGFzaF9sb29rdXAuCgkoZWxmMzJfaHBwYV9zdHViX2hhc2hfbmV3ZnVuYyk6IFJlbmFtZSB0byBzdHViX2hhc2hfbmV3ZnVuYy4gIEluaXQKCW5ldyBmaWVsZHMuCgkoaHBwYV9saW5rX2hhc2hfbmV3ZnVuYyk6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUpOiBVc2UgYWJvdmUgZnVuY3Rpb24uIEluaXQgbmV3CglmaWVsZHMuCgkoZWxmMzJfaHBwYV9zdHViX25hbWUpOiBSZW5hbWUgdG8gaHBwYV9zdHViX25hbWUuICBQYXNzIGluIHJlbG9jCglpbnN0ZWFkIG9mIGFkZGVuZCwgYW5kIHJlbW92ZSBzeW1fbmFtZSBmcm9tIGFyZ3MuICBEb24ndCB1c2UKCXN5bWJvbCBuYW1lIGZvciBsb2NhbCBzeW1zLCBpbnN0ZWFkIHVzZSBzeW0gaW5kZXguCgkoZWxmMzJfaHBwYV9zaXplX29mX3N0dWIpOiBSZW5hbWUgdG8gaHBwYV90eXBlX29mX3N0dWIsIGFuZCByZXR1cm4KCXN0dWIgdHlwZSByYXRoZXIgdGhhbiBzaXplLiAgUGFzcyBpbiBoYXNoIGFuZCBoYW5kbGUgaW1wb3J0IHN0dWIKCWNhc2UuICBBbHNvIHBhc3MgaW4gcmVsb2MgaW5zdGVhZCBvZiBvZmZzZXQgc28gd2UgY2FuIGNhbGN1bGF0ZQoJUENSRUwyMkYgYW5kIFBDUkVMMTJGIGJyYW5jaGVzIHByb3Blcmx5LgoJKGVsZjMyX2hwcGFfYnVpbGRfb25lX3N0dWIpOiBSZW5hbWUgdG8gaHBwYV9idWlsZF9vbmVfc3R1Yi4gIEJ1aWxkCglpbXBvcnQgYW5kIGV4cG9ydCBzdHVicyB0b28uCgkoZWxmMzJfaHBwYV9zaXplX29uZV9zdHViKTogUmVuYW1lIHRvIGhwcGFfc2l6ZV9vbmVfc3R1Yi4gIEhhbmRsZQoJaW1wb3J0IGFuZCBleHBvcnQgc3R1YiBzaXppbmcuCgkoZWxmMzJfaHBwYV9jaGVja19yZWxvY3MpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaHBwYV9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkoaHBwYV9kaXNjYXJkX2NvcGllcyk6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBEZWZpbmUuCgkoZWxmMzJfaHBwYV9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRGVmaW5lLgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IFN0YXNoIHBhcmFtcyBpbiBsaW5rIGhhc2ggdGFibGUsIGFuZCBtb3ZlCglzb21lIGxvY2FsIHZhcnMgaW50byB0aGUgbGluayBoYXNoIHRhYmxlIHRvby4gIEZvciBzaGFyZWQgbGlua3MsCgl0cnVuZGxlIG92ZXIgZnVuY3Rpb24gc3ltcywgZ2VuZXJhdGluZyBleHBvcnQgc3R1YnMuICBIYW5kbGUKCVBDUkVMMjJGIGJyYW5jaGVzLiAgQnJlYWsgb3V0IHN0dWIgY3JlYXRpb24gY29kZSBmcm9tIGhlcmUuLgoJKGhwcGFfYWRkX3N0dWIpOiAuLiB0byBoZXJlLiAgTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2hwcGFfZmluYWxfbGluayk6IFJlbmFtZSB0byBlbGYzMl9ocHBhX3NldF9ncCwgYW5kIGRvbid0CgljYWxsIHRoZSBiZmQgbGlua2VyLiAgVXNlIGVsZl9ncCB0byByZWNvcmQgZ2xvYmFsIHBvaW50ZXIuCglDYWxjdWxhdGUgYSB2YWx1ZSBmcm9tIHNlY3Rpb25zIGlmICRnbG9iYWwkIGlzIG1pc3NpbmcuCgkoYmZkX2VsZjMyX2JmZF9maW5hbF9saW5rKTogRGVmaW5lIGFzIF9iZmRfZWxmMzJfZ2NfY29tbW9uX2ZpbmFsX2xpbmsuCgkoZWxmMzJfaHBwYV9nY19tYXJrX2hvb2spOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2JhY2tlbmRfZ2NfbWFya19ob29rKTogRGVmaW5lLgoJKGVsZjMyX2hwcGFfZ2Nfc3dlZXBfaG9vayk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9nY19zd2VlcF9ob29rKTogRGVmaW5lLgoJKGVsZjMyX2hwcGFfYmZkX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBSZW5hbWUgdG8gZmluYWxfbGlua19yZWxvY2F0ZS4KCUFkZCByZWwgdG8gYXJncywgYW5kIHJlbW92ZSBob3d0bywgaW5wdXRfYmZkLCBvZmZzZXQsIGFkZGVuZCwKCXN5bV9uYW1lIGFzIHdlIGNhbiByZWNhbGN1bGF0ZSB0aGVzZSBsb2NhbGx5LiAgSGFuZGxlIGNhbGxzIHRvCglkeW5hbWljIG9iamVjdHMsIGV4dHJhIFBJQyByZWxvY3MsIFBDUkVMMjJGIGJyYW5jaGVzLiAgQ2hhbmdlCgloYW5kbGluZyBvZiB1bmRlZmluZWQgd2VhayBzeW1zLiAgQ2hlY2sgdGhhdCBzdHVicyBhcmUgaW4gcmFuZ2UuCglPbmx5IGxvb2sgZm9yIGltcG9ydCBzdHVicyBvbiBQQ1JFTDE3RiBhbmQgUENSRUwyMkYgcmVsb2NzLiAgQWRkCgltZXNzYWdlIG9uIGhpdHRpbmcgYSBEUFJFTDIxTCByZWxvYyB0aGF0IG5lZWRzIGZpeGluZy4gIFN1YnRyYWN0CglvZmYgUEMgZm9yIFBDUkVMMTRGLiAgQnJlYWsgb3V0IGNvZGUgdGhhdCBkb2VzIGEgc3R1YiBsb29rdXAgZnJvbQoJaGVyZS4uCgkoaHBwYV9nZXRfc3R1Yl9lbnRyeSk6IC4udG8gaGVyZS4gIE5ldyBmdW5jdGlvbi4KCShlbGYzMl9ocHBhX3JlbG9jYXRlX2luc24pOiBNZXJnZSBpbnRvIGZpbmFsX2xpbmtfcmVsb2NhdGUuCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogSGFuZGxlIGdvdCBhbmQgcGx0IHJlbG9jcywgZHluYW1pYwoJcmVsb2NzLCBldGMuIGV0Yy4KCShlbGYzMl9ocHBhX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpIERlZmluZS4KCShocHBhX2hhbmRsZV9QSUNfY2FsbHMpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaHBwYV9idWlsZF9zdHVicyk6IENhbGwgaXQuICBQYXNzIGxpbmtfaW5mbyB0bwoJaHBwYV9idWlsZF9vbmVfc3R1Yi4KCShlbGYzMl9ocHBhX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTmV3IGZ1bmN0aW9uCgl0byBjcmVhdGUgLnBsdCBhbmQgLmdvdCB0aGVuIHNldCAucGx0IGZsYWdzIGNvcnJlY3RseS4KCShlbGZfYmFja2VuZF9jcmVhdGVfZHluYW1pY19zZWN0aW9ucyk6IERlZmluZS4KCShlbGYzMl9ocHBhX29iamVjdF9wKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX29iamVjdF9wKTogRGVmaW5lLgoJKGVsZjMyX2hwcGFfZWxmX2dldF9zeW1ib2xfdHlwZSk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9nZXRfc3ltYm9sX3R5cGUpOiBEZWZpbmUuCgkoZWxmX2JhY2tlbmRfY2FuX2djX3NlY3Rpb25zKTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX3dhbnRfZ290X3BsdCk6IERlZmluZS4KCShlbGZfYmFja2VuZF9wbHRfYWxpZ25tZW50KTogU2V0IHRvIDIuCgkoZWxmX2JhY2tlbmRfcGx0X3JlYWRvbmx5KTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX3dhbnRfcGx0X3N5bSk6IERlZmluZS4KCShlbGZfYmFja2VuZF9nb3RfaGVhZGVyX3NpemUpOiBSZXNlcnZlIG9uZSBlbnRyeS4KCgkqIGVsZjMyLWhwcGEuaCAoZWxmMzJfaHBwYV9idWlsZF9zdHVicyk6IERvbid0IHBhc3Mgc3R1YiBiZmQuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogUGFzcyBpbiBtdWx0aV9zdWJzcGFjZS4KCShlbGYzMl9ocHBhX3NldF9ncCk6IERlY2xhcmUuCgoJKiBzZWN0aW9uLmMgKFNFQ19IQVNfR09UX1JFRik6IERlZmluZSBuZXcgZmxhZyBmb3IgYXNlY3Rpb24uCgkoYmZkX2dldF91bmlxdWVfc2VjdGlvbl9uYW1lKTogTmV3IGZ1bmN0aW9uLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfY2hlY2tfcmVsb2NzKTogSGFuZGxlIFJfUEFSSVNDX1BDUkVMMTJGLgoJKGVsZjY0X2hwcGFfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogUmVtb3ZlIHRoZSBGSVhNRSBhdCBiZmRfemFsbG9jCgljb21tZW50LgoKCUZyb20gIERhdmlkIEh1Z2dpbnMtRGFpbmVzICA8ZGhkQGxpbnV4Y2FyZS5jb20+CgkqIGVsZjY0LWhwcGEuYyAoZWxmNjRfaHBwYV9jaGVja19yZWxvY3MpOiBGaXggYSB3YXJuaW5nLgoJKGVsZjY0X2hwcGFfbWFya19leHBvcnRlZF9mdW5jdGlvbnMpOiBTZXQgZHluX2gtPnN0X3NobmR4LgoJKGVsZjY0X2hwcGFfbGlua19vdXRwdXRfc3ltYm9sX2hvb2spOiBUZXN0IGR5bl9oLT5zdF9zaG5keCBoYXMKCWJlZW4gdXBkYXRlZCBpbiBmaW5pc2hfZHluYW1pY19zeW1ib2wgYmVmb3JlIG1vZGlmeWluZyBmdW5jdGlvbgoJc3ltYm9sLgoKCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfaG93dG9fdGFibGUpOiBSZXN0cnVjdHVyZSBpbnRvIGdyb3VwcyBvZgoJZWlnaHQgZW50cmllcy4gIFJlcGxhY2UgTlVMTCB3aXRoIGJmZF9lbGZfZ2VuZXJpY19yZWxvYy4gIEFkZAoJUl9QQVJJU0NfR05VX1ZURU5UUlksIFJfUEFSSVNDX0dOVV9WVElOSEVSSVQgYW5kIFJfUEFSSVNDX1BDUkVMMTJGLgoJKF9iZmRfZWxmX2hwcGFfZ2VuX3JlbG9jX3R5cGUpOiBIYW5kbGUgUl9QQVJJU0NfR05VX1ZUKi4gIEFkZCBzb21lCgljb21tZW50cy4gIEhhbmRsZSBmb3JtYXQgPT0gMTIgZm9yIFJfSFBQQV9QQ1JFTF9DQUxMLgoJKGVsZl9ocHBhX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBIYW5kbGUgUl9QQVJJU0NfUENSRUwxMkYuCgkoZWxmX2hwcGFfcmVsb2NhdGVfaW5zbik6IExpa2V3aXNlLiAgUmVmb3JtYXQgc29tZSBjb21tZW50cy4KCShlbGZfaHBwYV9maW5hbF93cml0ZV9wcm9jZXNzaW5nKTogRXhwb3NlIGl0IGZvciBBUkNIX1NJWkUgPT0gMzIuCgoJRnJvbSBEYXZpZCBIdWdnaW5zLURhaW5lcyAgPGRoZEBsaW51eGNhcmUuY29tPgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9pc19sb2NhbF9sYWJlbF9uYW1lKTogQWNjZXB0IHRoZSBTeXNWL0VMRgoJc3R5bGUgb2YgbG9jYWwgbGFiZWxzIGFzIHdlbGwuCgoyMDAwLTA5LTAzICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9yZWxvY2F0ZV9zZWN0aW9uKTogRG9uJ3QgdHJ5IHRvIHJlbG9jYXRlCglyZWZlcmVuY2VzIHRvIHVuZGVmaW5lZCBzeW1ib2xzIGluIGRlYnVnZ2luZyBzZWN0aW9ucy4KCjIwMDAtMDktMDIgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHJlbG9jLmMgKEJGRF9SRUxPQ19TSF9DT1BZLCBCRkRfUkVMT0NfU0hfR0xPQl9EQVQsCglCRkRfUkVMT0NfU0hfSk1QX1NMT1QsIEJGRF9SRUxPQ19TSF9SRUxBVElWRSwKCUJGRF9SRUxPQ19TSF9HT1RQQyk6IE1vdmUgdGhlbSBmcm9tIHRoZSBNSVBTIHNlY3Rpb24gdG8gdGhlIFNICglzZWN0aW9uLgoKMjAwMC0wOS0wMiAgSmFzb24gRWNraGFyZHQgIDxqbGVAY3lnbnVzLmNvbT4KCgkqIGVsZjMyLWk4NjAuYyAoYmZkX2VsZjMyX2JmZF9pc19sb2NhbF9sYWJlbF9uYW1lKTogRGVmaW5lIG1hY3JvLgoJKGVsZjMyX2k4NjBfaXNfbG9jYWxfbGFiZWxfbmFtZSk6IE5ldyBmdW5jdGlvbiBhbmQgcHJvdG90eXBlLgoKMjAwMC0wOS0wMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogSW5jcmVhc2UgdmVyc2lvbiBudW1iZXIgdG8gMi4xMC45MS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgkqIHBvL2JmZC5wb3Q6IFJlZ2VuZXJhdGUuCgoyMDAwLTA5LTAyICBEYW5pZWwgQmVybGluIDxkYmVybGluQHJlZGhhdC5jb20+CgoJKiBlbGYuYyAoX2JmZF9lbGZfbWFrZV9zZWN0aW9uX2Zyb21fc2hkcik6IEFkZAoJLmdudS5saW5rb2JjZS53aS4gdG8gdGhlIGxpc3Qgb2YgZGVidWcgc2VjdGlvbiBuYW1lcy4KCjIwMDAtMDktMDIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBkd2FyZjIuYyAoZmluZF9kZWJ1Z19pbmZvKTogTmV3IGZ1bmN0aW9uOiBMb2NhdGUgYSBzZWN0aW9uCgljb250YWluaW5nIGR3YXJmMiBkZWJ1ZyBpbmZvcm1hdGlvbi4KCShiZmRfZHdhcmYyX2ZpbmRfbmVhcmVzdF9saW5lKTogRmluZCBhbGwgc2VjdGlvbnMgY29udGFpbmluZwoJZGVidWcgaW5mb3JtYXRpb24gYW5kIGluY2x1ZGUgdGhlbSBpbiB0aGUgc3Rhc2guCgoyMDAwLTA5LTAxICBOaWliZSBZdXRha2EgIDxnbmlpYmVAbTE3bi5vcmc+LCBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4sIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmMzItc2guYyAoUl9TSF9HT1QzMiwgUl9TSF9QTFQzMiwgUl9TSF9DT1BZLCBSX1NIX0dMT0JfREFULAoJUl9TSF9KTVBfU0xPVCwgUl9TSF9SRUxBVElWRSwgUl9TSF9HT1RPRkYsIFJfU0hfR09UUEMpOiBOZXcuCgkoc2hfcmVsb2NfbWFwKTogQWRkIG5ldyByZWxvY3MuCgkoc2hfZWxmX2NoZWNrX3JlbG9jcywgc2hfZWxmX2xpbmtfaGFzaF9uZXdmdW5jLAoJc2hfZWxmX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUsIHNoX2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wsCglzaF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zLCBzaF9lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sLAoJc2hfZWxmX2ZpbmlzaGVfZHluYW1pY19zZWN0aW9ucywgc2hfZWxmX2Rpc2NhcmRfY29waWVzKTogTmV3CglmdW5jdGlvbnMuCgkoRUxGX0RZTkFNSUNfSU5URVJQUkVURVIsIFBMVF9FTlRSWV9TSVpFKTogRGVmaW5lLgoJKGVsZl9zaF9wbHQwX2VudHJ5X2JlLCBlbGZfc2hfcGx0MF9lbnRyeV9sZSwKCWVsZl9zaF9wbHRfZW50cnlfYmUsIGVsZl9zaF9wbHRfZW50cnlfbGUsCgllbGZfc2hfcGljX3BsdF9lbnRyeV9iZSwgZWxmX3NoX3BpY19wbHRfZW50cnlfbGUpOgoJTmV3IGFycmF5IGNvbnN0YW50cy4KCShlbGZfc2hfcGx0MF9lbnRyeSwgZWxmX3NoX3BsdF9lbnRyeSwgZWxmX3NoX3BpY19wbHRfZW50cnkpOgoJTmV3IHZhcmlhYmxlcy4KCShlbGZfc2hfc2l6ZW9mX3BsdCwgZWxmX3NoX3BsdF9wbHQwX29mZnNldCwKCWVsZl9zaF9wbHQwX2xpbmtlcl9vZmZzZXQsIGVsZl9zaF9wbHQwX2dvdGlkX29mZnNldCwKCWVsZl9zaF9wbHRfdGVtcF9vZmZzZXQsIGVsZl9zaF9wbHRfc3ltYm9sX29mZnNldCwKCWVsZl9zaF9wbHRfcmVsb2Nfb2Zmc2V0KTogRGVmaW5lLgoJKGVsZl9zaF9wY3JlbF9yZWxvY3NfY29waWVkLCBlbGZfc2hfbGlua19oYXNoX2VudHJ5LAoJZWxmX3NoX2xpbmtfaGFzaF90YWJsZSk6IE5ldyBzdHJ1Y3RzLgoJKHNoX2VsZl9saW5rX2hhc2hfdHJhdmVyc2UsIHNoX2VsZl9oYXNoX3RhYmxlKTogTmV3IG1hY3Jvcy4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbiwgc2hfZWxmX2NoZWNrX3JlbG9jcyk6IEhhbmRsZSBuZXcKCXJlbG9jYXRpb24gdHlwZXMuCgkoZWxmX2JhY2tlbmRfY3JlYXRlX2R5bmFtaWNfc2VjdGlvbnMsCgliZmRfZWxmMzJfYmZkX2xpbmtfaGFzaF90YWJsZV9jcmVhdGUsCgllbGZfYmFja2VuZF9hZGp1c3RfZHluYW1pY19zeW1ib2wsCgllbGZfYmFja2VuZF9zaXplX2R5bmFtaWNfc2VjdGlvbnMsCgllbGZfYmFja2VuZF9maW5pc2hfZHluYW1pY19zeW1ib2wsCgllbGZfYmFja2VuZF9maW5pc2hfZHluYW1pY19zZWN0aW9ucywgZWxmX2JhY2tlbmRfd2FudF9nb3RfcGx0LAoJZWxmX2JhY2tlbmRfcGx0X3JlYWRvbmx5LCBlbGZfYmFja2VuZF93YW50X3BsdF9zeW0sCgllbGZfYmFja2VuZF9nb3RfaGVhZGVyX3NpemUsIGVsZl9iYWNrZW5kX3BsdF9oZWFkZXJfc2l6ZSk6CglEZWZpbmUuCgkqIHJlbG9jLmMgKEJGRF9SRUxPQ19TSF9DT1BZLCBCRkRfUkVMT0NfU0hfR0xPQl9EQVQsCglCRkRfUkVMT0NfU0hfSk1QX1NMT1QsIEJGRF9SRUxPQ19TSF9SRUxBVElWRSwgQkZEX1JFTE9DX1NIX0dPVFBDKToKCU5ldyByZWxvY3MuCgkqIGJmZC1pbjIuaCwgbGliYmZkLmg6IFJlYnVpbHQuCgoyMDAwLTA5LTAxICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBSZXZlcnQgMjAwMC0wOC0yNwoJY2hhbmdlLgoKMjAwMC0wOC0zMSAgSiJvcm4gUmVubmVja2UgPGFteWxhYXJAY3lnbnVzLmNvLnVrPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX21lcmdlX3ByaXZhdGVfZGF0YSk6IElmIGliZmQncyBlbGYgaGVhZGVyIGZsYWdzCglub3QgaW5pdGlhbGl6ZWQsIHNldCB0aGVtIHRvIGluZGljYXRlIHRoZSBTSDEgaW5zdHJ1Y3Rpb24gc2V0LgoKMjAwMC0wOC0zMSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBhY2luY2x1ZGUubTQ6IEluY2x1ZGUgbGlidG9vbCBhbmQgZ2V0dGV4dCBtYWNyb3MgZnJvbSB0aGUKCXRvcCBsZXZlbC4KCSogYWNsb2NhbC5tNCwgY29uZmlndXJlOiBSZWJ1aWx0LgoKMjAwMC0wOC0yOSAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHNlYWRvZy5jeWdudXMuY29tPgoKCSogZWxmLmM6IEVsaW1pbmF0ZSByZWZlcmVuY2VzIHRvIF9fc3BhcmN2OSBtYWNybzsgcmVwbGFjZSB3aXRoCglhdXRvY29uZiB2YXJpYWJsZXMgSEFWRV9QU0lORk8zMl9UIGV0Yy4KCSogY29uZmlndXJlLmluOiBBdXRvLWNvbmZpZ3VyZSBIQVZFX1BTSU5GT18zMl9ULCBIQVZFX1BSUFNJTkZPMzJfVCwKCUhBVkVfUFNUQVRVUzMyX1QsIEhBVkVfUFJTVEFUVVMzMl9ULCBIQVZFX1BSU1RBVFVTMzJfVF9QUl9XSE8uCgkqIGNvbmZpZy5pbjogRGl0dG8uCgkqIGFjaW5jbHVkZS5tNCAoQkZEX0hBVkVfU1lTX1BST0NGU19UWVBFKSBkZWZpbmUgX1NZU0NBTEwzMiBzbyBpdCBjYW4KCWRldGVjdCB0aGUgYWJvdmUgdHlwZWRlZnMuICAoQkZEX0hBVkVfU1lTX1BST0NGU19UWVBFX01FTUJFUik6IERpdHRvLgoJKiBhY2xvY2FsLm00OiBEaXR0by4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMC0wOC0yNyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfY2hlY2tfcmVsb2NzKTogS2VlcCBpbmZvIG9uIHJlbG9jcyBjb3BpZWQKCWZvciBhbnkgc2hhcmVkIGxpbmssIG5vdCBqdXN0IHNoYXJlZCAtQnN5bWJvbGljLgoJKGVsZl9pMzg2X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IENhbGwgZWxmX2kzODZfZGlzY2FyZF9jb3BpZXMgb24KCWFueSBzaGFyZWQgbGluaywgYW5kIHBhc3MgbGluayBpbmZvIHRvIGl0LgoJKGVsZl9pMzg2X3NpemVfZHluYW1pY19zZWN0aW9ucyk6IFVwZGF0ZSBjb21tZW50LgoJKGVsZl9pMzg2X2Rpc2NhcmRfY29waWVzKTogTW9kaWZ5IHRvIGRpc2NhcmQgcmVsb2NzIGZvciBzeW1ib2xzCgl0aGF0IGhhdmUgYmVlbiBmb3JjZWQgbG9jYWwuCgkoZWxmX2kzODZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogRG9uJ3QgY29weSByZWxvY3MgZm9yIHN5bWJvbHMKCXRoYXQgaGF2ZSBiZWVuIGZvcmNlZCBsb2NhbC4KCjIwMDAtMDgtMjQgIERlbmlzIENoZXJ0eWtvdiAgPGRlbmlzY0BvdmVydGEucnU+ICYgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogQWxsb3cgY29tbW9uCglzeW1ib2xzIHRvIGhhdmUgYW4gYWxpZ25tZW50IG9mIDEgaWYgZXhwbGljaXRseSByZXF1ZXN0ZWQsIGFuZAoJbm90IG92ZXJyaWRkZW4gYnkgb3RoZXIgZGVmaW5pdGlvbnMuCgoyMDAwLTA4LTIyICBEb3VnIEt3YW4gPGRrd2FuQHRyYW5zbWV0YS5jb20+CgoJKiBjb2ZmLXc2NS5jIChDUkVBVEVfTElUVExFX0NPRkZfVEFSR0VUKTogRml4IHR5cG8uCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2ZsYWdzKTogQWRkIGRldGVjdGlvbiBvZiB3NjUgYXJjaGl0ZWN0dXJlLgoKMjAwMC0wOC0yMiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmLWJmZC5oIChlbGZfbGlua19oYXNoX3RhYmxlKTogQWRkIHJ1bnBhdGguCgoJKiBiZmQtaW4uaCAoYmZkX2VsZl9nZXRfcnVucGF0aF9saXN0KTogTmV3IHByb3RvdHlwZS4KCSogYmZkLWluMi5oOiBSZWJ1aWx0LgoKCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF90YWJsZV9pbml0KTogSW5pdGlhbGl6ZSB0aGUKCSJydW5wYXRoIiBmaWVsZCB0byBOVUxMLgoJKGJmZF9lbGZfZ2V0X3J1bnBhdGhfbGlzdCk6IE5ldyBmdW5jdGlvbi4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogUmVjb3JkIERUX1JQQVRIIGFuZAoJRFRfUlVOUEFUSCBlbnRyaWVzLgoKMjAwMC0wOC0yMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbikgW1JfU0hfSU5EMTJXLAoJUl9TSF9ESVI4V1BOLCBSX1NIX0RJUjhXUFosIFJfU0hfRElSOFdQTF06IEhhbmRsZSB0aGVtCglleHBsaWNpdGx5LiAgSW1wcm92ZSB2YWxpZGF0aW9uIG9mIHJfdHlwZS4KCjIwMDAtMDgtMjEgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogWmVybyBvdXQgdGhlCglkeW5hbWljIGFsbG9jYXRlZCBjb250ZW50IHNwYWNlLiAgQWRkIGEgY29tbWVudCB0byByZW1pbmQgdXMgdGhhdAoJb25lIGRheSB0aGlzIG91Z2h0IHRvIGJlIGZpeGVkLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoKMjAwMC0wOC0yMSAgSmFzb24gRWNraGFyZHQgIDxqbGVAY3lnbnVzLmNvbT4KCgkqIGVsZjMyLWk4NjAuYyAoZWxmMzJfaTg2MF9yZWxvY2F0ZV9wYzE2KTogSnVzdCB3cml0ZSB0aGUgaW1tZWRpYXRlCglmaWVsZCB3aXRoIHRoZSBuZXdseSByZWxvY2F0ZWQgdmFsdWUgaW5zdGVhZCBvZiBhZGRpbmcgaXQgdG8gdGhlCglleGlzdGluZyBpbW1lZGlhdGUgZmllbGQuCgkoZWxmMzJfaTg2MF9yZWxvY2F0ZV9zcGxpdG4pOiBMaWtld2lzZS4KCShlbGYzMl9pODYwX3JlbG9jYXRlX2hpZ2hhZGopOiBMaWtld2lzZS4KCjIwMDAtMDgtMTYgIEphc29uIEVja2hhcmR0ICA8amxlQGN5Z251cy5jb20+CgoJKiBlbGYzMi1pODYwLmMgKGVsZjMyX2k4NjBfcmVsb2NhdGVfcGMxNik6IEltcGxlbWVudGVkIGZ1bmN0aW9uIChpdAoJd2FzIHByZXZpb3VzbHkganVzdCBhIHN0dWIpLgoKMjAwMC0wOC0xNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2NyZWF0ZV9nb3Rfc2VjdGlvbik6IERvbid0IGFib3J0KCkuCglGb3JtYXR0aW5nIGZpeGVzLgoJKF9iZmRfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgoyMDAwLTA4LTE2ICBBbmRyZXcgTWFjbGVvZCAgPGFtYWNsZW9kQGN5Z251cy5jb20+CgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogU2V0IHJlbG9jYXRpb24gYWRkcmVzcwoJZm9yIHVuZGVmaW5lZCBzeW1ib2xzIHRvIGJlIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlY3Rpb24uCgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9hZGp1c3RfZHluYW1pY19zeW1ib2wpOiBEb24ndCBhbGxvY2F0ZQoJZm91ciBleHRyYSBlbnRyaWVzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIC5yZWxhLnBsdCBzZWN0aW9uLgoJKHNwYXJjNjRfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IEFkanVzdCB0aGUgb2Zmc2V0IGluIHRoZSAucmVsYS5wbHQKCXNlY3Rpb24gdG8gYWNjb3VudCBmb3IgdGhlIGZvdXIgcmVzZXJ2ZWQgZW50cmllcyBpbiB0aGUgLnBsdCBzZWN0aW9uLgoKMjAwMC0wOC0xNSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BjeWdudXMuY29tPgoKCSogeGNvZmZsaW5rLmMgKF9iZmRfcHBjX3hjb2ZmX3JlbG9jYXRlX3NlY3Rpb24pOiBBZGQgb3JpIHIwLHIwLDAKCXRvIHRoZSBsaXN0IG9mIE5PUHMgd2UgcmVjb2duaXplIGFmdGVyIGEgYnJhbmNoLWFuZC1saW5rLgoJVXNlIHRoZSBvcmkgTk9QIHdoZW4gb25lIGlzIG5lZWRlZC4KCgkqIGNvZmYtcnM2MDAwLmMgKF9iZmRfeGNvZmZfc2x1cnBfYXJtYXApOiBGaW5pc2ggaW1wbGVtZW50YXRpb24KCWZvciBsYXJnZSBhcmNoaXZlcy4KCjIwMDAtMDgtMTQgIEppbSBXaWxzb24gIDx3aWxzb25AY3lnbnVzLmNvbT4KCgkqIGVsZjY0LWlhNjQuYyAoZWxmNjRfaWE2NF9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogSGFuZGxlCglFRl9JQV82NF9SRURVQ0VERlAsIEVGX0lBXzY0X0NPTlNfR1AsIGFuZCBFRl9JQV82NF9OT0ZVTkNERVNDX0NPTlNfR1AuCgkoZWxmNjRfaWE2NF9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogTGlrZXdpc2UuICBBbHNvIGhhbmRsZQoJRUZfSUFfNjRfQUJTT0xVVEUuCgoyMDAwLTA4LTExICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogTWFrZSBpdCBzdGF0aWMuCgoyMDAwLTA4LTEwICBKYXNvbiBFY2toYXJkdCAgPGpsZUBjeWdudXMuY29tPgoKCSogZWxmMzItaTg2MC5jIChlbGYzMl9pODYwX3JlbG9jYXRlX3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24uCgkoaTg2MF9maW5hbF9saW5rX3JlbG9jYXRlKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2k4NjBfcmVsb2NhdGVfc3BsaXRuKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2k4NjBfcmVsb2NhdGVfcGMxNik6IE5ldyBmdW5jdGlvbi4KCShlbGYzMl9pODYwX3JlbG9jYXRlX2hpZ2hhZGopOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaTg2MF9ob3d0byk6IE1pbm9yIGFkanVzdG1lbnRzIHRvIHNvbWUgcmVsb2NhdGlvbnMuCgkoZWxmX2luZm9fdG9faG93dG9fcmVsKTogRGVmaW5lLgoJKGVsZl9iYWNrZW5kX3JlbG9jYXRlX3NlY3Rpb24pOiBEZWZpbmUuCgoyMDAwLTA4LTEwICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogZWxmMzItYXJtLmg6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0wOC0xMCAgQmVybmQgU2NobWlkdCAgPGJlcm5kc0BjeWdudXMuY28udWs+CgoJKiBlbGYzMi1zaC5jIChzaF9lbGZfcmVsb2NfbG9vcCk6IE1ha2UgTEFTVF9TWU1CT0xfU0VDVElPTiBzdGF0aWMuCgoyMDAwLTA4LTA4ICBKYXNvbiBFY2toYXJkdCAgPGpsZUBjeWdudXMuY29tPgoKCSogZWxmMzItaTg2MC5jIChlbGYzMl9pODYwX2hvd3RvX3RhYmxlKTogVXBkYXRlZCBzb21lIGZpZWxkcy4KCjIwMDAtMDgtMDcgIEthenUgSGlyYXRhICA8a2F6dUBoeGkuY29tPgoKCSogaWVlZS5jIChpZWVlX3dyaXRlX2RlYnVnX3BhcnQpOiBSZXdyaXRlIGEgY29tbWVudC4KCSogZWxmNjQtaWE2NC5jOiBGaXggYSB0eXBvLgoKMjAwMC0wOC0wNSAgSmFzb24gRWNraGFyZHQgIDxqbGVAY3lnbnVzLmNvbT4KCgkqIGVsZjMyLWk4NjAuYyAoZWxmMzJfaTg2MF9ob3d0b190YWJsZSk6IE5ldyBzdHJ1Y3R1cmUuCgkobG9va3VwX2hvd3RvKTogTmV3IGZ1bmN0aW9uLgoJKGVsZjMyX2k4NjBfcmVsb2NfdHlwZV9sb29rdXApOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaTg2MF9pbmZvX3RvX2hvd3RvX3JlbGEpOiBOZXcgZnVuY3Rpb24uCgkoZWxmX2NvZGVfdG9faG93dG9faW5kZXgpOiBOZXcgc3RydWN0dXJlLgoJKGVsZl9pbmZvX3RvX2hvd3RvKTogUmUtZGVmaW5lIGFzIGVsZjMyX2k4NjBfaW5mb190b19ob3d0b19yZWxhLgoJKGJmZF9lbGYzMl9iZmRfcmVsb2NfdHlwZV9sb29rdXApOiBSZS1kZWZpbmUgYXMKCWVsZjMyX2k4NjBfcmVsb2NfdHlwZV9sb29rdXAuCgoyMDAwLTA4LTA0ICBSb2RuZXkgQnJvd24gIDxSb2RuZXlCcm93bkBwbXNjLmNvbT4KCgkqIHNvbS5jIChzdHJ1Y3QgZml4dXBfZm9ybWF0KTogQ29uc3RpZnkgYGZvcm1hdCcuCgkoc29tX2hwcGFfaG93dG9fdGFibGUpOiBVc2UgU09NX0hPV1RPIG1hY3JvLgoJKHRyeV9wcmV2X2ZpeHVwLCBocHBhX3NvbV9yZWxvYyk6IERlY29yYXRlIHVudXNlZCBwYXJhbWV0ZXIuCgkoc29tX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGNvbXBhcmVfc3Vic3BhY2VzKTogUmVtb3ZlIHVudXNlZCBgY291bnQxJywgYGNvdW50MicuCgkoc29tX2JlZ2luX3dyaXRpbmcpOiBSZW1vdmUgdW51c2VkIGB0b3RhbF9yZWxvY19zaXplJy4KCShzb21fYmZkX2Rlcml2ZV9taXNjX3N5bWJvbF9pbmZvKTogRGVjb3JhdGUgdW51c2VkIHBhcmFtZXRlci4KCShzb21fcHJpbnRfc3ltYm9sLCBzb21fYmZkX2lzX2xvY2FsX2xhYmVsX25hbWUpOiBMaWtld2lzZS4KCShzb21fc2V0X3JlbG9jX2luZm8pOiBDb25zdGlmeSBgY3AnLiBSZW1vdmUgdW51c2VkIGBhZGRlbmQnLgoJKHNvbV9maW5kX25lYXJlc3RfbGluZSk6IERlY29yYXRlIHVudXNlZCBwYXJhbWV0ZXIocykuCgkoc29tX3NpemVvZl9oZWFkZXJzLCBzb21fZ2V0X3N5bWJvbF9pbmZvLCBzb21fd3JpdGVfYXJtYXApOiBMaWtld2lzZS4KCShzb21fYmZkX2xpbmtfc3BsaXRfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMC0wOC0wMyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIHNlY3Rpb24uYzogUmVzdG9yZSBiYWNrZWQgb3V0IGNvZGUuCgkqIGVsZi5jOiBSZXN0b3JlIGJhY2tlZCBvdXQgY29kZS4KCShjb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBGaXggYnVnIHByZXZlbnRpbmcgc3RpcHBlZCBkeW5hbWljCgliaW5hcmllcyBmcm9tIHdvcmtpbmcuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCjIwMDAtMDgtMDMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIHNlY3Rpb24uYzogQmFjayBvdXQgdGhlIGNoYW5nZSBtYWRlIGJ5IE5pY2sgQ2xpZnRvbgoJPG5pY2tjQGN5Z251cy5jb20+IG9uIDIwMDAtMDctMzEuIEl0IGJyZWFrcyBzdHJpcHBpbmcgZHluYW1pYwoJYmluYXJpZXMuCgkqIGJmZC1pbjIuaDogTGlrZXdpc2UuCgkqIGVsZi5jOiBMaWtld2lzZS4KCjIwMDAtMDgtMDMgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbG9jX2xvb3ApOiBXYXJuaW5nIHJlbW92YWwuCgoyMDAwLTA3LTMxICBKYXNvbiBFY2toYXJkdCAgPGpsZUBjeWdudXMuY29tPgoKCSogcmVsb2MuYyAoQkZEX1JFTE9DXzg2MF8qKTogTmV3IGJmZCByZWxvY3MgZm9yIGk4NjAuCgkqIGJmZC1pbjIuaCwgbGliYmZkLmg6IFJlZ2VuZXJhdGUuCgoyMDAwLTA3LTMxICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogc2VjdGlvbi5jIChzdHJ1Y3Qgc2VjKTogQWRkIG5ldyBib29sZWFuIGZpZWxkICdzZWdtZW50X21hcmsnLgoJKFNURF9TRUNUSU9OKTogSW5pdGlhbGlzZSBuZXcgZmllbGQgdG8gemVyby4KCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIGVsZi5jIChjb3B5X3ByaXZhdGVfYmZkX2RhdGEpOiBSZW9yZ2FuaXNlIHNlY3Rpb24gdG8gc2VnbWVudAoJbWFwcGluZyB0byBjb3BlIHdpdGggbW92ZWQgc2VjdGlvbnMgcmVxdWlyaW5nIG5ldyBzZWdtZW50cywKCWFuZCBvdmVybGFwcGluZyBzZWdtZW50cy4KCShTRUdNRU5UX0VORCk6IE5ldyBtYWNybzogUmV0dXJuIHRoZSBlbmQgYWRkcmVzcyBvZiBhIHNlZ21lbnQuCgkoSVNfQ09OVEFJTkVEX0JZX1ZNQSk6IE5ldyBtYWNybzogRGV0ZXJtaW5lIGlmIGEgc2VnbWVudAoJY29udGFpbnMgYSBzZWN0aW9uIGJ5IGNvbXBhcmluZyB0aGVpciBWTUEgYWRkcmVzc2VzLgoJKElTX0NPTlRBSU5FRF9CWV9MTUEpOiBOZXcgbWFjcm86IERldGVybWluZSBpZiBhIHNlZ21lbnQKCWNvbnRhaW5zIGEgc2VjdGlvbiBieSBjb21wYXJpbmcgdGhlaXIgTE1BIGFkZHJlc3Nlcy4KCShJTkNMVURFX1NFQ1RJT05fSU5fU0VHTUVOVCk6IE5ldyBtYWNybzogRGV0ZXJtaW5lIGlmIGEKCXNlY3Rpb24gc2hvdWxkIGJlIGluY2x1ZGVkIGluIGEgc2VnbWVudC4KCShTRUdNRU5UX0FGVEVSX1NFR01FTlQpOiBOZXcgbWFjcm86IERldGVybWluZSBpZiBvbmUgc2VnbWVudAoJZm9sbG93cyBhbm90aGVyIGluIG1lbW9yeS4KCShTRUdNRU5UX09WRVJMQVBTX1NFR01FTlQpOiBOZXcgbWFjcm86IERldGVybWluZSBpZiB0d28KCXNlZ21lbnRzIG92ZXJsYXAuCgoyMDAwLTA3LTIyICBKYXNvbiBFY2toYXJkdCAgPGpsZUBjeWdudXMuY29tPgoKCSogY3B1LWk4NjAuYzogQWRkZWQgY29tbWVudHMuCgoJKiBlbGYzMi1pODYwLmMgKFRBUkdFVF9MSVRUTEVfU1lNKTogRGVmaW5lZCB0bwoJYmZkX2VsZjMyX2k4NjBfbGl0dGxlX3ZlYy4KCShUQVJHRVRfTElUVExFX05BTUUpOiBEZWZpbmVkIHRvICJlbGYzMi1pODYwLWxpdHRsZSIuCgkoRUxGX01BWFBBR0VTSVpFKTogQ2hhbmdlZCB0byA0MDk2LgoKCSogdGFyZ2V0cy5jIChiZmRfZWxmMzJfaTg2MF9saXR0bGVfdmVjKTogRGVjbGFyYXRpb24gb2YKCW5ldyB0YXJnZXQuCgkoYmZkX3RhcmdldF92ZWN0b3IpOiBBZGRlZCBiZmRfZWxmMzJfaTg2MF9saXR0bGVfdmVjLgoKCSogY29uZmlnLmJmZCAoaTg2MC1zdGFyZGVudC1zeXN2NCosIGk4NjAtc3RhcmRlbnQtZWxmKik6IEFkZGVkCgljb25maWcgZm9yIGxpdHRsZSBlbmRpYW4gZWxmMzIgaTg2MC4KCSh0YXJnX2RlZnZlYyk6IERlZmluZSBmb3IgdGhlIG5ldyBjb25maWcgYWJvdmUKCWFzICJiZmRfZWxmMzJfaTg2MF9saXR0bGVfdmVjIi4KCSh0YXJnX3NlbHZlY3MpOiBEZWZpbmUgZm9yIHRoZSBuZXcgY29uZmlnIGFib3ZlCglhcyAiYmZkX2VsZjMyX2k4NjBfdmVjIGJmZF9lbGYzMl9pODYwX2xpdHRsZV92ZWMiCgoJKiBjb25maWd1cmUuaW4gKGJmZF9lbGYzMl9pODYwX2xpdHRsZV92ZWMpOiBBZGRlZCByZWNvZ25pdGlvbgoJb2YgbmV3IHRhcmdldCB2ZWMuCgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoKMjAwMC0wNy0yNyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbWVyZ2Vfc3ltYm9sKTogVGFrZSBvbmUgbW9yZSBhcmd1bWVudCwKCWR0X25lZWRlZCwgdG8gaW5kaWNhdGUgaWYgdGhlIHN5bWJvbCBjb21lcyBmcm9tIGEgRFRfTkVFREVECgllbnRyeS4gRG9uJ3Qgb3ZlcmlkZSB0aGUgZXhpc3Rpbmcgd2VhayBkZWZpbml0aW9uIGlmIGR0X25lZWRlZAoJaXMgdHJ1ZS4KCShlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBQYXNzIGR0X25lZWRlZCB0bwoJZWxmX21lcmdlX3N5bWJvbCAoKS4KCjIwMDAtMDctMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX3NpemVfcmVsb2Nfc2VjdGlvbik6IFplcm9lcyB0aGUgc2VjdGlvbidzCglhbGxvY2F0ZWQgY29udGVudHMuCgoyMDAwLTA3LTI1ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaG9zdCAoKi0qLWFpeCopOiBBSVggaGFzICdsb25nIGxvbmcnIGFsd2F5cy4KCgkqIGNvZmYtcnM2MDAwLmMgKHhjb2ZmX3dyaXRlX29uZV9hcm1hcF9iaWcpOiBOZXcgcHJvY2VkdXJlLgoJKHhjb2ZmX3dyaXRlX2FybWFwX2JpZyk6IFdyaXRlIGJvdGggMzItYml0IGFuZCA2NC1iaXQgYXJtYXBzLgoJKHhjb2ZmX3dyaXRlX2FyY2hpdmVfY29udGVudHNfYmlnKTogRG9uJ3QgdXBkYXRlIHRoZSBvZmZzZXQKCW9mIHRoZSBzeW1ib2wgdGFibGUsIHhjb2ZmX3dyaXRlX2FybWFwIHdpbGwgZG8gaXQuCgoyMDAwLTA3LTIzICBVbGYgQ2FybHNzb24gIDx1bGZjQGVuZ3Iuc2dpLmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9jaGVja19yZWxvY3MpOiBVc2UgYWJmZCBpbnN0ZWFkCglvZiBkeW5vYmogZm9yIFNHSV9DT01QQVQgY2hlY2tzLgoKMjAwMC0wNy0yMSAgTWljaGFlbCBTb2tvbG92ICA8bXNva29sb3ZAaXZhbi5IYXJoYW4uT1JHPgoKCSogY29mZi1tNjhrLmMgKGJmZF9tNjhrX2NvZmZfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IE5ldyBmdW5jdGlvbi4KCSogYmZkLWluLmggKGJmZF9tNjhrX2NvZmZfY3JlYXRlX2VtYmVkZGVkX3JlbG9jcyk6IEFkZCBkZWNsYXJhdGlvbi4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMC0wNy0yMSAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9jaGVja19yZWxvY3MpOiBEZXRlY3Qgb3V0IG9mCglyYW5nZSBzeW1ib2wgaW5kaWNlcyBpbiByZWxvY3MgYW5kIGlzc3VlIGFuIGVycm9yIG1lc3NhZ2UuCgoyMDAwLTA3LTIwICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKE5BTUUoYmZkX2VsZixzaXplX2R5bmFtaWNfc2VjdGlvbnMpKTogRG9uJ3QgY2hlY2sKCWluZm8tPm5ld19kdGFncyB3aGVuIHNldHRpbmcgRFRfRkxBR1NfMS4gSXQgd2lsbCBvbmx5IGJlIHNldAoJYnkgdGhlIG5ldyBsaW5rZXIgb3B0aW9ucy4gSXQgc2hvdWxkbid0IGJyZWFrIGFueXRoaW5nLgoKMjAwMC0wNy0yMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IFNldCBEVF9GTEFHU18xCglvbmx5IGlmIGluZm8tPm5ld19kdGFncyBpcyB0cnVlLgoKMjAwMC0wNy0yMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IFNldAoJRFRfUlVOUEFUSCBhbmQgRFRfRkxBR1Mgb25seSBpZiBpbmZvLT5uZXdfZHRhZ3MgaXMgdHJ1ZS4KCjIwMDAtMDctMjAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogTWFrZWZpbGUuYW0gKEFMTF9NQUNISU5FUyk6IEFkZCBjcHUtY3Jpcy5sby4KCShBTExfTUFDSElORVNfQ0ZJTEVTKTogQWRkIGNwdS1jcmlzLmMuCgkoQkZEMzJfQkFDS0VORFMpOiBBZGQgYW91dC1jcmlzLmxvIGFuZCBlbGYzMi1jcmlzLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBhb3V0LWNyaXMuYyBhbmQgZWxmMzItY3Jpcy5jLgoJKGNwdS1jcmlzLmxvLCBhb3V0LWNyaXMubG8sIGVsZjMyLWNyaXMubG8pOiBOZXcgcnVsZXMuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoJKiBhY2xvY2FsLm00OiBSZWJ1aWxkLgoJKiBhb3V0eC5oIChOQU1FKGFvdXQsbWFjaGluZV90eXBlKSk6IEFkZCBjYXNlIGZvciBiZmRfYXJjaF9jcmlzLgoJKiBhcmNodXJlcy5jIChlbnVtIGJmZF9hcmNoaXRlY3R1cmUpOiBBZGQgYmZkX2FyY2hfY3Jpcy4KCShiZmRfY3Jpc19hcmNoKTogRGVjbGFyZS4KCShiZmRfYXJjaHVyZXNfbGlzdCk6IEFkZCBiZmRfY3Jpc19hcmNoLgoJKiBiZmQtaW4yLmg6IFJlYnVpbGQuCgkqIGNvbmZpZy5iZmQ6IChjcmlzLSotKik6IE5ldyB0YXJnZXQuCgkqIGNvbmZpZ3VyZS5pbiAoYmZkX2VsZjMyX2NyaXNfdmVjLCBjcmlzX2FvdXRfdmVjKTogTmV3IHZlY3RvcnMuCgkqIGNvbmZpZ3VyZTogUmVidWlsZC4KCSogZWxmLmMgKHByZXBfaGVhZGVycyk6IEFkZCBiZmRfYXJjaF9jcmlzLgoJKiBsaWJiZmQuaDogUmVidWlsZC4KCSogbGliYW91dC5oIChlbnVtIG1hY2hpbmVfdHlwZSk6IEFkZCBNX0NSSVMuCgkqIHJlbG9jLmM6IEFkZCBDUklTIHJlbG9jYXRpb25zLgoJKiB0YXJnZXRzLmMgKGJmZF9lbGYzMl9jcmlzX3ZlYywgY3Jpc19hb3V0X3ZlYyk6IERlY2xhcmUuCgkoYmZkX3RhcmdldF92ZWN0KTogQWRkIGJmZF9lbGYzMl9jcmlzX3ZlYyBhbmQgY3Jpc19hb3V0X3ZlYy4KCSogY3B1LWNyaXMuYywgYW91dC1jcmlzLmMsIGVsZjMyLWNyaXMuYzogTmV3IGZpbGVzLgoJKiBwby9QT1RGSUxFUy5pbiwgcG8vYmZkLnBvdDogUmVnZW5lcmF0ZS4KCjIwMDAtMDctMTkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogQWxzbyBzZXQKCURGX1RFWFRSRUwgaWYgRFRfVEVYVFJFTCBpcyBzZXQuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLW02OGsuYyAoZWxmX202OGtfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoJKiBlbGY2NC1pYTY0LmMgKGVsZjY0X2lhNjRfc2l6ZV9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IExpa2V3aXNlLgoKCSogZWxmbGluay5oIChOQU1FKGJmZF9lbGYsc2l6ZV9keW5hbWljX3NlY3Rpb25zKSk6IEFsc28KCXNldCBERl9TWU1CT0xJQyBmb3Igc3ltYm9saWMgbGluay4gQWxzbyBzZXQgRFRfUlVOUEFUSCBpZgoJRFRfUlBBVEggaXMgc2V0LgoJU2V0IHRoZSBEVF9GTEFHUyBhbmQgRFRfRkxBR1NfMSBlbnRyaWVzIGlmIG5lY2Vzc2FyeS4KCjIwMDAtMDctMTkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGJmZC1pbi5oIChiZmRfZWxmX3NldF9kdF9uZWVkZWRfc29uYW1lKTogTmV3LgoJKiBiZmQtaW4yLmg6IFJlYnVpbGQuCgoJKiBlbGYtYmZkLmggKGVsZl9vYmpfdGRhdGEpOiBBZGQgZHRfc29uYW1lLgoJKGVsZl9kdF9zb25hbWUpOiBOZXcuCgoJKiBlbGYuYyAoYmZkX2VsZl9zZXRfZHRfbmVlZGVkX3NvbmFtZSk6IE5ldy4KCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogQWRkIHRoZSBEVF9ORUVERUQKCWVudHJ5IGlmIHRoZSBzaGFyZWQgb2JqZWN0IGxvYWRlZCBieSBEVF9ORUVERUQgaXMgdXNlZCB0bwoJcmVzb2x2ZSB0aGUgcmVmZXJlbmNlIGluIGEgcmVndWxhciBvYmplY3QuCgoyMDAwLTA3LTE5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYuYyAoX2JmZF9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IEhhbmRsZSBEVF9DT05GSUcsCglEVF9ERVBBVURJVCBhbmQgRFRfQVVESVQgYXMgc3RyaW5ncy4KCjIwMDAtMDctMTkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBmb3JtYXQuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAwLTA3LTE5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYuYyAoX2JmZF9lbGZfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IEZpeCBEVF9DSEVDS1NVTS4KCjIwMDAtMDctMTkgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZi5jIChfYmZkX2VsZl9wcmludF9wcml2YXRlX2JmZF9kYXRhKTogSGFuZGxlIERUX0JJTkRfTk9XLAoJRFRfSU5JVF9BUlJBWSwgRFRfRklOSV9BUlJBWSwgRFRfSU5JVF9BUlJBWVNaLCBEVF9GSU5JX0FSUkFZU1osCglEVF9SVU5QQVRILCBEVF9GTEFHUywgRFRfUFJFSU5JVF9BUlJBWSwgRFRfUFJFSU5JVF9BUlJBWVNaLAoJRFRfUExUUEFEU1osIERUX01PVkVFTlQsIERUX01PVkVTWiwgRFRfRkVBVFVSRSwgRFRfUE9TRkxBR18xLAoJRFRfU1lNSU5TWiwgRFRfU1lNSU5FTlQsIERUX0NPTkZJRywgRFRfREVQQVVESVQsIERUX0FVRElULAoJRFRfUExUUEFELCBEVF9NT1ZFVEFCLCBEVF9TWU1JTkZPLCBEVF9SRUxBQ09VTlQsIERUX1JFTENPVU5ULAoJRFRfRkxBR1NfMSwgRFRfVVNFRCBhbmQgRFRfQ0hFQ0tTVU0uCgoyMDAwLTA3LTE4ICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QGIxLmN5Z251cy5jb20+CgoJKiBlbGYuYyAoYmZkX2VsZl9nZXRfc2lnbl9leHRlbmRfdm1hLCBiZmRfZWxmX2dldF9hcmNoX3NpemUpOiBNb3ZlCglyZW5hbWVkIGZ1bmN0aW9ucyBmcm9tIGhlcmUuLi4KCShhc3NpZ25fc2VjdGlvbl9udW1iZXJzKTogVXNlIHJlbmFtZWQgZnVuY3Rpb25zLgoJKHByZXBfaGVhZGVycyk6IFVzZSByZW5hbWVkIGZ1bmN0aW9ucy4KCgkqIGJmZC5jIChiZmRfZ2V0X3NpZ25fZXh0ZW5kX3ZtYSwgYmZkX2dldF9hcmNoX3NpemUpOiAuLi5UbyBoZXJlLgoJKiBiZmQtaW4uaCAoYmZkX2dldF9zaWduX2V4dGVuZF92bWEsIGJmZF9nZXRfYXJjaF9zaXplKTogVXBkYXRlLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAwLTA3LTE4ICBVbGYgQ2FybHNzb24gIDx1bGZjQGVuZ3Iuc2dpLmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBBZGQKCXBhcmVudGhlc2lzIGluIGlmIHN0YXRlbWVudC4KCjIwMDAtMDctMTcgIEtvdW5kaW55YSBLICA8a2tAZGRlb3JnLnNvZnQubmV0PgoKCUVuYWJsZSB0aGUgc3VwcG9ydCBmb3IgVHJhZGl0aW9uYWwgTUlQUy4KCSogZWxmMzItbWlwcy5jIChJUklYX0NPTVBBVCk6IFJlY29nbml6ZSBiZmRfZWxmMzJfdHJhZGJpZ21pcHNfdmVjYW5kCglyZXR1cm4gaWN0X25vbmUgYXBwcm9wcmlhdGVseSBmb3IgdHJhZGl0aW9uYWwgbWlwcyB0YXJnZXRzLgoJKFNUVUJfTFcpOiBDaGFuZ2UgMHg4Zjk5ODAwMCB0byAweDhmOTk4MDEwIGZvciB0cmFkaXRpb25hbCBtaXBzLgoJKFNUVUJfTU9WRSk6IENvbmRpdGlvbmFsaXplIGZvciB0cmFkaXRvbmFsIG1pcHMuCgkoU1RVQl9MSTE2KTogTGlrZXdpc2UuCgkoX2JmZF9taXBzX2VsZl9tb2RpZnlfc2VnbWVudF9tYXApOiBDb25kaXRpb25hbGl6ZSB0byBhdm9pZCBtYWtpbmcKCXJvb20gZm9yIFJUUFJPQyBoZWFkZXIuCgkoX2JmZF9taXBzX2VsZl9tb2RpZnlfc2VnbWVudF9tYXApOiBGb3IgYSBub3JtYWwgbWlwcyBleGVjdXRhYmxlIHNldAoJdGhlIHBlcm1pc3Npb24gZm9yIHRoZSBQVF9EWU5BTUlDIGFzIHJlYWQsIHdyaXRlIGFuZCBleGVjdXRlLgoJKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogQ2hlY2sgZm9yIHRoZSBzeW1ib2wgX0RZTkFNSUNfTElOS0lORwoJZm9yIHRyYWRpdG9uYWwgbWlwcy4KCShfYmZkX21pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogQWRkIHRoZSBzeW1ib2wKCV9EWU5BTUlDX0xJTktJTkcgZm9yIHRyYWRpdG9uYWwgbWlwcy4KCShfYmZkX21pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3NlY3Rpb25zKTogQWRkIHRoZSBzeW1ib2wgX19STERfTUFQCglpbiBjYXNlIG9mIHRyYWRpdG9uYWwgbWlwcy4KCShfYmZkX21pcHNfZWxmX2FkanVzdF9keW5hbWljX3N5bWJvbCk6IENyZWF0ZSBhIHN0dWIgb25seSBpZiBhIFBMVAoJZW50cnkgaXMgcmVxdWlyZWQuIEZvciBhIGZ1bmN0aW9uIGlmIFBMVCBpcyBub3QgcmVxdWlyZWQgdGhlbiBzZXQgdGhlCgljb3JyZXNwb25kaW5nIGhhc2ggdGFibGUgZW50cnkgdG8gMC4KCShfYmZkX21pcHNfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucyk6IEFkZCBEVF9ERUJVRyBlbnRyeSBmb3IKCXRyYWRpdG9uYWwgbWlwcy4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IGZvciBhIHVuZGVmaW5lZCBzeW1ib2wgaW4gYQoJc2hhcmVkIG9iamVjdCBzZXQgdGhlIHZhbHVlIHRvIDAuCgkoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBDaGVjayBmb3IgdGhlIHN5bWJvbAoJX0RZTkFNSUNfTElOS0lORyBmb3IgdHJhZGl0b25hbCBtaXBzLgoJKF9iZmRfbWlwc19lbGZfZmluaXNoX2R5bmFtaWNfc3ltYm9sKTogQ2hlY2sgZm9yIHRoZSBzeW1ib2wgX19STERfTUFQCglmb3IgdHJhZGl0b25hbCBtaXBzLgoKMjAwMC0wNy0xNSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogYW91dHguaCAodHJhbnNsYXRlX3RvX25hdGl2ZV9zeW1fZmxhZ3MpOiBIYW5kbGUgQlNGX0xPQ0FMLgoKMjAwMC0wNy0xMiAgQ2hhcmxlcyBXaWxzb24gIDxjd2lsc29uQGVjZS5nYXRlY2guZWR1PgoKCSogbGliYmZkLmMgKGJmZF9zZWVrKTogZml4ICdzZWVrIGJleW9uZCBFT0YnIGVycm9yIHdoZW4gd3JpdGluZwoJb3V0IGEgc3RydWN0dXJlIHRoYXQgaXMgQkZEX0lOX01FTU9SWS4KCjIwMDAtMDctMTEgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGY2NC1ocHBhLmMgKGdldF9keW5fbmFtZSk6IFBhc3MgaW4gc2VjdGlvbiBwb2ludGVyIGluc3RlYWQgb2YKCWJmZCBwb2ludGVyLiAgUHJpbnQgc2VjdGlvbiBpZCBpbnN0ZWFkIG9mIGJmZCBwb2ludGVyIGZvciBsb2NhbAoJc3ltcy4gIFByZWZpeCBhZGRlbmQgd2l0aCBgKycgZm9yIGdsb2JhbCBzeW1zIGFzIHdlbGwgYXMgbG9jYWwuCglDb3JyZWN0IGNhbGN1bGF0aW9uIG9mIG5hbWUgY29tcG9uZW50IGxlbmd0aHMuCgkoZWxmNjRfaHBwYV9jaGVja19yZWxvY3MpOiBVcGRhdGUgY2FsbCB0byBnZXRfZHluX25hbWUuCgoJRnJvbSBEYXZpZCBIdWdnaW5zLURhaW5lcyAgPGRoZEBsaW51eGNhcmUuY29tPgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogVXBkYXRlIGNhbGxzIGhlcmUgdG9vLgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfY2hlY2tfcmVsb2NzKTogRml4IHNvbWUgd2FybmluZ3MuCgkoZWxmNjRfaHBwYV9tb2RpZnlfc2VnbWVudF9tYXApOiBMaWtld2lzZS4KCjIwMDAtMDctMTEgIEFuZHJldyBDYWduZXkgIDxjYWduZXlAYjEuY3lnbnVzLmNvbT4KCgkqIGVsZi5jIChiZmRfZWxmX2dldF9zaWduX2V4dGVuZF92bWEpOiBSZXR1cm4gdGVuZGVuY3kgb2YgVk1BCglhZGRyZXNzZXMgdG8gYmUgIm5hdHVyYWxseSIgc2lnbiBleHRlbmRlZC4gIFJldHVybiAtMSBpZiB1bmtub3duLgoJKiBiZmQtaW4uaCAoYmZkX2VsZl9nZXRfc2lnbl9leHRlbmRfdm1hKTogQWRkIGRlY2xhcmF0aW9uLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgoyMDAwLTA3LTExICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QGIxLmN5Z251cy5jb20+CgoJKiBlY29mZnN3YXAuaCAoZWNvZmZfZ2V0X29mZiwgZWNvZmZfcHV0X29mZik6IEFkZCBFQ09GRl9TSUdORURfMzIKCWFuZCBFQ09GX1NJR05FRF82NCB0byBsaXN0IHdheXMgdG8gZXh0cmFjdCBhbiBvZmZzZXQuCgkoZWNvZmZfc3dhcF9mZHJfaW4sIGVjb2ZmX3N3YXBfZmRyX291dCwgZWNvZmZfc3dhcF9wZHJfaW4sCgllY29mZl9zd2FwX3Bkcl9vdXQsIGVjb2ZmX3N3YXBfZXh0X2luLCBlY29mZl9zd2FwX2V4dF9vdXQpOgoJVXBkYXRlLgoJKiBlbGY2NC1taXBzLmMgKEVDT0ZGX1NJR05FRF82NCk6IERlZmluZSBpbnN0ZWFkIG9mIEVDT0ZGXzY0LgoJKiBlbGYzMi1taXBzLmMgKEVDT0ZGX1NJR05FRF8zMik6IERlZmluZSBpbnN0ZWFkIG9mIEVDT0ZGXzMyLgoKMjAwMC0wNy0xMSAgQW5kcmV3IENhZ25leSAgPGNhZ25leUBiMS5jeWdudXMuY29tPgoKCSogZWxmY29kZS5oIChlbGZfb2JqZWN0X3ApOiBVc2UgYmZkX3NldF9zdGFydF9hZGRyZXNzIGFuZCBub3QKCWJmZF9nZXRfc3RhcnRfYWRkcmVzcy4KCShlbGZfc3dhcF9laGRyX2luKTogU2lnbiBleHRlbmQgZV9lbnRyeSB3aGVuIGFwcGxpY2FibGUuCgkoZWxmX3N3YXBfZWhkcl9vdXQpOiBEaXR0by4KCjIwMDAtMDctMTAgIEFsZXhhbmRlciBBZ2FuaWNoZXYgIDxBQWdhbmljaGV2QGh5cGVyY29tLmNvbT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9kZWZhdWx0X3NjYW4pOiBBZGQgc2V0IG9mIGJmZF9tYWNoXyBjYXNlcyBmb3IKCWNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciBiaW51dGlscy4KCjIwMDAtMDctMTAgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBzZWN0aW9uLmMgKGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5KTogU3RhcnQgc2VjdGlvbl9pZCBhdCAweDEwLgoJKFNURF9TRUNUSU9OKTogQXZvaWQgbmVnYXRpdmUgaWRzLCBpbnN0ZWFkIHVzZSAwIHRvIDMuCgoJRnJvbSBSeWFuIEJyYWRldGljaCAgPHJicmFkZXRpY2hAdXN3ZXN0Lm5ldD4KCSogZHdhcmYxLmMgKHBhcnNlX2RpZSk6IEN1cmUgc2lnbmVkL3Vuc2lnbmVkIGNoYXIgd2FybmluZ3MuCgkocGFyc2VfbGluZV90YWJsZSk6IERpdHRvLgoJKF9iZmRfZHdhcmYxX2ZpbmRfbmVhcmVzdF9saW5lKTogRGl0dG8uCgkqIHN5bXMuYyAoY21waW5kZXhlbnRyeSk6IFJlbW92ZSBleHRyYSBgKicgZnJvbSBwYXJhbXMuCgoyMDAwLTA3LTA5ICBLb3VuZGlueWEgSyAgPGtrQGRkZW9yZy5zb2Z0Lm5ldD4KCgkqIGVsZjMyLW1pcHMuYyAoc29ydF9keW5hbWljX3JlbG9jcyk6IE5ldyBGdW5jdGlvbi4KCShfYmZkX21pcHNfZWxmX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogQ2FsbCBzb3J0X2R5bmFtaWNfcmVsb2NzCgl2aWEgcXNvcnQgdG8gc29ydCB0aGUgZHluYW1pYyByZWxvY2F0aW9ucyBpbiBpbmNyZWFzaW5nIHJfc3ltbmR4Cgl2YWx1ZS4KCjIwMDAtMDctMDkgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBlbGY2NC1ocHBhLmMgKGVsZjY0X2hwcGFfZHluX2hhc2hfdGFibGVfaW5pdCk6IEFkZAoJQVRUUklCVVRFX1VOVVNFRCB0byB1bnVzZWQgYXJncy4KCShnZXRfb3BkKTogTGlrZXdpc2UuCgkoZ2V0X3BsdCk6IExpa2V3aXNlLgoJKGdldF9kbHQpOiBMaWtld2lzZS4KCShnZXRfc3R1Yik6IExpa2V3aXNlLgoJKGVsZjY0X2hwcGFfYWRqdXN0X2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmNjRfaHBwYV9saW5rX291dHB1dF9zeW1ib2xfaG9vayk6IExpa2V3aXNlLgoJKGVsZjY0X2hwcGFfY2hlY2tfcmVsb2NzKTogRGVsZXRlIHVudXNlZCB2YXIuCgkoZWxmNjRfaHBwYV9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCShlbGY2NF9ocHBhX2ZpbmFsaXplX29wZCk6IExpa2V3aXNlLgoJKGVsZjY0X2hwcGFfZmluYWxpemVfZHlucmVsb2MpOiBMaWtld2lzZS4KCShlbGY2NF9ocHBhX21vZGlmeV9zZWdtZW50X21hcCk6IExpa2V3aXNlLgoJKGVsZjY0X2hwcGFfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBBZGQKCUFUVFJJQlVURV9VTlVTRUQgdG8gdW51c2VkIGFyZ3MuCgkoZWxmX2hwcGFfZmluYWxfbGlua19yZWxvY2F0ZSk6IExpa2V3aXNlLgoJKGVsZl9ocHBhX3JlY29yZF9zZWdtZW50X2FkZHJzKTogQWRkIHBhcmV0aGVzZXMuCgkoZWxmX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IENvbnN0aWZ5IGR5bl9uYW1lLgoKCUZyb20gIERhdmlkIEh1Z2dpbnMtRGFpbmVzICA8ZGhkQGxpbnV4Y2FyZS5jb20+CgkqIGNvbmZpZy5iZmQ6IEFkZCBocHBhKjY0Ki0qLWxpbnV4LWdudSA2NC1iaXQgdGFyZ2V0LCBhbmQKCXJlYXJyYW5nZSBjYXNlIHN0YXRlbWVudCBzbyB0aGF0IGl0IGdldHMgcHJlZmVycmVkIHRvIDMyLWJpdCBvbmVzLgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2JmZF9maW5hbF9saW5rX3JlbG9jYXRlKTogVXNlCglhc2VjdGlvbi0+aWQgaW5zdGVhZCBvZiBhZGRyZXNzIG9mIGFzZWN0aW9uIHN0cnVjdHVyZS4KCShlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBMaWtld2lzZS4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogVXNlIGp1c3Qgb25lIHN0dWIgc2VjdGlvbgoJZm9yIC5pbml0KiBhbmQgLmZpbmkqLgoKCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2JmZF9maW5hbF9saW5rX3JlbG9jYXRlKTogTWFzayBwb2ludGVycwoJYW5kIGFkZGVuZHMgdXNlZCBpbiBzdHViIG5hbWVzIHRvIDMyIGJpdHMuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogTGlrZXdpc2UuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9maW5hbF9saW5rX3JlbG9jYXRlKTogRG9uJ3Qgc3VtIGFkZGVuZAoJdHdpY2UgZm9yIFJfUEFSSVNDX0dQUkVMNjQuICBVc2UgYmZkX3B1dF8zMiBmb3IgUl9QQVJJU0NfUENSRUwzMiwKCW5vdCBiZmRfcHV0XzY0LiAgRml4IG1pbm9yIGNvbW1lbnQgdHlwbyBhbmQgZm9ybWF0dGluZy4KCglDaGFuZ2VzIHRvIGNyZWF0ZSBtdWx0aXBsZSBsaW5rZXIgc3R1YnMsIHBvc2l0aW9uZWQgaW1tZWRpYXRlbHkKCWJlZm9yZSB0aGUgc2VjdGlvbiB3aGVyZSB0aGV5IGFyZSByZXF1aXJlZC4KCSogZWxmMzItaHBwYS5jOiBEb24ndCBpbmNsdWRlIGhwcGFfc3R1YnMuaC4KCShlbGYzMl9ocHBhX3N0dWJfaGFzaF9lbnRyeSk6IEFkZCBhIHBvaW50ZXIgdG8gdGhlIHN0dWIgc2VjdGlvbi4KCShlbGYzMl9ocHBhX3N0dWJfaGFzaF90YWJsZSk6IERlbGV0ZS4KCShlbGYzMl9ocHBhX2xpbmtfaGFzaF9lbnRyeSk6IERlbGV0ZS4KCShlbGYzMl9ocHBhX2xpbmtfaGFzaF90YWJsZSk6IFVzZSBwbGFpbiBiZmRfaGFzaF90YWJsZSBmb3IKCXN0dWJfaGFzaF90YWJsZSwgYW5kIHN0b3JlIHRoZSBzdHJ1Y3QgaGVyZSByYXRoZXIgdGhhbiBhIHBvaW50ZXIuCglEZWxldGUgb3V0cHV0X3N5bWJvbF9jb3VudC4gIEFkZCBvZmZzZXQgYXJyYXkuICBDaGFuZ2UKCWdsb2JhbF92YWx1ZSB0byBhIGJmZF92bWEuCgkoZWxmMzJfaHBwYV9zdHViX2hhc2hfbG9va3VwKTogVXNlIHRhYmxlIGluc3RlYWQgb2YgdGFibGUtPnJvb3QuCgkoZWxmMzJfaHBwYV9zdHViX2hhc2hfdHJhdmVyc2UpOiBEZWxldGUuCgkoZWxmMzJfaHBwYV9uYW1lX29mX3N0dWIpOiBEZWxldGUuCgkoZWxmMzJfaHBwYV9saW5rX2hhc2hfbG9va3VwKTogRGVsZXRlLgoJKGVsZjMyX2hwcGFfbGlua19oYXNoX3RyYXZlcnNlKTogRGVsZXRlLgoJKGVsZjMyX2hwcGFfc3R1Yl9oYXNoX3RhYmxlX2luaXQpOiBEZWxldGUuCgkoZWxmMzJfaHBwYV9zaXplX29mX3N0dWIpOiBQYXNzIGlucHV0IHNlY3Rpb24gYW5kIG9mZnNldCByYXRoZXIKCXRoYW4gbG9jYXRpb24gYW5kIGNhbGN1bGF0ZSBsb2NhdGlvbiBoZXJlLiAgRG9uJ3QgcGFzcyBuYW1lIGFzIGFsbAoJc3R1YnMgYXJlIG5vdyB0aGUgc2FtZSBzaXplLgoJKGVsZjMyX2hwcGFfc3R1Yl9oYXNoX25ld2Z1bmMpOiBJbml0IG5ldyBmaWVsZHMuCgkoZWxmMzJfaHBwYV9saW5rX2hhc2hfdGFibGVfY3JlYXRlKTogTGlrZXdpc2UsIGFuZCBzdHViX2hhc2hfdGFibGUKCXRvby4KCShlbGYzMl9ocHBhX2JmZF9maW5hbF9saW5rX3JlbG9jYXRlKTogQ2FzdCBlbnVtcyB0byBpbnQgYmVmb3JlCgljb21wYXJpbmcgYWdhaW5zdCBpbnRzLiAgUmV3cml0ZSBzdHViIGhhbmRsaW5nIGNvZGUuCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogTWFrZSByX3R5cGUgYW5kIHJfc3ltbmR4IHVuc2lnbmVkLgoJQ2FzZSBlbnVtcyB0byBpbnQgYmVmb3JlIGNvbXBhcmluZyBhZ2FpbnN0IGludHMuICBSZW1vdmUKCWJmZF9yZWxvY19kYW5nZXJvdXMgY2FzZS4KCShlbGYzMl9ocHBhX2J1aWxkX29uZV9zdHViKTogUmV3cml0ZS4KCShlbGYzMl9ocHBhX3NpemVfb25lX3N0dWIpOiBOZXcgZnVuY3Rpb24uCgkoZWxmMzJfaHBwYV9idWlsZF9zdHVicyk6IFJld3JpdGUuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogUGFzcyBpbiBsaW5rZXIgY2FsbC1iYWNrIGZ1bmN0aW9ucy4KCVJld3JpdGUgc3R1Yi1oYW5kbGluZyBzcGVjaWZpYyBjb2RlLgoKCSogZWxmMzItaHBwYS5oIChlbGYzMl9ocHBhX3NpemVfc3R1YnMpOiBVcGRhdGUgcHJvdG90eXBlLgoKCSogZWxmNjQtaHBwYS5jIChlbGY2NF9ocHBhX2R5bl9oYXNoX2VudHJ5KTogRml4IGEgY29tbWVudCB0eXBvLgoKCSogaHBwYV9zdHVicy5oOiBEZWxldGUuCgkqIE1ha2VmaWxlLmFtIChTT1VSQ0VfSEZJTEVTKTogUmVtb3ZlIGhwcGFfc3R1YnMuaAoJKGVsZjMyLWhwcGEubG8pOiBSZW1vdmUgaHBwYV9zdHVicy5oIGZyb20gZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCgkqIGVsZi1ocHBhLmggKF9iZmRfZWxmX2hwcGFfZ2VuX3JlbG9jX3R5cGUpOiBIYW5kbGUgZV9ubHNlbCBhbmQKCWVfbmxyc2VsLgoKCSogbGliaHBwYS5oIChocHBhX2ZpZWxkX2FkanVzdCk6IENvcnJlY3QgZV9uc2VsIGNhc2UuCgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IE1lbnRpb24gdGhlIG9mZnNldAoJYW5kIHNlY3Rpb24gbmFtZSBmb3IgYmZkX3JlbG9jX25vdHN1cHBvcnRlZCBlcnJvciBtZXNzYWdlLgoJKGVsZjMyX2hwcGFfYmZkX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBQcmludCByZWFzb25zIGZvciByZXR1cm5pbmcKCWJmZF9yZWxvY19ub3RzdXBwb3J0ZWQuCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gb3V0cHV0X2JmZC4KCgkqIGVsZjMyLWhwcGEuYyAoZWxmMzJfaHBwYV9iZmRfZmluYWxfbGlua19yZWxvY2F0ZSk6IEhhbmRsZQoJdW5kZWZpbmVkIHdlYWsgc3ltYm9scyBmb3IgYWxsIHJlbG9jcy4KCShlbGYzMl9ocHBhX3NpemVfb2Zfc3R1Yik6IEFkanVzdCBjYWxjdWxhdGlvbiBieSA4IHNpbmNlIGJyYW5jaAoJb2Zmc2V0cyBhcmUgcmVsYXRpdmUgdG8gb25lIHBhc3QgdGhlIGRlbGF5IHNsb3QuCgkoZWxmMzJfaHBwYV9zaXplX3N0dWJzKTogQWNjb3VudCBmb3IgcmVsb2MgYWRkZW5kIHdoZW4gY2FsY3VsYXRpbmcKCWJyYW5jaCBkZXN0aW5hdGlvbi4gIFB1dCBhZGRlbmQgaW50byBzdHViIG5hbWUgdG9vLgoJKGVsZjMyX2hwcGFfYmZkX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBBY2NvdW50IGZvciByZWxvYyBhZGRlbmQgYW5kCglhZGp1c3QgYnkgOCB3aGVuIGRlY2lkaW5nIHdoZXRoZXIgYSBsaW5rZXIgc3R1YiBpcyBuZWVkZWQuICBQdXQKCWFkZGVuZCBpbnRvIHN0dWIgbmFtZSBhcyBmb3IgYWJvdmUuCgoJKiBlbGYzMi1ocHBhLmMgKGhwcGFfZWxmX3JlbG9jYXRlX2luc24pOiBDaGFuZ2Ugc2lnbmVkL3Vuc2lnbmVkIG9uCgl2YXJpb3VzIGFyZ3MgYW5kIHZhcnMuCgkoZWxmMzJfaHBwYV9iZmRfZmluYWxfbGlua19yZWxvY2F0ZSk6IEhlcmUgdG9vLgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IFJlbmFtZSBpbmRleCAtPiBpbmR4LiAgVXNlIGVfaW5keCBmb3IKCWlubmVyIGJsb2NrIHZhciB0byBhdm9pZCBzaGFkb3dpbmcuCgoJKiBlbGYzMi1ocHBhLmggKF9iZmRfZWxmMzJfaHBwYV9nZW5fcmVsb2NfdHlwZSk6ICBNYWtlIGBmaWVsZCcgYXJnCgl1bnNpZ25lZC4KCSogZWxmNjQtaHBwYS5oIChfYmZkX2VsZjY0X2hwcGFfZ2VuX3JlbG9jX3R5cGUpOiBEaXR0by4KCSogZWxmLWhwcGEuaCAoX2JmZF9lbGZfaHBwYV9nZW5fcmVsb2NfdHlwZSk6IERpdHRvLgoJKGVsZl9ocHBhX2Zha2Vfc2VjdGlvbnMpOiBSZW5hbWUgbG9jYWwgdmFyIHRvIGF2b2lkIHNoYWRvd2luZy4KCgkqIGxpYmhwcGEuaDogQ2hhbmdlIHByYWN0aWNhbGx5IGFsbCB1bnNpZ25lZCBpbnRzIHRvIHBsYWluIGludHMuCglSZW1vdmUgdGVzdHMgb24gZ2NjIHZlcnNpb24uICBJbnN0ZWFkIHVzZSBBVFRSSUJVVEVfVU5VU0VEIGZvcgoJcHJvdG90eXBlcy4KCglGcm9tIFJ5YW4gQnJhZGV0aWNoICA8cmJyYWRldGljaEB1c3dlc3QubmV0PgoJKiBsaWJocHBhLmggKGhwcGFfb3Bjb2RlX3R5cGUpOiBOZXcgZW51bSB0byByZXBsYWNlICNkZWZpbmUncy4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2JmZF9maW5hbF9saW5rX3JlbG9jYXRlKTogTW9kaWZ5IHRvCglzdWl0IGFib3ZlLgoJRnJvbSAgRGF2aWQgSHVnZ2lucy1EYWluZXMgIDxkaGRAbGludXhjYXJlLmNvbT4KCSogZWxmLWhwcGEuaCAoZWxmX2hwcGFfcmVsb2NhdGVfaW5zbik6IFVwZGF0ZSB0aGUgb3Bjb2RlIGNvbnN0YW50cwoJdG8gdGhlIG5ldyBPUF8qIG9uZXMuCgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IENvbnNvbGlkYXRlIGZyZWVpbmcgb24KCWVycm9yIGV4aXQuICBCYWlsIG91dCBlYXJsaWVyIG9uIHBsYWJlbCByZWxvY3MgdGhhdCB3ZSBhcmVuJ3QKCWludGVyZXN0ZWQgaW4uICBEb24ndCB0ZWxsIGVsZjMyX2hwcGFfc3R1Yl9oYXNoX2xvb2t1cCB0byBjb3B5CglzdHJpbmcsIGFuZCB0aGVuIGRvbid0IGZyZWUgb3VyIGNvcHkuCgkoZWxmMzJfaHBwYV9idWlsZF9vbmVfc3R1Yik6IE1ha2UgaW5zbiB1bnNpZ25lZCBpbnQuCgoJKiBsaWJocHBhLmggKGJmZF9ocHBhX2luc24yZm10KTogMjIgYml0IGJyYW5jaGVzIGFyZSBvbmx5CglhdmFpbGFibGUgd2l0aCBCTCwgbm90IEJFIGFuZCBCTEUuCgoJKiBlbGYzMi1ocHBhLmMgKGhwcGFfZWxmX3JlbG9jYXRlX2luc24pOiBBZGQgc29tZSBtb3JlIGV4YW1wbGUKCWNvZGUgZm9yIGVsZiBhcmcgcmVsb2NzLgoJKGVsZjMyX2hwcGFfYmZkX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBSZXBsYWNlIGJvb2xlYW4gaXNfbG9jYWwKCWFyZ3VtZW50IHdpdGggZWxmX2xpbmtfaGFzaF9lbnRyeSBoLiAgSGFuZGxlIHVuZGVmaW5lZCB3ZWFrCglzeW1ib2xzLiAgTW92ZSAkZ2xvYmFsJCBsb29rdXAgZnJvbSBoZXJlLi4uCgkoZWxmMzJfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogLi4udG8gaGVyZS4gIFJldHVybiBjb3JyZWN0IGVycm9yCgltZXNzYWdlIGZvciBub24taGFuZGxlZCByZWxvY3MuCgkoZWxmMzJfaHBwYV9zaXplX29mX3N0dWIpOiBDb3JyZWN0bHkgdGVzdCBicmFuY2ggcmFuZ2UuICBQcmV2aW91cwoJd3JvbmcgdGVzdCB3YXMgLTB4M2ZmZmYgdG8gKzB4NDAwMDAuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9maW5hbF9saW5rX3JlbG9jYXRlKTogUl9QQVJJU0NfRElSMTdSLAoJUl9QQVJJU0NfRElSMTdGLCBhbmQgUl9QQVJJU0NfRElSMjFMIGFyZSBmb3IgYWJzb2x1dGUgYnJhbmNoZXM7CglIYW5kbGUgdGhlbSBhcyBzdWNoLgoJKGVsZl9ocHBhX3JlbG9jYXRlX2luc24pOiBGaXggYSB0eXBvLgoKCSogbGliaHBwYS5oIChHRVRfRklFTEQsIEdFVF9CSVQsIE1BU0ssIENBVEVOQVRFLCBFTEVWRU4pOiBEZWxldGUuCgkoYXNzZW1ibGVfMywgYXNzZW1ibGVfNiwgYXNzZW1ibGVfMTIsIGFzc2VtYmxlXzE2LCBhc3NlbWJsZV8xNmEsCglhc3NlbWJsZV8xNywgYXNzZW1ibGVfMjEpOiBEZWxldGUuCglTdXBwbHkgZGVmaW5lcyBmb3IgYWxsIDY0IHBvc3NpYmxlIG9wY29kZXMuCgkoYmZkX2hwcGFfaW5zbjJmbXQpOiBBZGQgYmZkIGFyZ3VtZW50LCBhbmQgdXNlIHRvIHNlbGVjdCB3aWRlIG1vZGUKCWZvcm1hdHMuICBIYW5kbGUgQ09NSUNMUi4KCShocHBhX3JlYnVpbGRfaW5zbik6IERlbGV0ZSBiZmQgYXJndW1lbnQuICBIYW5kbGUgZm9ybWF0cyAxMCwgLTExLAoJLTEwLCAtMTYsIDE2LCAyMi4KCgkqIGVsZjMyLWhwcGEuYyAoaHBwYV9lbGZfcmVsb2NhdGVfaW5zbik6IENvbXBsZXRlIHJld3JpdGUuCgkoZWxmMzJfaHBwYV9iZmRfZmluYWxfbGlua19yZWxvY2F0ZSk6IE1ham9yIHJld3JpdGUuCgkoZWxmMzJfaHBwYV9idWlsZF9vbmVfc3R1Yik6IE1vZGlmeSBocHBhX2VsZl9yZWxvY2F0ZV9pbnNuIGNhbGxzCgl0byBzdWl0LgoJKGVsZjMyX2hwcGFfc2l6ZV9zdHVicyk6IERvbid0IGZyZWUgc3R1Yl9uYW1lIHR3aWNlLiAgUmVhZCBpbiBhbGwKCXRoZSBsb2NhbCBzeW1zIC0gZGlkIHRoaXMgY29kZSBnZXQgZGVsZXRlZCBhY2NpZGVudGFsbHk/ICBJZ25vcmUKCXVuZGVmaW5lZCBhbmQgdW5kZWZ3ZWFrIHN5bXMuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9maW5hbF9saW5rKTogTW92ZSBocHBhX2luZm8gdG8gb3V0ZXJtb3N0CglibG9jay4gIFVzZSBpdCBpbnN0ZWFkIG9mIGVsZjY0X2hwcGFfaGFzaF90YWJsZSAoaW5mbykuCgkoZWxmX2hwcGFfZmluYWxfbGlua19yZWxvY2F0ZSk6IFVzZSBocHBhX2luZm8gaW5zdGVhZCBvZgoJZWxmNjRfaHBwYV9oYXNoX3RhYmxlIChpbmZvKS4KCgkqIGxpYmhwcGEuaCAocmVfYXNzZW1ibGVfMywgcmVfYXNzZW1ibGVfMTIsIHJlX2Fzc2VtYmxlXzE2LAoJcmVfYXNzZW1ibGVfMTcsIHJlX2Fzc2VtYmxlXzIxLCByZV9hc3NlbWJsZV8yMik6IERvbid0IG1hc2sgaW5zbi4KCShocHBhX3JlYnVpbGRfaW5zbik6IE1hc2sgaW1tZWRpYXRlIGJpdHMgaGVyZSBpbnN0ZWFkLgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9yZWxvY2F0ZV9pbnNuKTogTWFzayBoZXJlIHRvby4KCjIwMDAtMDctMDggIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBzZWN0aW9uLmMgKHN0cnVjdCBzZWMpOiBBZGQgaWQgZmllbGQuICBUaWR5IGNvbW1lbnQgZm9ybWF0dGluZy4KCShiZmRfbWFrZV9zZWN0aW9uX2FueXdheSk6IFNldCBpZC4KCShTVERfU0VDVElPTik6IEluaXQgaWQgdG9vLgoJQ2hhbmdlIENPTlNUIHRvIGNvbnN0IHRocm91Z2hvdXQuCgkqIGFyY2h1cmVzLmMgKGJmZF9hcmNoX2luZm8pOiBUaWR5IGNvbW1lbnQuCgkoYmZkX2FyY2hfbGlzdCk6IENoYW5nZSBhIENPTlNUIHRvIGNvbnN0LgoJKiBsaWJiZmQtaW4uaDogVGlkeSBjb21tZW50cyBhbmQgcmVwbGFjZSBDT05TVCB3aXRoIGNvbnN0LgoJKiBlbGYtYmZkLmg6IExpa2V3aXNlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJjb2ZmLmg6IFJlZ2VuZXJhdGUuCgoyMDAwLTA3LTA3ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGFyY2hpdmUuYyAoX2JmZF93cml0ZV9hcmNoaXZlX2NvbnRlbnRzKTogQWRkIGFuIGluZm9ybWF0aXZlCgljb21tZW50LgoKMjAwMC0wNy0wNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBzcmVjLmM6IEZpeCBmb3JtYXR0aW5nLgoKMjAwMC0wNi0wNSAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBNQUlOVEFJTkVSUzogbmV3CgoyMDAwLTA3LTA0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBEbyBub3QgaWdub3JlIHRoZSBzeW1ib2wKCXZhbHVlIG9mIFBDLXJlbGF0aXZlIG9mZnNldHMuCgoyMDAwLTA3LTAzICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBlbGY2NC1hbHBoYS5jIChhbHBoYV9lbGZfc2l6ZV9pbmZvKTogTmV3LgoJKGVsZl9iYWNrZW5kX3NpemVfaW5mbyk6IERlZmluZSB0byBhbHBoYV9lbGZfc2l6ZV9pbmZvLgoJKiBlbGZjb2RlLmggKGVsZl9zaXplX2luZm8pOiBDaGFuZ2UgaGFzaCBidWNrZXQgc2l6ZSB0byA0LgoKMjAwMC0wNy0wMyAgVWxmIENhcmxzc29uICA8dWxmY0BlbmdyLnNnaS5jb20+CgoJKiBlbGYzMi1taXBzLmM6IEluY2x1ZGUgZWxmMzItdGFyZ2V0LmggYWdhaW4gZm9yIHRoZSB0cmFkaXRpb25hbAoJTUlQUyB0YXJnZXRzLgoKMjAwMC0wNy0wMyAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBsaW51eC5vcmcucGw+CgoJKiBlbGYzMi1hdnIuYyAoYmZkX2VsZjMyX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6CglBZGQgQVRUUklCVVRFX1VOVVNFRCB0byB1bnVzZWQgYXJndW1lbnRzIHRvIGF2b2lkIHdhcm5pbmdzLgoJKGF2cl9pbmZvX3RvX2hvd3RvX3JlbGEpOiBMaWtld2lzZS4KCShlbGYzMl9hdnJfZ2NfbWFya19ob29rKTogTGlrZXdpc2UuCgkoZWxmMzJfYXZyX2djX3N3ZWVwX2hvb2spOiBMaWtld2lzZS4KCShlbGYzMl9hdnJfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMC0wNy0wMyAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0BiaWdmb290LmNvbT4KCgkqIGNvZmZsaW5rLmMgKF9iZmRfY29mZl93cml0ZV9nbG9iYWxfc3ltKTogVHVybiBhIHdlYWsgc3ltYm9sIGludG8KCWFuIGV4dGVybmFsIHN5bWJvbCBmb3IgYSBub24tc2hhcmVkLCBub24tcmVsb2NhdGFibGUgbGluay4KCjIwMDAtMDctMDMgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb2ZmbGluay5jIChJU19FWFRFUk5BTCk6IE5ldyBtYWNybzogUmV0dXJuIHRydWUgaWYgdGhlIHN5bWJvbAoJaXMgYW4gZXh0ZXJuYWwgc3ltYm9sLgoJKElTX1dFQUtfRVhURVJOQUwpOiBOZXcgbWFjcm86IFJldHVybiB0cnVlIGlmIHRoZSBzeW1ib2wgaXMgYSB3ZWFrCglleHRlcm5hbCBzeW1ib2wuCgoyMDAwLTA3LTAzICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIHJlbG9jMTYuYzogRml4IGZvcm1hdHRpbmcuCgoyMDAwLTA3LTAxICBLb3VuZGlueWEgSyAgPGtrQGRkZW9yZy5zb2Z0Lm5ldD4KCgkqIGNvbmZpZy5iZmQ6IENoYW5nZSB0YXJnX2RlZnZlYyBhbmQgdGFyZ19zZWx2ZWNzIGZvciBtaXBzKi0qLXN5c3Y0KgoJdG8gYWRkIGEgbmV3IHRhcmdldCBmb3IgdHJhZGl0aW9uYWwgbWlwcyBpLmUKCWJmZF9lbGYzMl90cmFkYmlnbWlwc192ZWMgYW5kIGJmZF9lbGYzMl90cmFkbGl0dGxlbWlwc192ZWMuCgkqIGNvbmZpZ3VyZS5pbjogTGlrZXdpc2UuCgkqIGNvbmZpZ3VyZTogUmVidWlsZC4KCSogdGFyZ2V0cy5jIChiZmRfZWxmMzJfdHJhZGJpZ21pcHNfdmVjKTogRGVjbGFyZSBhbmQgcHV0IGluCgliZmRfdGFyZ2V0X3ZlY3Rvci4KCShiZmRfZWxmMzJfdHJhZGxpdHRsZW1pcHNfdmVjKTogTGlrZXdpc2UuCgkqIGVsZnh4LXRhcmdldC5oOiBBZGQgbWFjcm8gSU5DTFVERURfVEFSR0VUX0ZJTEUgd2hpY2ggaXMgbW9yZSBhIHRlc3QKCXRvIHNlZSB0aGF0IGVsZk5OX2JlZCBkb2VzIG5vdCBnZXQgcmVkZWZpbmVkIGV2ZW4gaWYgdGhlIHRhcmdldCBmaWxlCglpcyBpbmNsdWRlZCB0d2ljZSBmb3IgYSBjaGlwLiBTZWUgZWxmMzItbWlwcy5jLgoKMjAwMC0wNy0wMSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIE1ha2VmaWxlLmFtIChERVApOiBGaXggMjAwMC0wNi0yMi4gIGdyZXAgYWZ0ZXIgcnVubmluZyBkZXAuc2VkCgkoQ0xFQU5GSUxFUyk6IEFkZCBERVBBLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDYtMzAgIERKIERlbG9yaWUgIDxkakBjeWdudXMuY29tPgoKCSogcGVpY29kZS5oIChjb2ZmX3N3YXBfZmlsZWhkcl9pbik6IGNhbid0IHVzZSBlX21hZ2ljIGJlY2F1c2Ugd2UKCWNhbid0IGFzc3VtZSB0aGUgUEUgaGVhZGVyIGlzIGF0IDB4ODAuCgoyMDAwLTA2LTI5ICBNYXJrIEVsYnJlY2h0ICA8c25vd2JhbGwzQGJpZ2Zvb3QuY29tPgoKCSogc3ltcy5jIChfYmZkX3N0YWJfc2VjdGlvbl9maW5kX25lYXJlc3RfbGluZSk6IFVzZSBJU19BQlNPTFVURV9QQVRILgoKMjAwMC0wNi0yOCAgTWFyayBFbGJyZWNodCAgPHNub3diYWxsM0BiaWdmb290LmNvbT4KCgkqIGdvMzJzdHViLmg6IFVwZGF0ZSBzdHViLgoKMjAwMC0wNi0yNiAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBsaW51eC5vcmcucGw+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9hdnI1KTogRGVmaW5lLgoJKiBiZmQtaW4yLmggKGJmZF9tYWNoX2F2cjUpOiBEZWZpbmUuCgkqIGNwdS1hdnIuYyAoYXJjaF9pbmZvX3N0cnVjdCk6IFJlbmFtZSBiZmRfbWFjaF9hdnI0IHRvCgliZmRfbWFjaF9hdnI1LCBhZGQgYmZkX21hY2hfYXZyNC4gIFVwZGF0ZSBjb21tZW50cy4KCShjb21wYXRpYmxlKTogVXBkYXRlIGNvbW1lbnQuICBBZGQgbWlzc2luZyB0ZXN0LgoJKiBlbGYzMi1hdnIuYyAoYXZyX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBTdXBwb3J0IDhLIHdyYXAKCWZvciBhdnIyIGFuZCBhdnI0LiAgU2ltcGxpZnkgOEsgd3JhcCBjb2RlLgoJKGJmZF9lbGZfYXZyX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBSZWNvZ25pemUgYmZkX21hY2hfYXZyNS4KCShlbGYzMl9hdnJfb2JqZWN0X3ApOiBSZWNvZ25pemUgRV9BVlJfTUFDSF9BVlI1LgoKMjAwMC0wNi0yNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjb2ZmLWg4MzAwLmM6IEZpeCBmb3JtYXR0aW5nLgoJKiBjcHUtaDgzMDAuYzogTGlrZXdpc2UuCgoyMDAwLTA2LTI0ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fZmluYWxfbGlua19yZWxvY2F0ZSk6IFByaW50IGAobG9jYWwpJwoJZm9yIGxvY2FsIHN5bWJvbHMgd2hvc2UgbmFtZXMgYXJlIHVua25vd24uCgoyMDAwLTA2LTIyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogTWFrZWZpbGUuYW0gKERFUCk6IGdyZXAgZm9yIGxlYWRpbmcgYC8nIGluIERFUDEsIGFuZCBmYWlsIGlmIHdlCglmaW5kIG9uZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGRvYy9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDAtMDYtMjAgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOiBSZWJ1aWxkIGRlcGVuZGVuY3kuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoKMjAwMC0wNi0yMCAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BkczIucGcuZ2RhLnBsPgoKCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX2NvcHlfaW5kaXJlY3Rfc3ltYm9sKTogTWFwIHRvIHRoZSBuZXcgZnVuY3Rpb24uCgoyMDAwLTA2LTIwICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogYXJjaGl2ZS5jIChub3JtYWxpemUpOiBDb3JyZWN0IHBvaW50ZXIgY29tcGFyaXNvbiB3aGVuIGNoZWNraW5nCglmb3IgYmFja3NsYXNoZXMuCgkoYmZkX2JzZF90cnVuY2F0ZV9hcm5hbWUpOiBMaWtld2lzZS4KCShiZmRfZ251X3RydW5jYXRlX2FybmFtZSk6IExpa2V3aXNlLgoKMjAwMC0wNi0yMCAgVWxmIENhcmxzc29uICA8dWxmY0BlbmdyLnNnaS5jb20+CgoJKiBlbGYtYmZkLmggKHN0cnVjdCBlbGZfb2JqX3RkYXRhKTogRGVmaW5lIHBlciBCRkQgSXJpeCA1IHZpcnR1YWwKCXNlY3Rpb25zIGVsZl97dGV4dCxkYXRhfV97c2VjdGlvbixzeW1ib2x9LgoJKiBlbGYzMi1taXBzLmM6IG1pcHNfZWxmX3t0ZXh0LGRhdGF9X3tzZWN0aW9uLHN5bWJvbH17LF9wdHJ9OiBSZW1vdmUuCgkoX2JmZF9taXBzX2VsZl9oaWRlX3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCShlbGZfYmFja2VuZF9oaWRlX3N5bWJvbCk6IE1hcCB0byB0aGUgbmV3IGZ1bmN0aW9uLgoJKF9iZmRfbWlwc19lbGZfYWRkX3N5bWJvbF9ob29rKTogQ2hhbmdlIHRvIHVzZSBuZXcgcGVyIEJGRAoJZGVmaW5pdGlvbnMgb2YgbWlwc19lbGZfe3RleHQsZGF0YX1fe3NlY3Rpb24sc3ltYm9sfS4KCShtaXBzX2VsZl9sb2NhbF9yZWxvY2F0aW9uX3ApOiBUcnkgdG8gZmluZCB0aGUgZGlyZWN0IHN5bWJvbAoJYmFzZWQgb24gbmV3IGNoZWNrX2ZvcmNlZCBhcmd1bWVudC4KCShtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IFVzZSBuZXcgdmVyc2lvbiBvZgoJbWlwc19lbGZfbG9jYWxfcmVsb2NhdGlvbl9wLgoJKG1pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShfYmZkX21pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCShtaXBzX2VsZl9zb3J0X2hhc2hfdGFibGUpOiBPbmx5IGFzc2VydCB0aGF0IGhhdmUgZW5vdWdoIEdPVAoJc3BhY2UuCgkobWlwc19lbGZfZ290MTZfZW50cnkpOiBNYXRjaCBhbGwgMzIgYml0cyB0byB0aGUgZXhpc3RpbmcgR09UCgllbnRyeSBpZiB0aGUgcmVsb2NhdGlvbiBiYXNlZCBvbiB0aGUgbmV3IGV4dGVybmFsIGFyZ3VtZW50LgoJKG1pcHNfZWxmX2NyZWF0ZV9keW5hbWljX3JlbG9jYXRpb24pOiBBc3NlcnQgdGhhdCB3ZSBoYXZlIGEKCXNlY3Rpb24gY29udGVudHMgYWxsb2NhdGVkIHdoZXJlIHdlIGNhbiBzd2FwIG91dCB0aGUgZHluYW1pYwoJcmVsb2NhdGlvbnMuCgkobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBGaW5kIHRoZSByZWFsIGhhc2gtdGFibGUgZW50cnkKCWNvcnJlY3RseSBieSB1c2luZyBoLT5yb290LnJvb3QudHlwZS4gIE9ubHkgY3JlYXRlIGEgZHluYW1pYwoJcmVsb2NhdGlvbiBlbnRyeSBpZiB0aGUgc3ltYm9sIGlzIGRlZmluZWQgaW4gYSBzaGFyZWQgbGlicmFyeS4KCUNyZWF0ZSBhbiBleHRlcm5hbCBHT1QgZW50cnkgZm9yIHRoZSBHT1QxNiByZWxvY2F0aW9uIGlmIHRoZQoJc3ltYm9sIHdhcyBmb3JjZWQgbG9jYWwuCgkoX2JmZF9taXBzX2VsZl9maW5pc2hfZHluYW1pY19zeW1ib2wpOiBEb24ndCBhc3NlcnQgdGhlcmUgaXMgYQoJZHluYW1pYyBpbmRleCBpZiB0aGUgc3ltYm9sIHdhcyBmb3JjZWQgbG9jYWwuCgoyMDAwLTA2LTIwICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGRzMi5wZy5nZGEucGw+CgoJKiBlbGYzMi1taXBzLmM6IEZpeCB0eXBvcyBpbiBjb21tZW50cy4KCjIwMDAtMDYtMTkgIE1hcmsgS2V0dGVuaXMgIDxrZXR0ZW5pc0BnbnUub3JnPgoKCSogcnM2MDAwLWNvcmUuYzogV3JhcCBkZWZpbml0aW9uIG9mIGB1bmlvbiBWbUluZm8nIHdpdGhpbiAjaWZkZWYKCUNPUkVfVkVSU0lPTl8xLgoKMjAwMC0wNi0xOCAgU3RlcGhhbmUgQ2FycmV6ICA8c3RjYXJyZXpAd29ybGRuZXQuZnI+CgoJKiBNYWtlZmlsZS5pbiwgYmZkLWluMi5oLCBsaWJiZmQuaCwgY29uZmlndXJlOiBSZWJ1aWxkLgoJKiBNYWtlZmlsZS5hbSAoQUxMX01BQ0hJTkVTLCBBTExfTUFDSElORVNfQ0ZJTEVTLCBCRkQzMl9CQUNLRU5EUywKCUJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCA2OGhjMTIsIDY4aGMxMSBmaWxlcy4KCSogY29uZmlndXJlLmluIChiZmRfZWxmMzJfbTY4aGMxMl92ZWMpOiBSZWNvZ25pemUuCgkoYmZkX2VsZjMyX202OGhjMTFfdmVjKTogTGlrZXdpc2UuCgkqIGNvbmZpZy5iZmQgKHRhcmdfY3B1KTogUmVjb2duaXplIDY4aGMxMiBhbmQgNjhoYzExLgoJU3VwcG9ydHMgNjhoYzExICYgNjhoYzEyICBhdCB0aGUgc2FtZSB0aW1lLgoJKiB0YXJnZXRzLmMgKGJmZF9lbGYzMl9tNjhoYzEyX3ZlYyk6IERlY2xhcmUgYW5kIHB1dCBpbgoJYmZkX3RhcmdldF92ZWN0b3IuCgkoYmZkX2VsZjMyX202OGhjMTFfdmVjKTogTGlrZXdpc2UuCgkqIGVsZi5jIChwcmVwX2hlYWRlcnMpOiBSZWNvZ25pemUgYmZkX2FyY2hfbTY4aGMxMiBhbmQgNjhoYzExLgoJKiBhcmNodXJlcy5jIChiZmRfbTY4aGMxMl9hcmNoKTogRGVmaW5lIGFuZCByZWdpc3RlciBpbiBnbG9iYWwgbGlzdAoJKGJmZF9tNjhoYzExX2FyY2gpOiBMaWtld2lzZS4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX002OEhDMTFfSEk4LCBCRkRfUkVMT0NfTTY4SEMxMV9MTzgsCglCRkRfUkVMT0NfTTY4SEMxMV8zQik6IERlZmluZS4KCSogY3B1LW02OGhjMTIuYywgZWxmMzItbTY4aGMxMi5jOiBOZXcgZmlsZXMgZm9yIDY4aGMxMiBzdXBwb3J0LgoJKiBjcHUtbTY4aGMxMS5jLCBlbGYzMi1tNjhoYzExLmM6IE5ldyBmaWxlcyBmb3IgNjhoYzExIHN1cHBvcnQuCgoyMDAwLTA2LTE4ICBVbGYgQ2FybHNzb24gIDx1bGZjQGVuZ3Iuc2dpLmNvbT4KCgkqIGVsZl9iZmQuaCAoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgaW5mbyBhcmd1bWVudCB0bwoJZWxmX2JhY2tlbmRfaGlkZV9zeW1ib2wuCgkoX2JmZF9lbGZfbGlua19oYXNoX2hpZGVfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZi5jIChfYmZkX2VsZl9saW5rX2hhc2hfaGlkZV9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmNjQtaWE2NC5jIChlbGY2NF9pYTY0X2hhc2hfaGlkZV9zeW1ib2wpOiBMaWtld2lzZS4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBMaWtld2lzZS4KCShlbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBMaWtld2lzZS4KCjIwMDAtMDYtMTggIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNvZmYtaTM4Ni5jIChjb2ZmX2kzODZfcmVsb2MpOiBEb24ndCByZXR1cm4gaW4gY2FzZSBvZgoJb3V0cHV0X2JmZCA9PSAoYmZkICopIE5VTEwgaWYgQ09GRl9XSVRIX1BFIGlzIGRlZmluZWQuCglDb21wZW5zYXRlIFBFIHJlbG9jYXRpb25zIHdoZW4gbGlua2luZyB3aXRoIG5vbi1QRSBvYmplY3QKCWZpbGVzIHRvIGdlbmVyYXRlIGEgbm9uLVBFIGV4ZWN1dGFibGUuCgoyMDAwLTA2LTE3ICBVbGYgQ2FybHNzb24gIDx1bGZjQGVuZ3Iuc2dpLmNvbT4KCgkqIGVsZjMyLW1pcHMuYyAobWlwc19lbGZfY2FsY3VsYXRlX3JlbG9jYXRpb24pOiBFeHBsaWNpdGx5IHdyaXRlCglHT1QgZW50cmllcyBpZiB3ZSdyZSBkb2luZyBhIHN0YXRpYyBsaW5rIG9yIC1Cc3ltYm9saWMgbGluay4KCjIwMDAtMDYtMTUgIFVsZiBDYXJsc3NvbiAgPHVsZmNAZW5nci5zZ2kuY29tPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGp1c3RfcmVsb2NzKTogQ2hlY2sgZm9yIGFuZCBjYWxsIGJhY2tlbmQKCXNwZWNpZmlmaWMgc3dhcF9yZWxvY197aW4sb3V0fSBhbmQgc3dhcF9yZWxvY2Ffe2luLG91dH0gaWYKCWF2YWlsYWJsZS4KCShlbGZfbGlua19vdXRwdXRfcmVsb2NzKTogTGlrZXdpc2UuCgkoZWxmX3JlbG9jX2xpbmtfb3JkZXIpOiBMaWtld2lzZS4KCjIwMDAtMDYtMTYgIE5pY2hvbGFzIER1ZmZlayAgPG5zZEByZWRoYXQuY29tPgoKCSogYXJjaHVyZXMuYyAoZW51bSBiZmRfYXJjaGl0ZWN0dXJlKTogI2RlZmluZSBjb25zdGFudHMgZm9yCglQb3dlclBjIGFuZCBSUzYwMDAgbWFjaGluZSBudW1iZXJzLgoJKiBiZmQtaW4yLmg6IFJlZ2VuZXJhdGUuCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKTogI2lmZGVmIFhDT0ZGNjQsIHNldCBhcmNoCgl0byBiZmRfYXJjaF9wb3dlcnBjIGluc3RlYWQgb2YgYmZkX2FyY2hfcnM2MDAwLiAgUmVmZXIgdG8gUG93ZXJQYwoJYW5kIFJTNjAwMCBtYWNoaW5lIG51bWJlcnMgdXNpbmcgI2RlZmluZWQgY29uc3RhbnRzIGZyb20KCWFyY2h1cmVzLmMuCgkqIGNwdS1wb3dlcnBjLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBSZWZlciB0byBQb3dlclBjIGFuZCBSUzYwMDAKCW1hY2hpbmUgbnVtYmVycyB1c2luZyAjZGVmaW5lZCBjb25zdGFudHMgZnJvbSBhcmNodXJlcy5jLiAgQWRkCgllbnRyaWVzIGZvciBFQzYwM2UsIDYzMCwgQTM1LCBSUzY0SUksIFJTNjRJSUksIDc0MDAuICBTcGVjaWZ5Cgk2NC1iaXQgd29yZHMgaW4gNjIwIGVudHJ5LgoJKiBjcHUtcnM2MDAwLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBDcmVhdGUgd2l0aCBlbnRyaWVzIGZvciBSUzEsCglSU0MsIGFuZCBSUzIuCgkoYmZkX3JzNjAwMF9hcmNoKTogQ2hhbmdlIGRlZmF1bHQgbWFjaGluZSB0byAwIChiZmRfbWFjaF9yczZrKS4KCjIwMDAtMDYtMTYgIE5pY2hvbGFzIER1ZmZlayAgPG5zZEBjeWdudXMuY29tPgoKCSogY29mZmNvZGUuaCAoY29mZl9ta29iamVjdF9ob29rKTogU2V0IHhjb2ZmX3RkYXRhLnhjb2ZmNjQuCgkqIGxpYmNvZmYtaW4uaCAoc3RydWN0IHhjb2ZmX3RkYXRhKTogRGVmaW5lIHhjb2ZmNjQgZmllbGQuCgkqIGxpYmNvZmYuaCAoc3RydWN0IHhjb2ZmX3RkYXRhKTogRGVmaW5lIHhjb2ZmNjQgZmllbGQuCgoyMDAwLTA2LTE2ICBOaWNob2xhcyBEdWZmZWsgIDxuc2RAcmVkaGF0LmNvbT4KCgkqIGJmZC1pbi5oIChiZmRfZmFtaWx5X2NvZmYpOiBEZWZpbmUuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY29mZmdlbi5jIChjb2ZmX2NvdW50X2xpbmVudW1iZXJzLCBjb2ZmX3N5bWJvbF9mcm9tLAoJY29mZl9maW5kX25lYXJlc3RfbGluZSk6IENoZWNrIENPRkZuZXNzIHVzaW5nIGJmZF9mYW1pbHlfY29mZigpCglpbnN0ZWFkIG9mIGJmZF90YXJnZXRfY29mZl9mbGF2b3VyLgoJKiBjb2ZmbGluay5jIChfYmZkX2NvZmZfZmluYWxfbGluayk6IExpa2V3aXNlLgoJKiBjcHUtbnMzMmsuYyAoZG9fbnMzMmtfcmVsb2MpOiBEb24ndCBzdHJjbXAoKSB0YXJnZXQgbmFtZSB0bwoJZXhjbHVkZSBYQ09GRiBmaWxlcy4KCSogcmVsb2MuYyAoYmZkX3BlcmZvcm1fcmVsb2NhdGlvbiwgYmZkX2luc3RhbGxfcmVsb2NhdGlvbik6CglMaWtld2lzZS4KCSogdGFyZ2V0cy5jIChlbnVtIGJmZF9mbGF2b3VyKTogQWRkIGJmZF90YXJnZXRfeGNvZmZfZmxhdm91ci4KCSogeGNvZmYtdGFyZ2V0LmggKFRBUkdFVF9TWU0pOiBVc2UgYmZkX3RhcmdldF94Y29mZl9mbGF2b3VyLgoJKiB4Y29mZmxpbmsuYyAoWENPRkZfWFZFQ1ApOiBEZWxldGUuCgkoYmZkX3hjb2ZmX2xpbmtfcmVjb3JkX3NldCwgYmZkX3hjb2ZmX2ltcG9ydF9zeW1ib2wsCgliZmRfeGNvZmZfZXhwb3J0X3N5bWJvbCwgYmZkX3hjb2ZmX2xpbmtfY291bnRfcmVsb2MsCgliZmRfeGNvZmZfcmVjb3JkX2xpbmtfYXNzaWdubWVudCwKCWJmZF94Y29mZl9zaXplX2R5bmFtaWNfc2VjdGlvbnMpOiBSZXBsYWNlIFhDT0ZGX1hWRUNQKCkgd2l0aAoJY2hlY2sgZm9yIGJmZF90YXJnZXRfeGNvZmZfZmxhdm91ci4KCjIwMDAtMDYtMTYgIE5pY2hvbGFzIER1ZmZlayAgPG5zZEByZWRoYXQuY29tPgoKCSogcnM2MDAwLWNvcmUuYzogU3VwcG9ydCA2NC1iaXQgY29yZSBmaWxlcywgc3VwcG9ydCBwcmUtNC4zIGNvcmUKCWZpbGVzIG9uIEFJWCA0LjMuCgkocmVhZF9oZHIpOiBOZXcgZnVuY3Rpb24uCgkocnM2MDAwY29mZl9jb3JlX3ApOiBTdG9yZSBtc3RzYXZlIG9yIF9fY29udGV4dDY0IHN0cnVjdCBpbnN0ZWFkCglvZiB0cnlpbmcgdG8gZXh0cmFjdCBpbmRpdmlkdWFsIHJlZ2lzdGVycy4gIFNldCBhYmZkLT5hcmNoX2luZm8KCXRvIG1hdGNoIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCBjcmVhdGVkIHRoZSBjb3JlIGZpbGUuCgkocnM2MDAwY29mZl9nZXRfc2VjdGlvbl9jb250ZW50cyk6IERlbGV0ZS4KCSogeGNvZmYtdGFyZ2V0LmggKHJzNjAwMGNvZmZfZ2V0X3NlY3Rpb25fY29udGVudHMpOiBEZWxldGUuCgoyMDAwLTA2LTE0ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiB2bXMtbWlzYy5jIChfYmZkX3Ztc19uZXh0X3JlY29yZCk6IFJldHVybiAtMSBpZiBQUklWKHZtc19yZWMpCglpcyBOVUxMLgoKMjAwMC0wNi0xMyAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMC0wNi0xMyAgSiJvcm4gUmVubmVja2UgPGFteWxhYXJAY3lnbnVzLmNvLnVrPgoKCSogcGVpY29kZS5oIChwZV9JTEZfb2JqZWN0X3ApOiBVc2UgVEFSR0VUX0xJVFRMRV9TWU0gaW5zdGVhZCBvZgoJYXJtcGVpX2xpdHRsZV92ZWMuCgoyMDAwLTA2LTA4ICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogY29uZmlndXJlLmluIChWRVJTSU9OKTogVXBkYXRlIHRvIHNob3cgdGhpcyBpcyB0aGUgQ1ZTIG1haW5saW5lLgoKMjAwMC0wNi0wNyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZjMyLWQxMHYuYzogSW5jbHVkZSBlbGYvZDEwdi5oCgkoZW51bSByZWxvY190eXBlKTogRGVsZXRlLgoJKiBlbGYzMi1kMzB2LmM6IEluY2x1ZGUgZWxmL2QzMHYuaAoJKGVudW0gcmVsb2NfdHlwZSk6IERlbGV0ZS4KCgkqIE1ha2VmaWxlLmFtOiBSdW4gIm1ha2UgZGVwLWFtIiB0byByZWdlbmVyYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9ob3d0b190YWJsZSk6IFJlbW92ZSBFTVBUWV9IT1dUT3MuCgkoZWxmMzJfaTM4Nl92dGluaGVyaXRfaG93dG8sIGVsZjMyX2kzODZfdnRlbnRyeV9ob3d0byk6IERlbGV0ZSBhbmQKCW1vdmUgSE9XVE9zIGludG8gZWxmX2hvd3RvX3RhYmxlLgoJKFJfMzg2X3N0YW5kYXJkLCBSXzM4Nl9leHRfb2Zmc2V0KTogRGVmaW5lLgoJKFJfMzg2X2V4dCwgUl8zODZfdnRfb2Zmc2V0LCBSXzM4Nl92dCk6IERlZmluZS4KCShlbGZfaTM4Nl9yZWxvY190eXBlX2xvb2t1cCk6IE1vZGlmeSBjYWxjdWxhdGlvbiBvZiBpbmRleCBpbnRvCgllbGZfaG93dG9fdGFibGUgc2luY2Ugd2UndmUgcmVtb3ZlZCB0aGUgcGFkZGluZy4KCShlbGZfaTM4Nl9pbmZvX3RvX2hvd3RvX3JlbCk6IExpa2V3aXNlLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCjIwMDAtMDYtMDYgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckBzZWFkb2cuY3lnbnVzLmNvbT4KCgkqIGVsZi5jIChlbGZfZ3Jva19wcl9zdGF0dXMpOiBFbGltaW5hdGUgcmVmZXJlbmNlIHRvIHByZ3JlZ3NldF90LgoKMjAwMC0wNi0wNSAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9saW5rX3JlY29yZF9keW5hbWljX3N5bWJvbCk6IERvbid0IGZsYWcKCWFuIGVycm9yIHdoZW4gc2VlaW5nIGFuIHVuZGVmaW5lZCBzeW1ib2wgd2l0aCBoaWRkZW4vaW50ZXJuYWwKCWF0dHJpYnV0ZS4gSXQgaXMgaGFuZGxlZCBpbiAqX3JlbG9jYXRlX3NlY3Rpb24gKCkuCgoyMDAwLTA2LTA1ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGZsaW5rLmggKGVsZl9maXhfc3ltYm9sX2ZsYWdzKTogRm9sbG93IHRoZSBsaW5rIGZvciB0aGUKCWluZGlyZWN0IHN5bWJvbCBmb3IgdGhlIEVMRl9MSU5LX05PTl9FTEYgYml0LgoJKGVsZl9saW5rX291dHB1dF9leHRzeW0pOiBEb24ndCBvdXRwdXQgdGhlIGluZGlyZWN0IHN5bWJvbCBldmVuCglpZiB0aGUgRUxGX0xJTktfTk9OX0VMRiBiaXQgaXMgc2V0LgoKMjAwMC0wNi0wMSAgSi5ULiBDb25rbGluICA8anRjQHJlZGJhY2suY29tPgoKCSogY29uZmlnLmJmZCAoaVszNDU2XTg2LSotbmV0YnNkZWxmKik6IE5ldyB0YXJnZXQuCgkoaVszNDU2XTg2LSotbmV0YnNkYW91dCopOiBOZXcgdGFyZ2V0LgoJKGlbMzQ1Nl04Ni0qLW5ldGJzZCopOiBBZGQgYmZkX2VsZjMyX2kzODZfdmVjIHRvIHRhcmdfc2VsdmVjcy4KCShpWzM0NTZdODYtKi1vcGVuYnNkKik6IExpa2V3aXNlLgoKMjAwMC0wNS0zMCAgQW5kcmV3IENhZ25leSAgPGNhZ25leUBiMS5jeWdudXMuY29tPgoKCSogdHJhZC1jb3JlLmM6IEZyb20gaHB1eC1jb3JlLmMsIGluY2x1ZGUgPGRpcmVudC5oPiBvcgoJPHN5cy9uZGlyLmg+IHdoZW4gcG9zc2libGUuCgoyMDAwLTA1LTMxICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAcmVkaGF0LmNvbT4KCgkqIGVsZi5jIChfYmZkX2VsZl9zbHVycF92ZXJzaW9uX3RhYmxlcyk6IENvcnJlY3QgcmVhZGluZyBvZiB2ZXJzaW9uCglkZWZpbml0aW9ucy4gIFdlIG11c3Qgbm90IGFzc3VtZSB0aGV5IGFyZSBzb3J0ZWQgaW4gdGhlIGZpbGUKCWFjY29yZGluZyB0byB0aGVpciBpbmRleCBudW1iZXJzLgoKMjAwMC0wNS0zMSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZi1ocHBhLmg6IChlbGZfaHBwYV9maW5hbF9saW5rX3JlbG9jYXRlKTogVXNlIGVfcnNlbCBmaWVsZAoJc2VsZWN0b3IgZm9yIFJfUEFSSVNDX1BDUkVMMTdSLiAgUl9QQVJJU0NfRElSMTdSIGFuZAoJUl9QQVJJU0NfRElSMTdGIGFyZSBmb3IgYWJzb2x1dGUgYnJhbmNoZXM7IEhhbmRsZSB0aGVtIGFzIHN1Y2guCgoyMDAwLTA1LTMwICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogY3B1LWk5NjAuYyAoc2Nhbl85NjBfbWFjaCk6IEFjY2VwdCA4MDk2MEtBLCA4MDk2MEtCLAoJODA5NjBDQSwgODA5NjBNQyBhcyB2YWxpZCBtYWNoaW5lIG5hbWVzLgoKMjAwMC0wNS0zMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5jIChfYmZkX2VsZl9saW5rX3JlY29yZF9keW5hbWljX3N5bWJvbCk6IENsZWFyIHRoZQoJdmlzaWJpbGl0eSBiaXRzIGlmIHRoZSBzeW1ib2wgaXMgdW5kZWZpbmVkLiBDb3JyZWN0bHkgaGFuZGxlCgl3ZWFrIHVuZGVmaW5lZCBzeW1ib2xzIHdpdGggaGlkZGVuIGFuZCBpbnRlcm5hbCBhdHRyaWJ1dGVzLgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBBbHdheXMgdHVybiB0aGUKCXN5bWJvbCBpbnRvIGxvY2FsIGlmIGl0IGhhcyB0aGUgaGlkZGVuIG9yIGludGVybmFsIGF0dHJpYnV0ZS4KCjIwMDAtMDUtMjkgIFBoaWxpcCBCbHVuZGVsbCAgPHBoaWxiQGdudS5vcmc+CgoJKiBwcGNib290LmM6ICBBZGQgcGFja2VkIGF0dHJpYnV0ZSBpZiBjb21waWxpbmcgd2l0aCBHQ0MuCgoyMDAwLTA1LTI5ICBBbmF0b2x5IFZvcm9iZXkgIDxtZWxsb25AcG9ib3guY29tPgoKCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF90YWJsZV9pbml0KTogSW5pdGlhbGl6ZSBkeW5sb2NhbC4KCjIwMDAtMDUtMjYgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckBzZWFkb2cuY3lnbnVzLmNvbT4KCgkqIGVsZi5jIChlbGZjb3JlX2dyb2tfcHJzdGF0dXMsIGVsZmNvcmVfZ3Jva19wc3RhdHVzLAoJZWxmY29yZV9ncm9rX3BzaW5mbyk6IEFkZCBjb2RlIHRvIGFsbG93IGRlYnVnZ2luZyBhIDMyLWJpdAoJY29yZWZpbGUgb24gYSA2NC1iaXQgKFNwYXJjIFNvbGFyaXMpIGhvc3QuICBBbHNvIGNsZWFuIHVwCglhIGZldyBvbGQgY29tbWVudHMuCgoyMDAwLTA1LTI2ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogTWFrZWZpbGUuYW06IFVwZGF0ZSBkZXBlbmRlbmNpZXMgd2l0aCAibWFrZSBkZXAtYW0iCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCSogc3lzZGVwLmggKGdldHRleHQsIGRnZXR0ZXh0LCBkY2dldHRleHQsIHRleHRkb21haW4sCgliaW5kdGV4dGRvbWFpbik6IFJlcGxhY2UgZGVmaW5lcyB3aXRoIHRob3NlIGZyb20gaW50bC9saWJnZXR0ZXh0LmgKCXRvIHF1aWV0ZW4gZ2NjIHdhcm5pbmdzLgoKMjAwMC0wNS0yNiAgRWxpIFphcmV0c2tpaSAgPGVsaXpAaXMuZWx0YS5jby5pbD4KCgkqIGFvdXR4LmggKGZpbmRfbmVhcmVzdF9saW5lKTogVXNlIElTX0FCU09MVVRFX1BBVEguCgoJKiBhcmNoaXZlLmMgKG5vcm1hbGl6ZSwgYmZkX2JzZF90cnVuY2F0ZV9hcm5hbWUsCgliZmRfZ251X3RydW5jYXRlX2FybmFtZSkgW0hBVkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNXTogU3VwcG9ydAoJZmlsZSBuYW1lcyB3aXRoIGJhY2tzbGFzaGVzLgoKCSogY2FjaGUuYyAoYmZkX29wZW5fZmlsZSkgW19fTVNET1NfX106IERvbid0IHVubGluayB0aGUgZmlsZQoJYmVmb3JlIG9wZW5pbmcgaXQuCgoJKiBzeXNkZXAuaDogSW5jbHVkZSBmaWxlbmFtZXMuaC4KCjIwMDAtMDUtMjYgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBvcG5jbHMuYyAoYmZkX2Nsb3NlX2FsbF9kb25lKTogTWFzayBmaWxlIHBlcm1zIHdpdGggMDc3NyBub3QgMHg3NzcuCgoyMDAwLTA1LTI2ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX3JlbGF4X3NlY3Rpb24pOiBOZXcuCgkoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IE9wdGltaXplIHRhaWwgY2FsbCBpbnRvIGJyYW5jaCBhbHdheXMKCWlmIHBvc3NpYmxlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkoZWxmMzJfc3BhcmNfcmVsYXhfc2VjdGlvbik6IE5ldy4KCjIwMDAtMDUtMjYgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZWxmNjQtc3BhcmMuYzogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gdW51c2VkIGZ1bmN0aW9uIHBhcmFtZXRlcnMuCglSZW1vdmUgdW51c3VlZCB2YXJpYWJsZXMuCgkoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IENoYW5nZSByX3N5bW5keCB0eXBlIHRvIHVuc2lnbmVkIGxvbmcuCgkoc3BhcmM2NF9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IEZpeCBzaGFyZWQgbGlicmFyeSBjYXNlIGZyb20KCXByZXZpb3VzIGZpeCwgc28gdGhhdCBzaGFyZWQgbGlicyByZWFsbHkgZG9uJ3QgaW5mbHVlbmNlIHRhcmdldHMKCWV4dGVuc2lvbiBtYXNrIGFuZCBtZW1vcnkgbW9kZWwuCgoyMDAwLTA1LTIzICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGY2NC1hbHBoYS5jIChlbGY2NF9hbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogQ2hlY2sKCWgtPnJvb3Qub3RoZXIgbm90IGgtPm90aGVyLgoJKiBlbGYzMi1taXBzLmMgKG1pcHNfZWxmX2NhbGN1bGF0ZV9yZWxvY2F0aW9uKTogTGlrZXdpc2UuCgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogRml4IGEgdHlwby4KCjIwMDAtMDUtMjMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGFsbG93IHRoZQoJdW5kZWZpbmVkIHN5bWJvbCB3aXRoIHRoZSBub24tZGVmYXVsdCB2aXNpYmlsaXR5IGF0dHJpYnV0ZXMuCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzNzAuYyAoaTM3MF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbWNvcmUuYyAobWNvcmVfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1pYTY0LmMgKGVsZjY0X2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGY2NC1zcGFyYy5jIChzcGFyYzY0X2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoyMDAwLTA1LTIyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogZWxmNjQtaWE2NC5jIChpYTY0X2hvd3RvX3RhYmxlKTogQWRkIFBDUkVMNjBCLCBQQ1JFTDIxQkksCglQQ1JFTDIyLCBQQ1JFTDY0SS4gIFplcm8gc2l6ZSBvZiBzcGVjaWFsIHJlbG9jcy4KCShlbGY2NF9pYTY0X3JlbG9jX3R5cGVfbG9va3VwKTogTGlrZXdpc2UuCgkoVVNFX0JSTCwgb29yX2JybCwgb29yX2lwKTogTmV3LgoJKGVsZjY0X2lhNjRfcmVsYXhfc2VjdGlvbik6IE5ldy4KCShlbGY2NF9pYTY0X2NoZWNrX3JlbG9jcyk6IEhhbmRsZSBQQ1JFTDYwQiwgUENSRUwyMiwgUENSRUw2NEkuCgkoZWxmNjRfaWE2NF9pbnN0YWxsX3ZhbHVlKTogTGlrZXdpc2UsIHBsdXMgUENSRUwyMUJJLgoJKGVsZjY0X2lhNjRfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKGJmZF9lbGY2NF9iZmRfcmVsYXhfc2VjdGlvbik6IE5ldy4KCSogcmVsb2MuYyAoQkZEX1JFTE9DX0lBNjRfUENSRUwyMUJJKTogTmV3LgoJKEJGRF9SRUxPQ19JQTY0X3tQQ1JFTDIyLFBDUkVMNjBCLFBDUkVMNjRJfSk6IE5ldy4KCSogYmZkLWluMi5oLCBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCjIwMDAtMDUtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW4gOiBBZGQgcGVpZ2VuLmxvIHRvIE1JUFMgUEUgdGFyZ2V0cy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwMC0wNS0yMiAgTW9tY2hpbCBWZWxpa292ICA8dmVsY29AZmFkYXRhLmJnPgoKCSogbGliYmZkLmMgKF9iZmRfZ2VuZXJpY192ZXJpZnlfZW5kaWFuX21hdGNoKTogQ29tcGFyZSBlbmRpYW5lc3MKCW9ubHkgaWYgaXQgaXMga25vd24gZm9yIGJvdGggaW5wdXQgYW5kIG91dHB1dCBiZmRzLiBTZXBhcmF0ZQoJZXJyb3IgbWVzc2FnZSBzdHJpbmdzIGFzIGluIHNvbWUgbGFuZ3VhZ2VzLCBpdCBtYXkgYmUgbmVjZXNzYXJ5Cgl0byBjaGFuZ2UgbW9yZSB0aGFuIG9uZSBwbGFjZSBpbiB0aGUgc3RyaW5nIHRvIGNoYW5nZSBiZXR3ZWVuCgknYmlnJyBhbmQgJ2xpdHRsZScuCgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogUmVtb3ZlIGlubGluZQoJZW5kaWFuZXNzIGNoZWNrcywgY2FsbCBfYmZkX2dlbmVyaWNfdmVyaWZ5X2VuZGlhbl9tYXRjaCgpIGluc3RlYWQuCgoJKiBlbGYzMi1taXBzLmMgKF9iZmRfbWlwc19lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IExpa2V3aXNlLgoKCSogZWxmMzItbWNvcmUuYyAobWNvcmVfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBMaWtld2lzZS4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YSk6IExpa2V3aXNlLiBWZXJpZnkKCWVuZGlhbmVzcyBiZWZvcmUgY2hlY2tpbmcgYmZkIGZsYXZvdXJzLgoKMjAwMC0wNS0yMiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogQ2xlYXIgdGhlIHZpc2liaWxpdHkKCWZpZWxkIGZvciBzeW1ib2xzIG5vdCBkZWZpbmVkIGxvY2FsbHkuCgoyMDAwLTA1LTE4ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogbGliaHBwYS5oIChyZV9hc3NlbWJsZV8zLCByZV9hc3NlbWJsZV8xMiwgcmVfYXNzZW1ibGVfMTYsCglyZV9hc3NlbWJsZV8xNywgcmVfYXNzZW1ibGVfMjEsIHJlX2Fzc2VtYmxlXzIyKTogRG9uJ3QgbWFzayBpbnNuLgoJKGhwcGFfcmVidWlsZF9pbnNuKTogTWFzayBpbW1lZGlhdGUgYml0cyBoZXJlIGluc3RlYWQuCgkqIGVsZi1ocHBhLmggKGVsZl9ocHBhX3JlbG9jYXRlX2luc24pOiBNYXNrIGhlcmUgdG9vLgoKMjAwMC0wNS0xOCAgTW9tY2hpbCBWZWxpa292IDx2ZWxjb0BmYWRhdGEuYmc+CgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfZmluYWxfbGluaywgZWxmX2xpbmtfaW5wdXRfYmZkKTogV2hlbiBlbWl0aW5nCglyZWxvY3MgZm9yIGFuIGV4ZWN1dGFibGUsIGVuc3VyZSB0aGF0IHRoZXkgYXJlIHZpcnR1YWwgYWRkcmVzc2VzLgoKMjAwMC0wNS0xOCAgSmVmZnJleSBBIExhdyAgKGxhd0BjeWdudXMuY29tKQoKCSogY29uZmlnLmJmZCAoaHBwYSo2NCotKi1ocHV4MTEqKTogTmV3IHRhcmdldCB0cmlwbGV0LgoKMjAwMC0wNS0xNyAgUy4gQmhhcmFkd2FqIFlhZGF2YWxsaSAgPHNieUBzY3J1Z3MubGtnLmRlYy5jb20+CgkgICAgUmljayBHb3J0b24JICAgICAgICAgICAgPGdvcnRvbkBzY3J1Z3MubGtnLmRlYy5jb20+CgoJKiBlbGZsaW5rLmg6IEFkZCBlbWl0cmVsb2NhdGlvbnMgc3VwcG9ydDogd2hlbiBlbmFibGVkLCByZWxvY2F0aW9uCglpbmZvcm1hdGlvbiBhbmQgcmVsb2NhdGlvbiBzZWN0aW9ucyBhcmUgcHV0IGludG8gZmluYWwgb3V0cHV0CglleGVjdXRhYmxlcy4gIElmIHRoZSBlbWl0cmVsb2NhdGlvbnMgZmxhZyBpcyBzZXQsIGRvIHRoZSBmb2xsb3dpbmc6CgkoZWxmX2JmZF9maW5hbF9saW5rKTogRW1pdCByZWxvY2F0aW9uIHNlY3Rpb25zLgoJKGVsZl9saW5rX2lucHV0X2JmZCk6IENvbXB1dGUgcmVsb2NhdGlvbiBzZWN0aW9uIGNvbnRlbnRzLgoJKGVsZl9nY19zZWN0aW9ucyk6IERvbid0IGNsZWFuIHJlbG9jYXRpb24gc2VjdGlvbnMuCgoyMDAwLTA1LTE2ICBDYXRoZXJpbmUgTW9vcmUgIDxjbG1AY3lnbnVzLmNvbT4KCgkqIHNvbS5jIChzb21fZGVjb2RlX3N5bWNsYXNzKTogIFJlY29nbml6ZSB3ZWFrIHN5bWJvbHMuCgoyMDAwLTA1LTE2ICBTemFib2xjcyBTemFrYWNzaXRzIDxzemFrYUBGLVNlY3VyZS5jb20+CgoJKiBwZWlnZW4uYyAocGVfcHJpbnRfaWRhdGEpOiBVbmRvIHBhcnQgb2YgMjAwMC0wNS0xMiBjaGFuZ2UgdGhhdAoJcmVhZCBpZGF0YSBzZWN0aW9uIG9ubHkgZnJvbSBkYXRhb2ZmLgoJKHBlX3ByaW50X2VkYXRhKTogQ29ycmVjdGx5IGNoZWNrIGZvciB2YWxpZCBlYXRfbWVtYmVyLgoKMjAwMC0wNS0xNiAgSiJvcm4gUmVubmVja2UgPGFteWxhYXJAY3lnbnVzLmNvLnVrPgoKCSogZWxmMzItc2guYyAoc2hfZWxmX3JlbGF4X2RlbGV0ZV9ieXRlcyk6IEhhbmRsZSBSX1NIX1NXSVRDSDguCgoyMDAwLTA1LTE0ICBQaGlsaXAgQmx1bmRlbGwgIDxwaGlsYkBnbnUub3JnPgoKCSogY29uZmlnLmJmZCAoYXJtZWItKi1lbGYsIGFybSpiLSotbGludXgtZ251Kik6IE5ldyB0YXJnZXRzLgoKMjAwMC0wNS0xMiAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIHRhcmdldHMuYyAoYmZkX3RhcmdldF92ZWN0b3IpOiAjaWZkZWYgQkZENjQgcnM2MDAwY29mZjY0X3ZlYwoKCSogcGVpZ2VuLmMgKHBlX3ByaW50X2lkYXRhKTogTG9vayBmb3IgLmlkYXRhIHNlY3Rpb24gYW5kIHByaW50CglpbmZvIGV2ZW4gaWYgZGF0YSBkaXJlY3RvcnkgaGFzIHplcm8gZW50cmllcy4gIFJlYWQgaWRhdGEgc2VjdGlvbgoJc3RhcnRpbmcgZnJvbSBkYXRhb2ZmLCBhbmQgYWRqdXN0IGFsbCBkYXRhIG9mZnNldHMgdG8gc3VpdC4gIENhc3QKCWFsbCBiZmRfdm1hIHZhcnMgdG8gdW5zaWduZWQgbG9uZyBiZWZvcmUgcGFzc2luZyB0byBmcHJpbnRmLgoJKiBwZWlnZW4uYyAocGVfcHJpbnRfZWRhdGEpOiBTaW1pbGFybHksIGxvb2sgZm9yIC5lZGF0YSBzZWN0aW9uCglhbmQgcHJpbnQgaW5mbyBldmVuIGlmIGRhdGEgZGlyZWN0b3J5IGhhcyB6ZXJvIGVudHJpZXMuICBDYXN0CglhbGwgYmZkX3ZtYSB2YXJzIHRvIHVuc2lnbmVkIGxvbmcgYmVmb3JlIHBhc3NpbmcgdG8gZnByaW50Zi4KCglGcm9tIFN6YWJvbGNzIFN6YWthY3NpdHMgPHN6YWthQEYtU2VjdXJlLmNvbT4KCSogcGVpZ2VuLmMgKHBlX3ByaW50X2lkYXRhKTogVXNlIGJmZF9zZWN0aW9uX3NpemUgcmF0aGVyIHRoYW4gZGF0YQoJZGlyZWN0b3J5IHNpemUgd2hpY2ggbWF5IGJlIGJvZ3VzLgoJKiBwZWlnZW4uYyAocGVfcHJpbnRfZWRhdGEpOiBTaW1pbGFybHkuCgoyMDAwLTA1LTA5ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmLmMgKGJmZF9zZWN0aW9uX2Zyb21fc2hkcik6IERvbid0IHNldCB1c2VfcmVsYV9wIGlmIHJlbGEKCXNlY3Rpb24gaXMgZW1wdHkuCgkoY29weV9wcml2YXRlX2JmZF9kYXRhKTogQWxsb3cgZm9yIHNwYWNlIHBvc3NpYmx5IHRha2VuIHVwIGJ5IGVsZgoJaGVhZGVycyB3aGVuIGNhbGN1bGF0aW5nIHNlZ21lbnQgcGh5c2ljYWwgYWRkcmVzcyBmcm9tIGxtYS4KCjIwMDAtMDUtMDggIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiB2ZXJzYWRvcy5jICh2ZXJzYWRvc19zY2FuKTogSW5pdCBzdHJpbmdsZW4gYW5kIHBhc3NfMl9kb25lLgoKCSogdHJhZC1jb3JlLmMgKHRyYWRfdW5peF9jb3JlX2ZpbGVfcCk6IFJldHVybgoJYmZkX2Vycm9yX3dyb25nX2Zvcm1hdCByYXRoZXIgdGhhbiBiZmRfZXJyb3JfZmlsZV90cnVuY2F0ZWQuCgoJKiBwZWlnZW4uYyAoX2JmZF9wZWlfc3dhcF9hb3V0aGRyX291dCk6IFBhc3MgSW1hZ2VCYXNlIHRvCglhZGRfZGF0YV9lbnRyeS4gIERhdGFEaXJlY3RvcnkgdmlydHVhbCBhZGRyZXNzIGlzIHJlbGF0aXZlLgoJKHBlX3ByaW50X2lkYXRhKTogQWNjb3VudCBmb3IgcmVsYXRpdmUgRGF0YURpcmVjdG9yeSB2aXJ0dWFsCglhZGRyZXNzZXMuICBEb24ndCB0cmFzaCBkYXRhc2l6ZSBpbnNpZGUgUE9XRVJQQ19MRV9QRSBjb2RlLgoJKHBlX3ByaW50X2VkYXRhKTogU2ltaWxhcmx5LgoKCUZyb20gU3phYm9sY3MgU3pha2Fjc2l0cyA8c3pha2FARi1TZWN1cmUuY29tPgoJKiBwZWlnZW4uYyAoZGlyX25hbWVzKTogQWRkIERlbGF5IEltcG9ydCBEaXJlY3RvcnkuCgkocGVfcHJpbnRfaWRhdGEpOiAgQWx3YXlzIHNlYXJjaCBmb3IgYmZkIHNlY3Rpb24gY29udGFpbmluZwoJaWRhdGEgYWRkcmVzcyByYXRoZXIgdGhhbiBsb29raW5nIHVwIHNlY3Rpb24gbmFtZS4gIFByaW50IHRoaXMKCXNlY3Rpb24gbmFtZSByYXRoZXIgdGhhbiAuaWRhdGEuCgkocGVfcHJpbnRfZWRhdGEpOiBTaW1pbGFybHkuICBBbHNvIHByaW50IHNvbWUgZmllbGRzIGFzICUwOGx4LgoJKF9iZmRfcGVfcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YV9jb21tb24pOiBQcmludCBSZXNlcnZlZDEgZmllbGQgYXMKCVdpbjMyVmVyc2lvbi4KCjIwMDAtMDUtMDUgIENsaW50b24gUG9wZXR6ICA8Y3BvcGV0ekBjeWdudXMuY29tPgoKCSogeGNvZmYuaDogUmVuYW1lIHRvIHhjb2ZmLXRhcmdldC5oCgkqIE1ha2VmaWxlLmFtOiBDaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiB4Y29mZi5oIHRvIHhjb2ZmLXRhcmdldC5oCgkqIGNvZmYtcnM2MDAwLmM6IERpdHRvLgoJKiBjb2ZmNjQtcnM2MDAwLmM6IERpdHRvLgoJKiBjb2ZmLXBtYWMuYzogRGl0dG8uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wNS0wNSAgQ2xpbnRvbiBQb3BldHogIDxjcG9wZXR6QGN5Z251cy5jb20+CgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hcmNoX21hY2hfaG9vaywgY29mZl9zZXRfZmxhZ3MpOgoJQ2hhbmdlIFU4MDJUT0M2NE1BR0lDIHRvIFU4MDNYVE9DTUFHSUMuCgoyMDAwLTA1LTA0ICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAc2VhZG9nLmN5Z251cy5jb20+CgoJKiBlbGYuYyAoYmZkX2VsZl9nZXRfYXJjaF9zaXplKTogTmV3IGZ1bmN0aW9uLCByZXR1cm4gMzIgfCA2NCB8IC0xLgoJKiBiZmQtaW4uaDogUHJvdG90eXBlIGJmZF9lbGZfZ2V0X2FyY2hfc2l6ZS4KCSogYmZkLWluMi5oOiBQcm90b3R5cGUgYmZkX2VsZl9nZXRfYXJjaF9zaXplLgoKMjAwMC0wNS0wNCAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGxpYmhwcGEuaCAoSFBQQV9SX0NPTlNUQU5UKTogQ2FzdCBhcmd1bWVudCB0byBiZmRfc2lnbmVkX3ZtYS4KCjIwMDAtMDUtMDMgIE1hcnRpbiB2LiBMgfZ3aXMgIDxsb2V3aXNAaW5mb3JtYXRpay5odS1iZXJsaW4uZGU+CgoJKiBlbGZsaW5rLmggKGVsZl9saW5rX2FkZF9vYmplY3Rfc3ltYm9scyk6IFJlc2V0IGR5bmluZHggZm9yCgloaWRkZW4gYW5kIGludGVybmFsIHN5bWJvbHMuCgkoZWxmX2ZpeF9zeW1ib2xfZmxhZ3MpOiBDbGVhciBORUVEU19QTFQgZm9yIHN5bWJvbHMgd2l0aAoJdmlzaWJpbGl0eS4KCSogZWxmbGluay5jIChfYmZkX2VsZl9saW5rX3JlY29yZF9keW5hbWljX3N5bWJvbCk6IERvIG5vdAoJYXNzaWduIGEgUExUIG9yIEdPVCBlbnRyeSB0byBzeW1ib2xzIHdpdGggaGlkZGVuIGFuZAoJaW50ZXJuYWwgdmlzaWJpbGl0eS4KCjIwMDAtMDUtMDMgIE1hcmsgRWxicmVjaHQgIDxzbm93YmFsbDNAYmlnZm9vdC5jb20+CgoJKiBjb2ZmLWdvMzIuYyAoQ09GRl9TRUNUSU9OX0FMSUdOTUVOVF9FTlRSSUVTKTogQWRkIGVudHJ5IGZvcgoJdGhlIC5ic3Mgc2VjdGlvbi4KCSogY29mZi1zdGdvMzIuYyAoQ09GRl9TRUNUSU9OX0FMSUdOTUVOVF9FTlRSSUVTKTogTGlrZXdpc2UuCgoyMDAwLTA1LTAyICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBlbGYuYyAocHJlcF9oZWFkZXJzKTogVXNlIEVMRk9TQUJJX05PTkUgaW5zdGVhZCBvZgoJRUxGT1NBQklfU1lTVi4KCjIwMDAtMDUtMDIgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiB0YXJnZXRzLmMgKGJmZF90YXJnZXRfdmVjdG9yKTogUmVzdG9yZSBiZmRfZWxmMzJfaHBwYV92ZWMuCgkqIE1ha2VmaWxlLmFtIChCRkQzMl9CQUNLRU5EUyk6IFJlc3RvcmUgZWxmMzItaHBwYS5sby4gIFJlZ2VuZXJhdGUKCWRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDAwLTA1LTAxICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZEMzJfQkFDS0VORFMpOiBBZGQgZWZpLWFwcC1pYTMyLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlZmktYXBwLWlhMzIuYy4KCShCRkQ2NF9CQUNLRU5EUyk6IERlbGV0ZSBjb2ZmLWlhNjQubG8uICBBZGQgZWZpLWFwcC1pYTY0LmxvLgoJKEJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IERlbGV0ZSBjb2ZmLWlhNjQuYy4gIEFkZCBlZmktYXBwLWlhNjQuYy4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgoyMDAwLTA1LTAyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogY29uZmlnLmJmZDogUmUtZW5hYmxlIGVsZjMyLWhwcGEuICBJdCBub3cgY29tcGlsZXMsIGV2ZW4gaWYgaXQKCWRvZXNuJ3Qgd29yayB2ZXJ5IHdlbGwuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9pbnRlcm5hbF9zaGRyKTogRGVmaW5lLgoJKGVsZl9ocHBhX2Zha2Vfc2VjdGlvbnMpOiBoZHIgaXMgZWxmX2hwcGFfaW50ZXJuYWxfc2hkci4KCVNldCBoZHItPnNfdHlwZSB0byAxIGlmIEFSQ0hfU0laRSA9PSAzMi4KCShfYmZkX2VsZl9ocHBhX2dlbl9yZWxvY190eXBlKTogQWRkIHByb3RvdHlwZS4KCShlbGZfaHBwYV9pbmZvX3RvX2hvd3RvKTogTGlrZXdpc2UuCgkoZWxmX2hwcGFfaW5mb190b19ob3d0b19yZWwpOiBMaWtld2lzZS4KCShlbGZfaHBwYV9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGVsZl9ocHBhX2lzX2xvY2FsX2xhYmVsX25hbWUpOiBMaWtld2lzZS4KCShlbGZfaHBwYV9mYWtlX3NlY3Rpb25zKTogTGlrZXdpc2UuCgkoZWxmX2hwcGFfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyk6IExpa2V3aXNlLgoJKGVsZl9ocHBhX2hvd3RvX3RhYmxlKTogRnVsbHkgaW5pdGlhbGlzZSBhbGwgZW50cmllcy4KCShfYmZkX2VsZl9ocHBhX2dlbl9yZWxvY190eXBlKTogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gYXJncy4KCShlbGZfaHBwYV9pbmZvX3RvX2hvd3RvKTogTGlrZXdpc2UuCgkoZWxmX2hwcGFfaW5mb190b19ob3d0b19yZWwpOiBMaWtld2lzZS4KCShlbGZfaHBwYV9yZWxvY190eXBlX2xvb2t1cCk6IExpa2V3aXNlLgoJKGVsZl9ocHBhX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcsIGVsZl9ocHBhX2FkZF9zeW1ib2xfaG9vaywKCWVsZl9ocHBhX3VubWFya191c2VsZXNzX2R5bmFtaWNfc3ltYm9scywKCWVsZl9ocHBhX3JlbWFya191c2VsZXNzX2R5bmFtaWNfc3ltYm9scywKCWVsZl9ocHBhX3JlY29yZF9zZWdtZW50X2FkZHJzLCBlbGZfaHBwYV9maW5hbF9saW5rLAoJZWxmX2hwcGFfcmVsb2NhdGVfc2VjdGlvbiwgZWxmX2hwcGFfZmluYWxfbGlua19yZWxvY2F0ZSwKCWVsZl9ocHBhX3JlbG9jYXRlX2luc24pOiBDb21waWxlIG9ubHkgaWYgQVJDSF9TSVpFID09IDY0IHVudGlsCgllbGYzMi1ocHBhLmMgbWVzcyBpcyBjbGVhbmVkIHVwLgoJKGVsZl9ocHBhX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBNYWtlIGluc24gYW5kIHJfdHlwZSB1bnNpZ25lZAoJaW50LiAgRGVsZXRlIHJfZmllbGQuICBJbiBjYXNlIFJfUEFSSVNDX1BDUkVMMjFMLCBkb24ndCBzZXQKCXJfZmllbGQgdGhlbiBjYWxsIGhwcGFfZmllbGRfYWRqdXN0IGlubGluZSBmdW5jIHdpdGggdmFyaWFibGUKCXJfZmllbGQgYXJnLCBpbnN0ZWFkIGNhbGwgaHBwYV9maWVsZF9hZGp1c3Qgd2l0aCBmaXhlZCBhcmcuCglJbiBjYXNlIFJfUEFSSVNDX1BDUkVMMjJGLCBkb24ndCBzZXQgcl9maWVsZC4KCShlbGZfaHBwYV9yZWxvY2F0ZV9pbnNuKTogQ2hhbmdlIGFyZ3MgYW5kIHJldHVybiB0eXBlIHRvIHVuc2lnbmVkCglpbnQuICBDYWxsIHJlX2Fzc2VtYmxlXyogZnVuY3MgdG8gZG8gdGhlIHdvcmsuCgoJKiBlbGYzMi1ocHBhLmMgKGhwcGFfZWxmX3JlbG9jYXRlX2luc24pOiBEb24ndCBhc3N1bWUgMzIgYml0IHdoZW4KCXNpZ24gZXh0ZW5kaW5nLgoKCSogbGliaHBwYS5oIChIUFBBX1JfQ09OU1RBTlQpOiBEb24ndCBhc3N1bWUgMzIgYml0IHdoZW4gc2lnbgoJZXh0ZW5kaW5nLgoJKHNpZ25fZXh0ZW5kKTogTWFzayBmaXJzdCBiZWZvcmUgc2lnbiBleHRlbmRpbmcuCgkobG93X3NpZ25fZXh0ZW5kKTogUmV3cml0ZSB3aXRob3V0IGNvbmRpdGlvbiBleHByZXNzaW9uLgoJKG9uZXMsIGRpc19hc3NlbWJsZV8zLCBkaXNfYXNzZW1ibGVfMTIsIGRpc19hc3NlbWJsZV8xNiwKCWRpc19hc3NlbWJsZV8xNywgZGlzX2Fzc2VtYmxlXzIxLCBkaXNfYXNzZW1ibGVfMjIpOiBEZWxldGUuCgkoYXNzZW1ibGVfMywgYXNzZW1ibGVfNiwgYXNzZW1ibGVfMTIsIGFzc2VtYmxlXzE2LCBhc3NlbWJsZV8xNmEsCglhc3NlbWJsZV8xNywgYXNzZW1ibGVfMjEsIHNpZ25fdW5leHQsIGxvd19zaWduX3VuZXh0KTogUmV0dXJuCglyZXN1bHQgYXMgZnVuY3Rpb24gcmV0dXJuIHZhbHVlIHJhdGhlciB0aGFuIHRocm91Z2ggcG9pbnRlciBhcmcuCglBY2NlcHQgdW5zaWduZWQgaW50IGFyZ3MsIGFuZCByZXR1cm4gdW5zaWduZWQgaW50LgoJKHJlX2Fzc2VtYmxlXzMpOiBOZXcuICBDb21iaW5lcyBmdW5jdGlvbiBvZiBkaXNfYXNzZW1ibGVfMyB3aXRoCglyZS1hc3NlbWJseSBvZiBvcGNvZGUgYW5kIGltbWVkaWF0ZS4KCShyZV9hc3NlbWJsZV8xMik6IExpa2V3aXNlLgoJKHJlX2Fzc2VtYmxlXzE2KTogTGlrZXdpc2UuCgkocmVfYXNzZW1ibGVfMTcpOiBMaWtld2lzZS4KCShyZV9hc3NlbWJsZV8yMSk6IExpa2V3aXNlLgoJKHJlX2Fzc2VtYmxlXzIyKTogTGlrZXdpc2UuCgkoaHBwYV9maWVsZF9hZGp1c3QpOiBSZXdyaXRlIGFuZCBkb2N1bWVudCwgcGF5aW5nIGF0dGVudGlvbiB0bwoJc2l6ZSBvZiB0eXBlcyBhbmQgc2lnbmVkL3Vuc2lnbmVkIGlzc3Vlcy4KCShnZXRfb3Bjb2RlKTogU2hpZnQgYmVmb3JlIG1hc2tpbmcuCgkoRkRMVyk6IFJlbmFtZSB0byBGTERXLgoJKGJmZF9ocHBhX2luc24yZm10KTogQ2hhbmdlIGFyZyB0byB1bnNpZ25lZCBpbnQuICBEZWxldGUgZm10LgoJKGhwcGFfcmVidWlsZF9pbnNuKTogQ2hhbmdlIGFyZ3MgYW5kIHJldHVybiB2YWx1ZSB0byB1bnNpZ25lZAoJaW50LiAgTWFrZSB1c2Ugb2YgcmVfYXNzZW1ibGVfKi4gIENvcnJlY3QgY2FzZSAxMS4KCgkqIGRlcC1pbi5zZWQ6IEhhbmRsZSAuLi9vcGNvZGVzLy4KCSogTWFrZWZpbGUuYW0gKFNPVVJDRV9IRklMRVMpOiBBZGQgZWxmLWhwcGEuaCwgZWxmMzItaHBwYS5oLAoJZWxmNjQtaHBwYS5oLCBocHBhX3N0dWJzLmgsIHhjb2ZmLmguCgkoQkZEMzJfQkFDS0VORFNfQ0ZJTEVTKTogUmVzdG9yZSBlbGYzMi1ocHBhLmMuCglSZW1vdmUgZWxmNjQtaHBwYS5sbywgY3B1LWlhNjQubG8sIGVsZjY0LWlhNjQubG8sIGVsZmFybS1vYWJpLmxvLAoJZWxmYXJtLW5hYmkubG8gZGVwZW5kZW5jaWVzIG91dHNpZGUgb2YgYXV0by1kZXBlbmRlbmN5IGFyZWEuCglSZWdlbmVyYXRlIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoJKiBjb25maWd1cmUuaW4gKFRSQURfSEVBREVSKTogVGVzdCBub24tbnVsbCBiZWZvcmUKCUFDX0RFRklORV9VTlFVT1RFRC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKCSogcmVsb2MuYzogRml4IG1pcy1zcGVsbGluZyBpbiBjb21tZW50LgoKMjAwMC0wNS0wMSAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGNvZmYtc2guYyAoYmZkX2NvZmZfc21hbGxfc3dhcF90YWJsZSk6IEZpeCBGcmkgQXByIDI4IGNoYW5nZS4KCSogdm1zLmMgKHZtc19vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUpOiBSZXR1cm4gTlVMTC4KCjIwMDAtMDQtMjggIENsaW50b24gUG9wZXR6ICA8Y3BvcGV0ekBjeWdudXMuY29tPgoKCSogY29mZmNvZGUuaCBDb3B5IGNoYW5nZXMgbWlzdGFrZW5seSBkb25lIHRvIGxpYmNvZmYuaCBpbgoJNC8yNC8yMDAwIHBhdGNoLgoKMjAwMC0wNC0yOSAgQW5kcmVhcyBKYWVnZXIgIDxhakBzdXNlLmRlPgoKCSogbGliYmZkLWluLmg6IENvcnJlY3RseSBjaGVjayBHQ0MgdmVyc2lvbi4KCSogYmZkLWluLmg6IExpa2V3aXNlLgoJKiBsaWJocHBhLmg6IExpa2V3aXNlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMC0wNC0yOCAgQ2xpbnRvbiBQb3BldHogIDxjcG9wZXR6QGN5Z251cy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZENjRfQkFDS0VORFMsIEJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IEFkZAoJY29mZmR1LXJzNjAwMC57bG8sY30uCgkoY29mZi1wbWFjLmxvLCBjb2ZmLXJzNjAwMC5sbywgY29mZjY0LXJzNjAwMC5sbyk6IEFkZCBkZXBlbmRlbmN5CglvbiB4Y29mZi5oCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiB4Y29mZi5oOiBOZXcgZmlsZS4KCSogY29mZi1wbWFjLmM6IFVzZSB4Y29mZi5oIGluc3RlYWQgb2YgY29mZi1yczYwMDAuYy4KCSogY29mZi1yczYwMDAuYzogTW92ZSBhbGwgZGVjbGFyYXRpb25zIGFuZCBkZWZpbmVzIHRoYXQgYXJlCgljb21tb24gdG8gdGhlIHhjb2ZmIGJhY2tlbmRzIGludG8geGNvZmYuaAoJKiBjb2ZmNjQtcnM2MDAwLmM6IERpdHRvLAoKMjAwMC0wNC0yOCAgQ2xpbnRvbiBQb3BldHogIDxjcG9wZXR6QGN5Z251cy5jb20+CgoJKiBjb2ZmLW1pcHMuYyAobWlwc19lY29mZl9iYWNrZW5kX2RhdGEpOiAgQWRkIGluaXRpYWxpemF0aW9uIG9mCglfYmZkX2NvZmZfZm9yY2Vfc3ltbmFtZXMgaW4gc3RyaW5ncyBhbmQKCV9iZmRfY29mZl9kZWJ1Z19zdHJpbmdfcHJlZml4X2xlbmd0aCB0byB0aGVpciBkZWZhdWx0IHZhbHVlcy4KCSogY29mZi1zaC5jOiAoYmZkX2NvZmZfc21hbGxfc3dhcF90YWJsZSk6IERpdHRvLgoKMjAwMC0wNC0yOCAgQ2xpbnRvbiBQb3BldHogIDxjcG9wZXR6QGN5Z251cy5jb20+CgoJKiBjb2ZmLWFscGhhLmMgKGFscGhhX2Vjb2ZmX2JhY2tlbmRfZGF0YSk6IEFkZCBpbml0aWFsaXphdGlvbiBvZgoJX2JmZF9jb2ZmX2ZvcmNlX3N5bW5hbWVzIGluIHN0cmluZ3MgYW5kCglfYmZkX2NvZmZfZGVidWdfc3RyaW5nX3ByZWZpeF9sZW5ndGggdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuCgoyMDAwLTA0LTI3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmMzItbTY4ay5jIChlbGZfbTY4a19nY19zd2VlcF9ob29rKTogIFJldHVybiBpZiBkeW5vYmogTlVMTC4KCUNoZWNrIGxvY2FsX2dvdF9yZWZjb3VudHMgYmVmb3JlIGRlcmVmZXJlbmNpbmcuCgoJKiBlbGYzMi1wcGMuYyAocHBjX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQ2hlY2sgc3BsdCAhPSBOVUxMCgliZWZvcmUgZGVjaWRpbmcgd2UgZG9uJ3QgbmVlZCBSX1BQQ19QTFQzMiByZWxvY2F0aW9uLgoJKHBwY19lbGZfZ2Nfc3dlZXBfaG9vayk6IENoZWNrIGxvY2FsX2dvdF9yZWZjb3VudHMgYmVmb3JlCglkZXJlZmVyZW5jaW5nLgoKCSogZWxmbGluay5oIChlbGZfZ2NfY29tbW9uX2ZpbmFsaXplX2dvdF9vZmZzZXRzKTogRml4IGNvbW1lbnQuCgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2NoZWNrX3JlbG9jcyk6IFJlZmVyZW5jZSBjb3VudCAuZ290IGFuZAoJLnBsdCBlbnRyaWVzLgoJKGVsZl9pMzg2X2djX3N3ZWVwX2hvb2spOiBHYXJiYWdlIGNvbGxlY3QgLmdvdCBhbmQgLnBsdCBlbnRyaWVzLgoJKGVsZl9pMzg2X2FkanVzdF9keW5hbWljX3N5bWJvbCk6IFJlY29nbml6ZSB1bnVzZWQgLnBsdCBlbnRyaWVzLgoJKGVsZl9pMzg2X3JlbG9jYXRlX3NlY3Rpb24pOiBBbGxvdyBmb3IgLnBsdCB0byBnbyBtaXNzaW5nLgoJKGVsZl9pMzg2X2ZpbmlzaF9keW5hbWljX3N5bWJvbCk6IFVzZSBzYW1lIHRlc3QgdG8gZGVjaWRlIGlmIHdlCgljYW4gdXNlIGEgcmVsYXRpdmUgcmVsb2MgZm9yIGdvdCBhcyBlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uLgoJKGJmZF9lbGYzMl9iZmRfZmluYWxfbGluayk6IERlZmluZSB0byB1c2UgZ2MgZm9ybSBvZiBmaW5hbCBsaW5rLgoKMjAwMC0wNC0yNiAgQ2xpbnRvbiBQb3BldHogIDxjcG9wZXR6QGN5Z251cy5jb20+CgoJKiBjb25maWcuYmZkOiBSZW1vdmUgZXh0cmFuZW91cyBiZmRfcG93ZXJwY182NF9hcmNoLgoKMjAwMC0wNC0yNCAgQ2xpbnRvbiBQb3BldHogIDxjcG9wZXR6QGN5Z251cy5jb20+CgoJKiBNYWtlZmlsZS5hbSAoY29mZjY0LXJzNjAwMC5sbyk6IE5ldyBydWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29mZi1yczYwMDAuYyAoeGNvZmZfbWtvYmplY3QsIHhjb2ZmX2NvcHlfcHJpdmF0ZV9iZmRfZGF0YSwKCXhjb2ZmX2lzX2xvY2FsX2xhYmVsX25hbWUsIHhjb2ZmX3J0eXBlMmhvd3RvLAoJeGNvZmZfcmVsb2NfdHlwZV9sb29rdXAsIHhjb2ZmX3NsdXJwX2FybWFwLCB4Y29mZl9hcmNoaXZlX3AsCgl4Y29mZl9yZWFkX2FyX2hkciwgeGNvZmZfb3BlbnJfbmV4dF9hcmNoaXZlZF9maWxlLCB4Y29mZl93cml0ZV9hcm1hcCwKCXhjb2ZmX3dyaXRlX2FyY2hpdmVfY29udGVudHMpOiBObyBsb25nZXIgc3RhdGljLCBhbmQgcHJlZml4IHdpdGggX2JmZF8uCgkoTk9fQ09GRl9TWU1CT0xTKTogRGVmaW5lLgoJKHhjb2ZmNjRfc3dhcF9zeW1faW4sIHhjb2ZmNjRfc3dhcF9zeW1fb3V0LCB4Y29mZjY0X3N3YXBfYXV4X2luLAoJeGNvZmY2NF9zd2FwX2F1eF9vdXQpOiBOZXcgZnVuY3Rpb25zOyBoYW5kbGUgeGNvZmYgc3ltYm9sIHRhYmxlcwoJaW50ZXJuYWxseS4KCShNSU5VU19PTkUpOiBOZXcgbWFjcm8uCgkoeGNvZmZfaG93dG9fdGFibCwgeGNvZmZfcmVsb2NfdHlwZV9sb29rdXApOiBBZGQgNjQgYml0IFBPUwoJcmVsb2NhdGlvbi4KCShjb2ZmX1NXQVBfc3ltX2luLCBjb2ZmX1NXQVBfc3ltX291dCwgY29mZl9TV0FQX2F1eF9pbiwKCWNvZmZfU1dBUF9hdXhfb3V0KTogTWFwIHRvIHRoZSBuZXcgZnVuY3Rpb25zLgoJKiBjb2ZmNjQtcnM2MDAwLmM6IE5ldyBmaWxlLgoJKiBsaWJjb2ZmLmggKGJmZF9jb2ZmX2JhY2tlbmRfZGF0YSk6IEFkZCBuZXcgZmllbGRzCglfYmZkX2NvZmZfZm9yY2Vfc3ltbmFtZXNfaW5fc3RyaW5ncyBhbmQKCV9iZmRfY29mZl9kZWJ1Z19zdHJpbmdfcHJlZml4X2xlbmd0aC4KCShiZmRfY29mZl9mb3JjZV9zeW1uYW1lc19pbl9zdHJpbmdzLAoJYmZkX2NvZmZfZGVidWdfc3RyaW5nX3ByZWZpeF9sZW5ndGgpOiBOZXcgbWFjcm9zIGZvciBhYm92ZSBmaWVsZHMuCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FyY2hfbWFjaF9ob29rKTogSGFuZGxlIFhDT0ZGNjQgbWFnaWMuCglTZXQgbWFjaGluZSB0byA2MjAgZm9yIFhDT0ZGNjQuICBVc2UgYmZkX2NvZmZfc3dhcF9zeW1faW4gaW5zdGVhZAoJb2YgdXNpbmcgY29mZl9zd2FwX3N5bV9pbiBkaXJlY3RseS4KCShGT1JDRV9TWU1OQU1FU19JTl9TVFJJTkdTKTogTmV3IG1hY3JvLCBkZWZpbmVkIGZvciBYQ09GRjY0LgoJKGNvZmZfc2V0X2ZsYWdzKSBTZXQgbWFnaWMgZm9yIFhDT0ZGNjQuCgkoY29mZl9jb21wdXRlX3NlY3Rpb25fZmlsZV9wb3NpdGlvbnMpOiBBZGQgc3ltYm9sIG5hbWUgbGVuZ3RoIHRvCglzdHJpbmcgc2VjdGlvbiBsZW5ndGggaWYgYmZkX2NvZmZfZGVidWdfc3RyaW5nX3ByZWZpeF9sZW5ndGggaXMKCXRydWUuCgkoY29mZl93cml0ZV9vYmplY3RfY29udGVudHMpOiBEb24ndCBkbyByZWxvYyBvdmVyZmxvdyBmb3IgWENPRkY2NC4KCShjb2ZmX3NsdXJwX2xpbmVfdGFibGUpOiBVc2UgYmZkX2NvZmZfc3dhcF9saW5lbm9faW4gaW5zdGVhZCBvZgoJdXNpbmcgY29mZl9zd2FwX2xpbmVub19pbiBkaXJlY3RseS4KCShiZmRfY29mZl9iYWNrZW5kX2RhdGEpOiBBZGQgX2JmZF9jb2ZmX2ZvcmNlX3N5bW5hbWVzX2luX3N0cmluZ3MKCWFuZCBfYmZkX2NvZmZfZGVidWdfc3RyaW5nX3ByZWZpeF9sZW5ndGggZmllbGRzLgoJKiBjb2ZmZ2VuLmMgKGNvZmZfZml4X3N5bWJvbF9uYW1lLCBjb2ZmX3dyaXRlX3N5bWJvbHMpOiBGb3JjZQoJc3ltYm9sIG5hbWVzIGludG8gc3RyaW5ncyB0YWJsZSB3aGVuCgliZmRfY29mZl9mb3JjZV9zeW1uYW1lc19pbl9zdHJpbmdzIGlzIHRydWUuCgkqIGNvZmZzd2FwLmggKE1BWF9TQ05IRFJfTlJFTE9DLCBNQVhfU0NOSERSX05MTk5PLCBHRVRfUkVMT0NfVkFERFIsCglTRVRfUkVMT0NfVkFERFIpOiBOZXcgbWFjcm9zLgoJKGNvZmZfc3dhcF9yZWxvY19pbiwgY29mZl9zd2FwX3JlbG9jX291dCk6IFVzZSBhYm92ZSBtYWNyb3MuCgkoY29mZl9zd2FwX2F1eF9pbiwgY29mZl9zd2FwX2F1eF9vdXQpOiBSZW1vdmUgUlM2MDAwQ09GRl9DCgljb2RlLgoJKGNvZmZfc3dhcF9hb3V0aGRyX2luLCBjb2ZmX3N3YXBfYW91dGhkcl9vdXQpOiBIYW5kbGUgWENPRkY2NAoJY2hhbmdlcyB3aXRoaW4gUlM2MDAwQ09GRl9DIHNwZWNpZmljIGNvZGUuCgkoY29mZl9zd2FwX3Njbmhkcl9vdXQpOiBVc2UgUFVUX1NDTkhEUl9OTE5OTywgUFVUX1NDTkhEUl9OUkVMT0MsCglNQVhfU0NOSERSX05SRUxPQywgYW5kIE1BWF9TQ05IRFJfTkxOTk8uCgkqIHJlbG9jLmMgKGJmZF9wZXJmb3JtX3JlbG9jYXRpb24sIGJmZF9pbnN0YWxsX3JlbG9jYXRpb24pOgoJRXh0ZW5kIGV4aXN0aW5nIGhhY2sgb24gdGFyZ2V0IG5hbWUuCgkqIHhjb2ZmbGluay5jIChYQ09GRl9YVkVDUCk6IEV4dGVuZCBleGlzdGluZyBoYWNrIG9uCgl0YXJnZXQgbmFtZS4KCSogY29mZi10aWM1NHguYyAodGljb2YpOiBLZWVwIHVwIHRvIGRhdGUgd2l0aCBuZXcgZmllbGRzCglpbiBiZmRfY29mZl9iYWNrZW5kX2RhdGEuCgkqIGNvbmZpZy5iZmQ6IEFkZCBiZmRfcG93ZXJwY182NF9hcmNoIHRvIHRhcmdfYXJjaCBhbmQgZGVmaW5lCgl0YXJnX3NlbHZlY3MgdG8gaW5jbHVkZSByczYwMDBjb2ZmNjRfdmVjIGZvciByczYwMDAuCgkqIGNvbmZpZ3VyZS5pbjogQWRkIHJzNjAwMGNvZmY2NF92ZWMgY2FzZS4KCSogY3B1LXBvd2VycGMuYzogTmV3IGJmZF9hcmNoX2luZm9fdHlwZS4KCjIwMDAtMDQtMjQgIEplZmZyZXkgQSBMYXcgIChsYXdAY3lnbnVzLmNvbSkKCgkqIGNvbmZpZy5iZmQ6IE9ubHkgZGlzYWJsZSBlbGYzMi1ocHBhIHZlY3RvcnMsIG5vdCBhbGwgb2YgdGhlCglCU0QgYW5kIE9TRiBjb25maWd1cmF0aW9uIHN1cHBvcnQuICBQcm92aWRlIChkaXNhYmxlZCkgY2xhdXNlcwoJZm9yIFBBNjQgc3VwcG9ydC4KCSogY29uZmlndXJlLmluOiBBZGQgY2xhdXNlIGZvciBQQTY0IHN1cHBvcnQuCgkqIGNvbmZpZ3VyZTogUmVidWlsdC4KCgkqIHRhcmdldHMuYyAoYmZkX3RhcmdldF92ZWN0b3IpOiBBZGQgYmZkX2VsZjY0X2hwcGFfdmVjLgoJKGJmZF9lbGY2NF9ocHBhX3ZlYyk6IERlY2xhcmUuCgoJKiBNYWtlZmlsZS5hbSAoQkZENjRfQkFDS0VORFMpOiBBZGQgZWxmNjQtaHBwYS5sbwoJKEJGRDY0X0JBQ0tFTkRTX0NGSUxFUyk6IEFkZCBlbGY2NC1ocHBhLmMKCShlbGY2NC1ocHBhLmxvKTogQWRkIGRlcGVuZGVuY2llcy4KCSogTWFrZWZpbGUuaW46IFJlYnVpbHQuCgoJKiBlbGY2NC1ocHBhLmMsIGVsZjY0LWhwcGEuaDogTmV3IGZpbGVzIHdpdGggUEE2NCBzdXBwb3J0LgoKMjAwMC0wNC0yNCAgSmFzb24gRWNraGFyZHQgIDxqbGVAY3lnbnVzLmNvbT4KCgkqIGxpYmhwcGEuaCAoZGlzX2Fzc2VtYmxlXzE2KTogTmV3IGZ1bmN0aW9uLgoJKHBhX2FyY2gpOiBBZGRlZCBwYTIwdyBlbGVtZW50LgoKMjAwMC0wNC0yNCAgVWxyaWNoIERyZXBwZXIgIDxkcmVwcGVyQGN5Z251cy5jb20+CgoJKiBlbGYtYmZkLmg6IEFkZCBwcm90b3R5cGVzIGZvciBiZmRfZWxmMzJfd3JpdGVfcmVsb2NzLAoJYmZkX2VsZjMyX3NsdXJwX3JlbG9jX3RhYmxlLCBiZmRfZWxmNjRfd3JpdGVfcmVsb2NzLCBhbmQKCWJmZF9lbGY2NF9zbHVycF9yZWxvY190YWJsZS4KCgkqIGVsZmNvZGUuaCAoZWxmX3dyaXRlX3JlbG9jcywgZWxmX3NsdXJwX3JlbG9jX3RhYmxlKTogTmV3CglkZWZpbml0aW9ucyB0byBnZXQgZXh0ZXJuYWwgbmFtZXMuCgkoZWxmX3dyaXRlX3JlbG9jcyk6IFJlbmFtZWQgZnJvbSB3cml0ZV9yZWxvY3MgYW5kIG1ha2UgZ2xvYmFsLgoJKGVsZl9zbHVycF9yZWxvY190YWJsZSk6IE1ha2UgZ2xvYmFsLgoJKF9iZmRfZWxmLHNpemVfaW5mbyk6IFVzZSBlbGZfd3JpdGVfcmVsb2NzIGluc3RlYWQgb2Ygd3JpdGVfcmVsb2NzLgoKCSogYXJjaGl2ZS5jIChocHV4X3VpZF9naWRfZW5jb2RlKTogTmV3IGZ1bmN0aW9uLgoJKGJmZF9hcl9oZHJfZnJvbV9maWxlc3lzdGVtKTogVXNlIGl0IGlmIEhQVVhfTEFSR0VfQVJfSURTIGlzCglkZWZpbmVkIGFuZCB0aGUgSUQgaXMgZ3JlYXRlciB0aGFuIDk5OTk5LgoJKGJmZF9nZW5lcmljX3N0YXRfYXJjaF9lbHQpOiBJZiBIUFVYX0xBUkdFX0FSX0lEUyBpcyBkZWZpbmVkIGRlY29kZQoJc3BlY2lhbCB1aWQvZ2lkIGZpZWxkcyBpbnRvIDMyIGJpdCB2YWx1ZXMuCgoyMDAwLTA0LTIxICBNYXR0aGV3IEdyZWVuICA8bXJnQGN5Z251cy5jb20+CgoJKiBjb25maWcuYmZkOiBBZGQgTmV0QlNEL3NwYXJjNjQgc3VwcG9ydC4KCjIwMDAtMDQtMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQGN5Z251cy5jb20+CgkgICAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgkgICAgVGltb3RoeSBXYWxsIDx0d2FsbEBjeWdudXMuY29tPgoJICAgIEppbSBXaWxzb24gIDx3aWxzb25AY3lnbnVzLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChBTExfTUFDSElORVMpOiBBZGQgY3B1LWlhNjQubG8uCgkoQUxMX01BQ0hJTkVTX0NGSUxFUyk6IEFkZCBjcHUtaWE2NC5jLgoJKEJGRDY0X0JBQ0tFTkRTKTogQWRkIGVsZjY0LWlhNjQubG8uCgkoQkZENjRfQkFDS0VORFNfQ0ZJTEVTKTogQWRkIGVsZjY0LWlhNjQuYy4KCShjcHUtaWE2NC5sbywgZWxmNjQtaWE2NC5sbyk6IE5ldyBydWxlcy4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgkqIGFyY2h1cmVzLmMgKGVudW0gYmZkX2FyY2hpdGVjdHVyZSk6IEFkZCBiZmRfYXJjaF9pYTY0LgoJKGJmZF9pYTY0X2FyY2gpOiBEZWNsYXJlLgoJKGJmZF9hcmNodXJlc19saXN0KTogQWRkIGJmZF9pYTY0X2FyY2guCgkqIGJmZC1pbjIuaDogUmVidWlsZC4KCSogY29uZmlnLmJmZDogKGlhNjQqLSotbGludXgtZ251KiwgaWE2NCotKi1lbGYqKTogTmV3IHRhcmdldHMuCgkqIGNvbmZpZ3VyZTogUmVidWlsZC4KCSogY29uZmlndXJlLmhvc3Q6IChpYTY0LSotbGludXgqKTogTmV3IGhvc3QuCgkqIGNvbmZpZ3VyZS5pbiAoYmZkX2VsZjY0X2lhNjRfbGl0dGxlX3ZlYywgYmZkX2VsZjY0X2lhNjRfYmlnX3ZlYywKCWJmZF9lZmlfYXBwX2lhNjRfdmVjLCBiZmRfZWZpX2FwcF9pYTY0X3ZlYyk6IE5ldyB2ZWN0b3JzLgoJKiBlbGYuYyAocHJlcF9oZWFkZXJzKTogQWRkIGJmZF9hcmNoX2lhNjQuCgkqIGxpYmJmZC5oOiBSZWJ1aWxkLgoJKiByZWxvYy5jOiBBZGQgSUEtNjQgcmVsb2NhdGlvbnMuCgkqIHRhcmdldHMuYyAoYmZkX2VsZjY0X2lhNjRfbGl0dGxlX3ZlYywgYmZkX2VsZjY0X2lhNjRfYmlnX3ZlYyk6CglEZWNsYXJlLgoJKGJmZF90YXJnZXRfdmVjdCk6IEFkZCBiZmRfZWxmNjRfaWE2NF9saXR0bGVfdmVjLgoJKiBjcHUtaWE2NC1vcGMuYywgY3B1LWlhNjQuYywgZWxmNjQtaWE2NC5jOiBOZXcgZmlsZXMuCgoyMDAwLTA0LTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogZWxmMzItZDMwdi5jIChiZmRfZWxmX2QzMHZfcmVsb2MpOiBEb24ndCBtb2RpZnkgc2VjdGlvbgoJY29udGVudHMgd2hlbiBwZXJmb3JtaW5nIGEgcGFydGlhbCBsaW5rLgoJKGJmZF9lbGZfZDMwdl9yZWxvY18yMSk6IExpa2V3aXNlLgoKMjAwMC0wNC0yMCAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmMzItaTM4Ni5jIChlbGZfaTM4Nl9yZWxvY2F0ZV9zZWN0aW9uKTogUmVzdHJpY3QgMTk5OC0xMi0xMAoJcGF0Y2ggdG8gc3ltYm9scyBkZWZpbmVkIGJ5IGEgc2hhcmVkIG9iamVjdC4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFNpbWlsYXJseS4KCjIwMDAtMDQtMTkgIE1pY2hhZWwgU29rb2xvdiAgPG1zb2tvbG92QGl2YW4uSGFyaGFuLk9SRz4KCglLJlIgY29tcGlsZXIgZml4ZXMuCgkqIGR3YXJmMi5jIChjb25jYXRfZmlsZW5hbWUpOiBBdm9pZCBzdHJpbmcgbGl0ZXJhbCBjb25jYXRlbmF0aW9uLgoJKiBpZWVlLmMgKGllZWVfZ2V0X3N5bXRhYik6IERvbid0IGluaXRpYWxpc2UgdW5pb24gaW4gc3RydWN0LgoKMjAwMC0wNC0xMSAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQkZENjRfQkFDS0VORFMpOiBNZW50aW9uIGNvZmYtaWE2NC5sby4KCShCRkQ2NF9CQUNLRU5EU19DRklMRVMpOiBNZW50aW9uIGNvZmYtaWE2NC5jCgkoY29mZi1pYTY0LmxvKTogQWRkIGRlcGVuZGVuY3kuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb2ZmLWlhNjQuYzogTmV3IGZpbGUuCgkqIGVmaS1hcHAtaWEzMi5jOiBEaXR0by4KCSogZWZpLWFwcC1pYTY0LmM6IERpdHRvLgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hcmNoX21hY2hfaG9vayk6IEhhbmRsZSBJQTY0TUFHSUMuCgkoY29mZl9zZXRfZmxhZ3MpOiBEaXR0by4KCShjb2ZmX3dyaXRlX29iamVjdF9jb250ZW50cykgW0lBNjRdOiBTZXQgbWFnaWMgbnVtYmVyIHRvIFpNQUdJQy4KCSogY29uZmlnLmJmZCAoaVszNDU2XTg2LSotbGludXgtZ251Kik6IE1lbnRpb24gYmZkX2VmaV9hcHBfaWEzMl92ZWMuCgkqIGNvbmZpZ3VyZS5pbiAoZWxmKTogSGFuZGxlIGJmZF9lZmlfYXBwX2lhMzIgYW5kIGJmZF9lZmlfYXBwX2lhNjRfdmVjLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGxpYnBlaS5oIChHRVRfT1BUSERSX0lNQUdFX0JBU0UpOiBOZXcgbWFjcm8uCgkoUFVUX09QVEhEUl9JTUFHRV9CQVNFKTogRGl0dG8uCgkoR0VUX09QVEhEUl9TSVpFX09GX1NUQUNLX1JFU0VSVkUpOiBEaXR0by4KCShQVVRfT1BUSERSX1NJWkVfT0ZfU1RBQ0tfUkVTRVJWRSk6IERpdHRvLgoJKEdFVF9PUFRIRFJfU0laRV9PRl9TVEFDS19DT01NSVQpOiBEaXR0by4KCShQVVRfT1BUSERSX1NJWkVfT0ZfU1RBQ0tfQ09NTUlUKTogRGl0dG8uCgkoR0VUX09QVEhEUl9TSVpFX09GX0hFQVBfUkVTRVJWRSk6IERpdHRvLgoJKFBVVF9PUFRIRFJfU0laRV9PRl9IRUFQX1JFU0VSVkUpOiBEaXR0by4KCShHRVRfT1BUSERSX1NJWkVfT0ZfSEVBUF9DT01NSVQpOiBEaXR0by4KCShQVVRfT1BUSERSX1NJWkVfT0ZfSEVBUF9DT01NSVQpOiBEaXR0by4KCShHRVRfUERBVEFfRU5UUlkpOiBEaXR0by4KCSogcGVpZ2VuLmMgKF9iZmRfcGVpX3N3YXBfYW91dGhkcl9pbikgW0NPRkZfV0lUSF9QRVA2NF06IERvbid0IHJlYWQKCWRhdGFfc3RhcnQuICBVc2UgYWJvdmUgbWFjcm9zIHRvIHJlYWQgZmllbGRzIHRoYXQgYXJlIDY0IGJpdCB3aWRlIGZvcgoJQ09GRl9XSVRIX1BFUDY0LiAgRG9uJ3QgdHJ1bmNhdGUgZW50cnkgYW5kIHRleHRfc3RhcnQgdG8gMzIgYml0cy4KCShfYmZkX3BlaV9zd2FwX2FvdXRoZHJfb3V0KSBbUEVJX0ZPUkNFX01JTklNVU1fQUxJR05NRU5UXTogRm9yY2UKCUZpbGVBbGlnbm1lbnQgYW5kIFNlY3Rpb25BbGlnbm1lbnQgdG8gbWluaW11bSBhbGlnbm1lbnQgaWYgdGhleQoJYXJlIHplcm8uCgkoX2JmZF9wZWlfc3dhcF9hb3V0aGRyX291dCkgW1BFSV9ERUZBVUxUX1RBUkdFVF9TVUJTWVNURU1dOiBTZXQKCVN1YnN5c3RlbSB0byBkZWZhdWx0IFBFSV9ERUZBVUxUX1RBUkdFVF9TVUJTWVNURU0uCgkoX2JmZF9wZWlfc3dhcF9hb3V0aGRyX291dCkgW0NPRkZfV0lUSF9QRVA2NF06IERvbid0IHNldCBkYXRhX3N0YXJ0LgoJVXNlIGFib3ZlIG1hY3JvcyB0byB3cml0ZSBmaWVsZHMgdGhhdCBhcmUgNjQgYml0IHdpZGUgZm9yCglDT0ZGX1dJVEhfUEVQNjQuCgkocGVfcHJpbnRfcGRhdGEpOiBTZXQgUERBVEFfUk9XX1NJWkUgdG8gMyo4IGZvciBDT0ZGX1dJVEhfUEVQNjQsCgk1KjQgb3RoZXJ3aXNlLiAgVGhpcyBzaG91bGQgYmUgcmlnaHQgZm9yIElBLTMyIGFuZCBJQS02NCwgYnV0IG1heQoJYmUgd3JvbmcgZm9yIHBsYXRmb3Jtcy4gIFVzZSBQREFUQV9ST1dfU0laRSBpbnN0ZWFkIG9mIGhhcmRjb2RlZAoJdmFsdWUgb2YgMjAgYnl0ZXMuICBNb2RpZnkgcHJpbnRpbmcgZm9yIENPRkZfV0lUSF9QRVA2NCB0byBwcmludAoJYmVnaW4gYWRkcmVzcywgZW5kIGFkZHJlc3MsIGFuZCB1bndpbmQgaW5mbyBhZGRyZXNzIG9ubHkuICBVc2UKCUdFVF9QREFUQV9FTlRSWSgpIHRvIHJlYWQgLnBkYXRhIGVudHJpZXMuICBVc2UgZnByaW50Zl92bWEoKSB0bwoJcHJpbnQgYWRkcmVzc2VzLgoJKHRibCk6IEFkZCBTRUNUSU9OLCBSRUwzMiwgUkVTRVJWRUQxLCBNSVBTX0pNUEFERFIxNiwgRElSNjQsIGFuZAoJSElHSDNBREogcmVsb2NhdGlvbiBuYW1lcy4KCShfYmZkX3BlX3ByaW50X3ByaXZhdGVfYmZkX2RhdGEpOiBQcmludCBTdWJzeXN0ZW0gbmFtZSBpbiBsZWdpYmxlIGZvcm0uCgkqIHRhcmdldHMuYzogRGVjbGFyZSBiZmRfZWZpX2FwcF9pYTMyX3ZlYyBhbmQKCWJmZF9lZmlfYXBwX2lhNjRfdmVjLgoJKGJmZF90YXJnZXRfdmVjdG9yKTogTWVudGlvbiBiZmRfZWZpX2FwcF9pYTMyX3ZlYyBhbmQKCWJmZF9lZmlfYXBwX2lhNjRfdmVjLgoKMjAwMC0wNC0xNyAgVGltb3RoeSBXYWxsICA8dHdhbGxAY3lnbnVzLmNvbT4KCgkqIGJmZC1pbjIuaDogQWRkIHByb3RvdHlwZXMgZm9yIHRpYzU0eCBsb2FkIHBhZ2UgYWNjZXNzLgoJKiBiZmQtaW4uaDogUmVnZW5lcmF0ZS4KCSogY29mZi10aWM1NHguYzogQWRkIGxvYWQgcGFnZSBmdW5jdGlvbnM7IGFsbG93IGJmZF9hcmNoX3Vua25vd24KCWluIGN1c3RvbWl6ZWQgX3NldF9hcmNoX21hY2ggZnVuY3Rpb24uCgkqIGNvZmZjb2RlLmggKGNvZmZfc2V0X2FsaWdubWVudF9ob29rKTogU2V0IHNlY3Rpb24gbG9hZCBwYWdlIGlmCgl0aGUgYXBwcm9wcmlhdGUgbWFjcm8gaXMgZGVmaW5lZC4KCSh3cml0ZV9vYmplY3RfY29udGVudHMpOiBSZWFkIHNlY3Rpb24gbG9hZCBwYWdlLgoKMjAwMC0wNC0xMyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIGVsZjMyLWhwcGEuaDogVXBkYXRlIGNvcHlyaWdodCBkYXRlLgoKCSogZWxmMzItZnIzMC5jIChmcjMwX2VsZl9pMjBfcmVsb2MpOiBEb24ndCB1c2UgVSBzdWZmaXguCgkqIGVsZjMyLW1pcHMuYyAoX2JmZF9taXBzX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogQW5kIGhlcmUuCgoJKiBlbGYzMi1kMzB2LmMgKE1BWDMyKTogRG9uJ3QgdXNlIExMIHN1ZmZpeC4KCShNSU4zMik6IERlZmluZSBpbiB0ZXJtcyBvZiBNQVgzMi4KCShiZmRfZWxmX2QzMHZfcmVsb2MpOiBNYWtlIHJlbG9jYXRpb24gYSBiZmRfc2lnbmVkX3ZtYS4KCgkqIGNvZmYtYTI5ay5jIChTSUdOX0VYVEVORF9IV09SRCk6IFJlcGxhY2Ugd2l0aCBtb3JlIGNvbmNpc2UKCWV4cHJlc3Npb24uCgoJKiBwZWljb2RlLmggKHBlX0lMRl9idWlsZF9hX2JmZCk6IFJlbW92ZSBVTCBmcm9tIGhleCBjb25zdGFudHMuCgoyMDAwLTA0LTEyICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZGVwLWluLnNlZDogTWF0Y2ggc3BhY2UgYmVmb3JlIGZpbGUgbmFtZSwgbm90IGFmdGVyLgoJKiBNYWtlZmlsZS5hbTogUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCSogcmVsb2MuYyAoX2JmZF9yZWxvY2F0ZV9jb250ZW50cyk6IEluIGNvbXBsYWluX292ZXJmbG93X2JpdGZpZWxkCgljYXNlLCBhbGxvdyBhZGRyZXNzIHdyYXAtYXJvdW5kIHN0dXBpZGx5IHJlbW92ZWQgMjAwMC0wMy0xNy4gIFNpZ24KCWV4dGVuZCB3aXRob3V0IGFuIGlmIHN0YXRlbWVudC4KCjIwMDAtMDQtMTEgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBjb2ZmLW1pcHMuYyAobWlwc19ncHJlbF9yZWxvYyk6IFRlc3QgZm9yIDE2IGJpdCByYW5nZSB1c2luZwoJc2lnbmVkIHF1YW50aXRlcy4KCSogZWxmMzItbWlwcy5jIChncHJlbDE2X3dpdGhfZ3ApOiBMaWtld2lzZS4KCSogZWxmMzItaHBwYS5jIChlbGYzMl9ocHBhX2JmZF9maW5hbF9saW5rX3JlbG9jYXRlKTogVGVzdCByYW5nZQoJaGVyZSB1c2luZyAtMHg0MDAwMCwgbm90IChpbnQpMHhmZmZjMDAwMC4KCShlbGYzMl9ocHBhX3NpemVfb2Zfc3R1Yik6IExpa2V3aXNlLgoKMjAwMC0wNC0xMSAgVGltb3RoeSBXYWxsICA8dHdhbGxAY3lnbnVzLmNvbT4KCgkqIGNvZmYtdGljNTR4LmM6IE5vdyBidWlsZHMgd2l0aCBhbGwgdGFyZ2V0cy4KCSogTWFrZWZpbGUuYW06IEFkZCBjb2ZmL3RpYzU0eC5oIHRvIGNvZmYtdGljNTR4Lm8gZGVwZW5kZW5jaWVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29mZmNvZGUuaCAoY29mZl9zZXRfYXJjaF9tYWNoX2hvb2spOiBFbGltaW5hdGUgd2FybmluZyBvbgoJdW5pdGlhbGl6ZWQgdmFyaWFibGUuCgoyMDAwLTA0LTA3ICBBbmRyZXcgQ2FnbmV5ICA8Y2FnbmV5QGIxLmN5Z251cy5jb20+CgoJKiBjb25maWd1cmUuaW4gKFdBUk5fQ0ZMQUdTKTogU2V0IHRvIC1XIC1XYWxsIGJ5IGRlZmF1bHQuICBBZGQKCS0tZW5hYmxlLWJ1aWxkLXdhcm5pbmdzIG9wdGlvbi4KCSogTWFrZWZpbGUuYW0gKEFNX0NGTEFHUywgV0FSTl9DRkxBR1MpOiBBZGQgZGVmaW5pdGlvbnMuCgkqIE1ha2VmaWxlLmluLCBjb25maWd1cmU6IFJlLWdlbmVyYXRlLgoKMjAwMC0wNC0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIHJlbG9jLmM6IEFkZCBCRkRfUkVMT0NfQVJNX1BDUkVMX0JMWCBhbmQKCUJGRF9SRUxPQ19USFVNQl9QQ1JFTF9CTFguCgoJKiBlbGYzMi1hcm0uaCAoZWxmMzJfYXJtX2ZpbmFsX2xpbmtfcmVsb2NhdGUpOiBIYW5kbGUKCVJfQVJNX1hQQzI1IGFuZCBSX0FSTV9USE1fUEMyMi4KCgkqIGVsZmFybS1uYWJpLmMgKGVsZjMyX2FybV9ob3d0b18pOiBGaXggZGVmaW5pdGlvbnMgb2YKCVJfQVJNX1hQQzI1IGFuZCBSX0FSTV9USE1fWFBDMjIuCgkoZWxmMzJfYXJtX3JlbG9jX21hcCk6IE1ha2UgQkZEX1JFTE9DX3tBUk18VEhVTUJ9X1BDUkVMX0JMWCB0bwoJUl9BUk1fW1hQQzI1fFRITV9YUEMyMl0uCgoJKiBlbGZhcm0tb2FiaS5jOiBEZWZpbmUgT0xEX0FSTV9BQkkgYW5kIGNoYW5nZSBpbmNsdWRlIGZyb20KCWVsZi9hcm0tb2FiaS5oIHRvIGVsZi9hcm0uaAoKCSogTWFrZWZpbGUuYW06IEZpeCBkZXBlbmRlbmN5IGZvciBlbGZhcm0tb2FiaS5jCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCjIwMDAtMDQtMDYgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckBzZWFkb2cuY3lnbnVzLmNvbT4KCgkqIGVsZmNvcmUuaCAoZWxmX2NvcmVfZmlsZV9wKTogcHJlc2VydmUgdmFsdWUgb2YgdGRhdGEgYXQgZW50cnksCglhbmQgcmVzdG9yZSBpdCBvbiBmYWlsdXJlLiAgUmVsZWFzZSBuZXdseSBhbGxvY2F0ZWQgdGRhdGEgb24KCWZhaWx1cmUuCgoyMDAwLTA0LTA3ICBKaW0gV2lsc29uICA8d2lsc29uQGN5Z251cy5jb20+CgoJKiBkd2FyZjIuYyAoc3RydWN0IGR3YXJmMl9kZWJ1Zyk6IE5ldyBmaWVsZCBkd2FyZl9saW5lX3NpemUuCgkoZGVjb2RlX2xpbmVfaW5mbyk6IFNldCBpdC4gIFJlcG9ydCBlcnJvciBpZiB1bml0LT5saW5lX29mZnNldCBpcwoJZXF1YWwgdG8gb3IgbGFyZ2VyIHRoYW4gaXQuCgoyMDAwLTA0LTA3ICBUaW1vdGh5IFdhbGwgIDx0d2FsbEBjeWdudXMuY29tPgoKCSogdGFyZ2V0cy5jOiBBZGRlZCB2ZWNzIGZvciB0aWM1NHguCgkqIHJlbG9jLmM6IEFkZGVkIHJlbG9jcyBmb3IgdGljNTR4LgoJKiBsaWJiZmQuaDogUmVnZW5lcmF0ZWQuCgkqIGNvbmZpZ3VyZTogQWRkIFRJIENPRkYgdmVjcyBmb3IgdGljNTR4LgoJKiBjb25maWd1cmUuaW46IERpdHRvLgoJKiBjb25maWcuYmZkICh0YXJnX2NwdSk6IFJlY29nbml6ZSBuZXcgdGljNTR4IHRhcmdldC4KCSogY29mZmNvZGUuaCAoY29mZl9zbHVycF9zeW1ib2xfdGFibGUpOiBBZGRpdGlvbnMgZm9yIFRJIENPRkYgaGFuZGxpbmcuCgkqIGJmZC1pbjIuaDogQWRkIHRpYzU0eCB0YXJnZXQgYW5kIHJlbG9jYXRpb25zLgoJKiBNYWtlZmlsZS5hbSwgTWFrZWZpbGUuaW46IEFkZCB0aWM1NHggdGFyZ2V0LgoJKiBhcmNodXJlcy5jIChiZmRfYXJjaHVyZXNfbGlzdCk6IEFkZCB0aWM1NHggdGFyZ2V0LgoJKiBjb2ZmLXRpYzU0eC5jOiBOZXcuCgkqIGNwdS10aWM1NHguYzogTmV3LgoKMjAwMC0wNC0wNiAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHNlYWRvZy5jeWdudXMuY29tPgoKCSogZWxmY29yZS5oIChlbGZfY29yZV9maWxlX3ApOiBjYWxsIGJhY2tlbmRfb2JqZWN0X3Agd2hpY2gKCXRoZXJlYnkgZ2V0cyBhbiBvcHBvcnR1bml0eSB0byB1cGRhdGUgdGhlIGFyY2gvbWFjaGluZSB0eXBlLgoKMjAwMC0wNC0wNiAgVGltb3RoeSBXYWxsICA8dHdhbGxAY3lnbnVzLmNvbT4KCgkqIGNvZmZjb2RlLmggKGNvZmZfc2x1cnBfc3ltYm9sX3RhYmxlKTogSGFuZGxlIENfU1RBVExBQiBzdG9yYWdlCgljbGFzcy4gIEhhbmRsZSBTRUNfQ0xJTksgYW5kIFNFQ19CTE9DSyBmbGFncy4KCSogc2VjdGlvbi5jOiBBZGQgU0VDX0NMSU5LIGFuZCBTRUNfQkxPQ0sgZmxhZ3MuCgkqIGJmZC1pbjIuaDogQWRkIFNFQ19DTElOSyBhbmQgU0VDX0JMT0NLIGZsYWdzLgoKMjAwMC0wNC0wNiAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGVsZjMyLWFybS5oIChlbGYzMl9hcm1fc2V0X3ByaXZhdGVfZmxhZ3MpOiBPbmx5IGNoZWNrIGZvcgoJRUZfSU5URVJXT1JLIGlmIHRoaXMgaXMgYW4gdW5rbm93biBFQUJJLgoJKGVsZjMyX2FybV9tZXJnZV9wcml2YXRlX2JmZF9kYXRhKTogQ2hlY2sgRUFCSSB2ZXJzaW9uCgludW1iZXJzLiAgT25seSBjaGVjayBFRl94eHggZmxhZ3MgaWYgdGhlIEVBQkkgdmVyc2lvbiBudW1iZXIKCWlzIHVua25vd24uCgkoZWxmMzJfYXJtX2NoZWNrX3ByaXZhdGVfYmZkX2RhdGEpOiBPbmx5IGNoZWNrIEVGX3h4eCBmbGFncwoJaWYgdGhlIEVBQkkgdmVyc2lvbiBudW1iZXIgaXMgdW5rbm93bi4KCShlbGYzMl9hcm1fcHJpbnRfcHJpdmF0ZV9iZmRfZGF0YSk6IE9ubHkgZGVjb2RlIEVGX3h4eCBmbGFncwoJaWYgdGhlIEVBQkkgdmVyc2lvbiBudW1iZXIgaXMgdW5rbm93bi4KCjIwMDAtMDQtMDUgIEoib3JuIFJlbm5lY2tlIDxhbXlsYWFyQGN5Z251cy5jby51az4KCgkqIHJlbG9jLmMgKF9iZmRfcmVsb2NhdGVfY29udGVudHMpOiBBZGQgQkZEX1JFTE9DX1NIX0xPT1BfU1RBUlQgYW5kCglCRkRfUkVMT0NfU0hfTE9PUF9FTkQuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9ob3d0b190YWIpOiBDaGFuZ2Ugc3BlY2lhbF9mdW5jIHRvCglzaF9lbGZfaWdub3JlX3JlbG9jIGZvciBhbGwgZW50cmllcyB0aGF0IHNoX2VsZl9yZWxvYyB1c2VkIHRvIGlnbm9yZS4KCUFkZCBlbnRyaWVzIGZvciBSX1NIX0xPT1BfU1RBUlQgYW5kIFJfU0hfTE9PUF9FTkQuCgkoc2hfZWxmX3JlbG9jX2xvb3ApOiBOZXcgZnVuY3Rpb24uCgkoc2hfZWxmX3JlbG9jKTogTm8gbmVlZCB0byB0ZXN0IGZvciBhbHdheXMtdG8tYmUtaWdub3JlZCByZWxvY3MKCWFueSBtb3JlLgoJKHNoX3JlbCk6IEFkZCBlbnRyaWVzIGZvciBCRkRfUkVMT0NfU0hfTE9PUF97U1RBUlQsRU5EfS4KCShzaF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IEhhbmRsZSBCRkRfUkVMT0NfU0hfTE9PUF97U1RBUlQsRU5EfS4KCSogYmZkLWluMi5oLCBsaWJiZmQuaDogUmVnZW5lcmF0ZS4KCjIwMDAtMDQtMDQgIEFsYW4gTW9kcmEgIDxhbGFuQGxpbnV4Y2FyZS5jb20uYXU+CgoJKiBwby9iZmQucG90OiBSZWdlbmVyYXRlLgoKCSogTWFrZWZpbGUuYW06IFJlbW92ZSBleHRyYW5lb3VzIG1rZGVwIGNvbW1lbnQuCgkoTUtERVApOiBVc2UgZ2NjIC1NTSByYXRoZXIgdGhhbiBta2RlcC4KCShERVApOiBRdW90ZSB3aGVuIHBhc3NpbmcgdmFycyB0byBzdWItbWFrZS4gIEFkZCB3YXJuaW5nCgltZXNzYWdlIHRvIGVuZC4KCShERVAxKTogUmV3cml0ZSBmb3IgImdjYyAtTU0iLgoJKENMRUFORklMRVMpOiBBZGQgREVQMi4KCVVwZGF0ZSBkZXBlbmRlbmNpZXMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwMC0wNC0wMyAgS2V2aW4gQnVldHRuZXIgIDxrZXZpbmJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogQWRkZWQgY29yZWZpbGUgc3VwcG9ydCBmb3IgQUlYIDQuMy4gIEluIHBhcnRpY3VsYXIsCglBSVhfQ09SRV9EVU1QWF9DT1JFIHdpbGwgYmUgZGVmaW5lZCBpbiBhZGRpdGlvbiB0byBBSVhfQ09SRSB3aGVuCgljb21waWxpbmcgcnM2MDAwLWNvcmUuYy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDAtMDQtMDMgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGNhY2hlLmMgKGJmZF9vcGVuX2ZpbGUpOiBVbmxpbmsgdGhlIG91dHB1dCBmaWxlIG9ubHkgaWYKCWl0IGhhcyBub24temVybyBzaXplLgoKMjAwMC0wNC0wMSAgS2VuIEJsb2NrIFVTRyAgPGJsb2NrQHprMy5kZWMuY29tPgoKCSogZWxmNjQtYWxwaGEuYyAoZWxmNjRfYWxwaGFfcmVsb2NhdGVfc2VjdGlvbik6IERvbid0IGVtaXQKCXJlbGF0aXZlIHJlbG9jYXRpb25zIGZvciBub24tbG9hZGVkIHNlY3Rpb25zIGluIHNoYXJlZCBvYmplY3RzLgoJKGVsZjY0X2FscGhhX2NoZWNrX3JlbG9jcyk6IFNpbWlsYXJseS4KCjIwMDAtMDQtMDMgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogYW91dHguaCAoTkFNRShhb3V0LHJlbG9jX3R5cGVfbG9va3VwKSk6IEFkZCBCRkRfUkVMT0NfOCBhbmQKCUJGRF9SRUxPQ18xNiB0byBzd2l0Y2ggZm9yIGV4dGVuZGVkIHJlbG9jcy4KCShNWV9zd2FwX2V4dF9yZWxvY19pbik6IE5ldy4KCShNWV9zd2FwX2V4dF9yZWxvY19vdXQpOiBOZXcuCgkoTkFNRShhb3V0LHNsdXJwX3JlbG9jX3RhYmxlKSk6IFVzZSBNWV9zd2FwX2V4dF9yZWxvY19pbiByYXRoZXIKCXRoYW4gTkFNRShhb3V0LHN3YXBfZXh0X3JlbG9jX2luKSBmb3IgZXh0ZW5kZWQgcmVsb2NzLgoJKE5BTUUoYW91dCxzcXVpcnRfb3V0X3JlbG9jcykpOiBTaW1pbGFybHkgdXNlCglNWV9zd2FwX2V4dF9yZWxvY19vdXQuCgkoYW91dF9saW5rX3JlbG9jX2xpbmtfb3JkZXIpOiBVc2UgTVlfcHV0X2V4dF9yZWxvYyBpZiBkZWZpbmVkLgoKMjAwMC0wNC0wMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjb2ZmLWg4MzAwLmMgKGg4MzAwX3JlbG9jMTZfZXh0cmFfY2FzZXMpOiBBZGQgYnNyOjE2IC0+IGJzcjo4IHRvCgl0aGUgUl9QQ1JXT1JEX0IgY2FzZS4KCjIwMDAtMDMtMzEgIFRob21hcyBkZSBMZWxsaXMgIDx0ZGVsQHdycy5jb20+CgoJKiBzcmVjLmMgOiBTZXQgQ0hVTksgc2l6ZSB0byAxNiBieXRlcyB0byBwcmV2ZW50IGRvd25sb2FkIGZhaWx1cmVzCglvbiBzb21lIHRhcmdldHMuCgkqIGloZXguYyA6IERpdHRvLgoKMjAwMC0wMy0zMCAgRG9uYWxkIExpbmRzYXkgIDxkbGluZHNheUBjeWdudXMuY29tPgoKCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9nZW5lcmljX3JlbG9jKTogbmV3IGZ1bmN0aW9uLiAgQWxsCglIT1dUTyByZWZlcmVuY2VzIHRvIGJmZF9lbGZfZ2VuZXJpY19yZWxvYywgdGhhdCBoYXZlCglwYXJ0aWFsX2lucGxhY2UgPT0gdHJ1ZSwgbm93IHVzZSB0aGUgbmV3IGZ1bmN0aW9uLiAgVGhlIGZ1bmN0aW9uCglpcyBiYXNlZCBvbiB0aGUgcmVjZW50IHJld3JpdGUgb2YgbTMycl9lbGZfbG8xNl9yZWxvYygpLCBhbmQKCWV4dGVuZHMgaXRzIGZpeGVzIHRvIHRoZSBSX00zMlJfezE2LDI0LDMyfSByZWxvY3MuCglUaGUgbmV3IGxvZ2ljIGluIG0zMnJfZWxmX2xvMTZfcmVsb2MoKSBoYXMgYmVlbiByZW1vdmVkLCBhbmQKCWl0IGluc3RlYWQgY2FsbHMgdGhlIG5ldyByb3V0aW5lIHRvIG9idGFpbiB0aGF0IGZ1bmN0aW9uYWxpdHkuCgoyMDAwLTAzLTI3ICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogZWxmMzItYXZyLmMgKGVsZjMyX2F2cl9nY19tYXJrX2hvb2ssIGVsZjMyX2F2cl9nY19zd2VlcF9ob29rLAoJZWxmMzJfYXZyX2NoZWNrX3JlbG9jcywgYXZyX2ZpbmFsX2xpbmtfcmVsb2NhdGUsCgllbGYzMl9hdnJfcmVsb2NhdGVfc2VjdGlvbiwgYmZkX2VsZl9hdnJfZmluYWxfd3JpdGVfcHJvY2Vzc2luZywKCWVsZjMyX2F2cl9vYmplY3RfcCk6IEFkZCBwcm90b3R5cGVzLgoJKGVsZjMyX2F2cl9nY19tYXJrX2hvb2spOiBBZGQgZGVmYXVsdCBmb3IgaC0+cm9vdC50eXBlLgoJKGJmZF9lbGZfYXZyX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcpOiBNYWtlIHN0YXRpYy4KCjIwMDAtMDMtMjcgIERlbmlzIENoZXJ0eWtvdiAgPGRlbmlzY0BvdmVydGEucnU+CgoJKiBjcHUtYXZyLmM6IE5ldyBmaWxlLiAgQkZEIHN1cHBvcnQgcm91dGluZXMgZm9yIEFWUiBhcmNoaXRlY3R1cmUuCgkqIGFyY2h1cmVzLmMgKGJmZF9hcmNoaXRlY3R1cmUpOiBBZGQgQVZSIGFyY2hpdGVjdHVyZS4KCShiZmRfYXJjaHVyZXNfbGlzdCk6IEFkZCByZWZlcmVuY2UgdG8gQVZSIGFyY2hpdGVjdHVyZSBpbmZvLgoJKiBlbGYuYyAocHJlcF9oZWFkZXJzKTogSGFuZGxlIGJmZF9hcmNoX2F2ci4KCSogcmVsb2MuYzogQWRkIHZhcmlvdXMgQVZSIHJlbG9jYXRpb24gZW51bXMuCgkqIHRhcmdldHMuYyAoYmZkX2VsZjMyX2F2cl92ZWMpOiBEZWNsYXJlIGFuZCBhZGQgdG8gdGFyZ2V0IHZlY3RvcgoJbGlzdC4KCSogTWFrZWZpbGUuYW06IEFkZCBzdXBwb3J0IGZvciBBVlIgZWxmLgoJKiBjb25maWd1cmUuaW46IExpa2V3aXNlLgoJKiBjb25maWcuYmZkOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogVGhpcyB0b28uCgkqIGJmZC1pbjIuaDogQW5kIHRoaXMuCgkqIGxpYmJmZC5oOiBBbmQgdGhpcy4KCjIwMDAtMDMtMjQgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX21lcmdlX2luZF9zeW1ib2xzKTogQWRkIHByb3RvdHlwZS4KCShlbGY2NF9hbHBoYV9maW5kX3JlbG9jX2F0X29mcyk6IExpa2V3aXNlLgoKMjAwMC0wMy0xNyAgQWxhbiBNb2RyYSAgPGFsYW5AbGludXhjYXJlLmNvbS5hdT4KCgkqIHJlbG9jLmMgKGJmZF9jaGVja19vdmVyZmxvdyk6IEluIGNhc2UgY29tcGxhaW5fb3ZlcmZsb3dfYml0ZmllbGQsCglmbGFnIGFuIG92ZXJmbG93IGlmIHRoZSBiaXRmaWVsZCBpcyBvdXRzaWRlIC0yKipuIHRvIDIqKm4tMS4gIFRoZQoJYWxsb3dhYmxlIHJhbmdlIHVzZWQgdG8gYmUgLTIqKihuLTEpIHRvIDIqKm4tMS4KCSogcmVsb2MuYyAoX2JmZF9yZWxvY2F0ZV9jb250ZW50cyk6IFNhbWUgaGVyZS4gIEFsc28gcmVwbGFjZQoJImJvb2xlYW4gb3ZlcmZsb3ciIHdpdGggImJmZF9yZWxvY19zdGF0dXNfdHlwZSBmbGFnIi4KCjIwMDAtMDMtMTQgIERvdWcgRXZhbnMgIDxkamVAY2FzZXkudHJhbnNtZXRhLmNvbT4KCgkqIGVsZjMyLW0zMnIuYyAobTMycl9lbGZfbG8xNl9yZWxvYyk6IFJld3JpdGUuCgoyMDAwLTAzLTE0ICBLYXp1IEhpcmF0YSAgPGthenVAaHhpLmNvbT4KCgkqIHJlbG9jMTYuYyAoYmZkX2NvZmZfcmVsb2MxNl9yZWxheF9zZWN0aW9uKTogQ291bnQgdGhlIHRvdGFsIG51bWJlcgoJb2Ygc2hyaW5rcyBwcm9wZXJseSwgaW5jbHVkaW5nIHRoZSBsYXN0IHJlbG9jLgoKMjAwMC0wMy0xMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGh4aS5jb20+CgoJKiBjb2ZmLWg4MzAwLmMgKGg4MzAwX3JlbG9jMTZfZXh0cmFfY2FzZXMpOiBGaXggdGhlIHNhbml0eQoJY2hlY2sgZm9yIFJfTU9WTDIuCgoyMDAwLTAzLTExICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogaWVlZS5jIChpZWVlX2FyY2hpdmVfcCk6IFJldHVybiBiZmRfZXJyb3Jfd3JvbmdfZm9ybWF0IG9uCglhIGZvcm1hdCBtaXNtYXRjaCByYXRoZXIgdGhhbiBhbiAiZXJyb3IiIGZyb20gYmZkX3JlYWQgc3VjaCBhcwoJYmZkX2Vycm9yX2ZpbGVfdHJ1bmNhdGVkLgoKMjAwMC0wMy0xMCAgR2VvZmYgS2VhdGluZyAgPGdlb2Zma0BjeWdudXMuY29tPgoKCSogZWxmMzItbWlwcy5jIChfYmZkX21pcHNfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBEbyBwcm9wZXIKCXNpZ24tZXh0ZW5zaW9uIGFuZCBiaWctZW5kaWFuIGNvbXBlbnNhdGlvbiBmb3IKCVJfTUlQU182NCBldmVuIGluIGxkIC1yLgoKMjAwMC0wMy0xMCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BjeWdudXMuY29tPgoKCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9uZXh0X3JlbG9jYXRpb24pOiBSZW5hbWUgZnJvbQoJbWlwc19lbGZfbmV4dF9sbzE2X3JlbG9jYXRpb24sIGFuZCBnZW5lcmFsaXplIHRvIGxvb2sKCWZvciBhbnkgcmVsb2NhdGlvbiB0eXBlLgoJKGVsZl9taXBzX2hvd3RvX3RhYmxlKTogTWFrZSBSX01JUFNfUEMxNiBwY3JlbF9vZmZzZXQuCgkoZWxmX21pcHNfZ251X3JlbF9oaTE2KTogSG93dG8gZm9yIFJfTUlQU19HTlVfUkVMX0hJMTYuCgkoZWxmX21pcHNfZ251X3JlbF9sbzE2KTogSG93dG8gZm9yIFJfTUlQU19HTlVfUkVMX0xPMTYuCgkoZWxmX21pcHNfZ251X3JlbDE2X3MyKTogSG93dG8gZm9yIFJfTUlQU19HTlVfUkVMMTZfUzIuCgkoZWxmX21pcHNfZ251X3BjcmVsNjQpOiBIb3d0byBmb3IgUl9NSVBTX1BDNjQuCgkoZWxmX21pcHNfZ251X3BjcmVsMzIpOiBIb3d0byBmb3IgUl9NSVBTX1BDMzIuCgkoYmZkX2VsZjMyX2JmZF9yZWxvY190eXBlX2xvb2t1cCk6IEFkZCBuZXcgcmVsb2NzLgoJKG1pcHNfcnR5cGVfdG9faG93dG8pOiBMaWtld2lzZS4KCShtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IEhhbmRsZSBuZXcgcmVsb2NzLgoJKF9iZmRfbWlwc19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IFJFTF9ISTE2L1JFTF9MTzE2IHJlbG9jcwoJYXJlIHBhaXJlZC4gIFRoZSBhZGRlbmQgZm9yIFJfTUlQU19HTlVfUkVMMTZfUzIKCWlzIHNoaWZ0ZWQgcmlnaHQgdHdvIGJpdHMuCgoyMDAwLTAzLTEwICBBbGFuIE1vZHJhICA8YWxhbkBsaW51eGNhcmUuY29tLmF1PgoKCSogcmVsb2MuYyAoYmZkX3BlcmZvcm1fcmVsb2NhdGlvbik6IFVuZG8gZW1hY3MgZm9ybWF0dGluZyBvZgoJY29tbWVudCwgYW5kIGVuc3VyZSBpdCBkb2Vzbid0IGhhcHBlbiBhZ2Fpbi4KCShiZmRfaW5zdGFsbF9yZWxvY2F0aW9uKTogU2FtZSBoZXJlLgoJKF9iZmRfcmVsb2NhdGVfY29udGVudHMpOiBEb24ndCBib3RoZXIgYXNzaWduaW5nIHVudXNlZCBzaWdubWFzawoJc2hpZnQgcmVzdWx0LiAgRml4IHR5cG9zIGluIGNvbW1lbnRzLgoJUmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UgdGhyb3VnaG91dCBmaWxlLgoKMjAwMC0wMy0wNyAgRG91ZyBFdmFucyAgPGRqZUBjYXNleS50cmFuc21ldGEuY29tPgoKCSogcmVsb2MuYyAocmVsb2NfaG93dG9fc3RydWN0KTogRml4IHBhcnRpYWxfaW5wbGFjZSBjb21tZW50LgoJKiBiZmQtaW4yLmg6IFJlYnVpbGQuCgoyMDAwLTAzLTA2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogcGVpY29kZS5oIChzdHJ1Y3QgcGVfSUxGX3ZhcnMpOiBBZGQgc3ltX3B0cl90YWJsZSBhbmQKCXN5bV9wdHJfcHRyIGZpZWxkcy4KCShTSVpFT0ZfSUxGX1NZTV9QVFJfVEFCTEUpOiBEZWZpbmUuCgkoU0laRU9GX0lMRl9TVFJJTkdTKTogUmVkZWZpbmUuCgkocGVfSUxGX21ha2VfYV9zeW1ib2wtcmVsb2MpOiBOZXcgZnVuY3Rpb24uICBDcmVhdGVzIGEgc3ltYm9sCglyZWxhdGl2ZSByZWxvYywgYXMgb3Bwb3NlZCB0byBhIHNlY3Rpb24gcmVsYXRpdmUgcmVsb2MuCgkocGVfSUxGX21ha2VfYV9zeW1ib2wpOiBTZXQgdGhlIGNsYXNzIG9mIGxvY2FsIHN5bWJvbHMgdG8gQ19TVEFUCglub3QgQ19MQUJFTC4KCUFkZCBsZW5ndGggb2Ygc3ltYm9sJ3MgcHJlZml4IHRvIHN0cmluZyBwb2ludGVyLgoJU3RvcmUgYSBwb2ludGVyIHRvIHRoZSBzeW1ib2wgaW4gdGhlIHN5bWJvbCBwb2ludGVyIHRhYmxlLgoJKHBlX0lMRl9idWlsZF9hX2JmZCk6IERvIG5vdCBidWlsZCAuaWRhdGEkMiBvciAuaWRhdGEkNy4KCUluaXRpYWxpc2UgdGhlIHN5bWJvbCBwb2ludGVyIHRhYmxlLgoJU3RvcmUgdGhlIGhpbnQgaW4gdGhlIEhpbnQvTmFtZSB0YWJsZS4KCU1ha2UgdGhlIGp1bXAgcmVsb2MgYmUgc3ltYm9sIHJlYWx0aXZlLCBub3Qgc2VjdGlvbiByZWxhdGl2ZS4KCUNyZWF0ZSBhbiBpbXBvcnQgc3ltYm9sIGZvciBpbXBvcnRlZCBjb2RlLgoKMjAwMC0wMy0wNiAgQ2F0aGVyaW5lIE1vb3JlICA8Y2xtQGN5Z251cy5jb20+CgoJKiBlbGYuYyAoc3dhcF9vdXRfc3ltcyk6ICBDaGVjayBmb3IgbnVsbCB0eXBlX3B0ci4KCjIwMDAtMDMtMDEgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCSogYW91dC10YXJnZXQuaCAoTVkod3JpdGVfb2JqZWN0X2NvbnRlbnRzKSk6IFJlbW92ZSB1bnVzZWQKCWFuZCB1bnVzYWJsZSAiI2lmIENIT09TRV9SRUxPQ19TSVpFIi4KCSogcGM1MzItbWFjaC5jIChNWSh3cml0ZV9vYmplY3RfY29udGVudHMpKTogRGl0dG8uCgkqIG5ldGJzZC5oIChNWSh3cml0ZV9vYmplY3RfY29udGVudHMpKTogRGl0dG8uCgkqIGhwMzAwaHB1eC5jIChNWSh3cml0ZV9vYmplY3RfY29udGVudHMpKTogRGl0dG8uCgkqIGZyZWVic2QuaCAoTVkod3JpdGVfb2JqZWN0X2NvbnRlbnRzKSk6IERpdHRvLgoJKiBhb3V0LXRpYzMwLmMgKHRpYzMwX2FvdXRfd3JpdGVfb2JqZWN0X2NvbnRlbnRzKTogRGl0dG8uCgoyMDAwLTAyLTI5ICBILkouIEx1ICA8aGpsQGdudS5vcmc+CgoJKiBwZWljb2RlLmggKGp0YWIpOiBNYWtlIGl0IHN0YXRpYy4KCgkqIGNvZmYtc2guYyAoc2hfYWxpZ25fbG9hZF9zcGFuKTogRGVjbGFyZWQgaWYgQ09GRl9XSVRIX1BFIGlzCglkZWZpbmVkIGFuZCBDT0ZGX0lNQUdFX1dJVEhfUEUgaXMgbm90IGRlZmluZWQuCgkoX2JmZF9zaF9hbGlnbl9sb2FkX3NwYW4pOiBEZWZpbmVkIGFzIHNoX2FsaWduX2xvYWRfc3BhbiBpZgoJQ09GRl9XSVRIX1BFIGlzIGRlZmluZWQgYW5kIENPRkZfSU1BR0VfV0lUSF9QRSBpcyBub3QgZGVmaW5lZC4KCjIwMDAtMDMtMDEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBjb2ZmLWFybS5jIChiZmRfYXJtX3Byb2Nlc3NfYmVmb3JlX2FsbG9jYXRpb24pOiBNYWtlCgknc3ltbmR4JyBzaWduZWQgdG8gcHJldmVudCBjb21waWxlIHRpbWUgd2FybmluZy4KCgkqIGNvZmYtbWNvcmUuYzogUmVtb3ZlIHVudXNlZCBwcm90b3R5cGUgZm9yIHBlX29iamVjdF9wLgoKCSogY29mZi1zaC5jOiBBZGQgIiNpZm5kZWYgQ09GRl9JTUFHRV9XSVRIX1BFIiBhcm91bmQgc3RhdGljCglmdW5jdGlvbnMgdGhhdCBhcmUgbm90IHVzZWQgd2hlbiBDT0ZGX0lNQUdFX1dJVEhfUEUgaXMKCWRlZmluZWQuCgkoc3RydWN0IHNoX29wY29kZSk6IENoYW5nZSB0eXBlIG9mICdmbGFncycgZmllbGQgdG8gdW5zaWduZWQKCWxvbmcgc28gdGhhdCBpdCBjYW4gaG9sZCB0aGUgVVNFU0FTIGZsYWcuCgoJKiBjb2ZmY29kZS5oIChzdHlwX3RvX3NlY19mbGFncyk6IEluaXRpYWxpc2UgJ3RhcmdldF9uYW1lJy4KCgkqIGVsZi1tMTAzMDAuYyAobW4xMDMwMF9lbGZfcmVsYXhfc2VjdGlvbik6IEluaXRpYWxpc2UKCSdzeW1fc2VjJy4KCgkqIGVsZjMyLWkzNzAuYzogQWRkIEFUVFJJQlVURV9VTlVTRUQgdG8gdW51c2VkIGZ1bmN0aW9uCglwYXJhbWV0ZXJzLgoJUmVtb3ZlIHVudXN1ZWQgdmFyaWFibGVzIGFuZCBjb2RlLgoJKGVsZl9iYWNrZW5kX2FkZF9zeW1ib2xfaG9vayk6IEZpeCBwcm90b3R5cGUuCgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX2djX3N3ZWVwX2hvb2spOiBJbml0aWFsaXNlICdzZ290JyBhbmQKCSdzcmVsZ290Jy4KCgkqIGVsZjMyLW1jb3JlLmMgKG1jb3JlX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogSW5pdGlhbGlzZQoJJ29sZGluc3QnLgoKCSogZWxmMzItbWlwcy5jOiBBZGQgQVRUUklCVVRFX1VOVVNFRCB0byB1bnVzZWQgZnVuY3Rpb24KCXBhcmFtZXRlcnMuCglSZW1vdmUgdW51c3VlZCB2YXJpYWJsZXMgYW5kIGNvZGUuCgkoZWxmX2JhY2tlbmRfYWRkX3N5bWJvbF9ob29rKTogRml4IHByb3RvdHlwZS4KCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogVXNlICdmbGFncycuCgoJKiBlbGZsaW5rLmggKGVsZl9iZmRfbGlua19hZGRfc3ltYm9scyk6IEFkZCBBVFRSSUJVVEVfVU5VU0VECgl0byB1bnVzZWQgZnVuY3Rpb24gcGFyYW1ldGVyLgoKCSogcGUtbWlwcy5jOiBBZGQgQVRUUklCVVRFX1VOVVNFRCB0byB1bnVzZWQgZnVuY3Rpb24KCXBhcmFtZXRlcnMuCglVc2UgRU1QVFlfSE9XVE8gdG8gaW5pdGlhbGlzZSBlbXB0eSBob3d0byBzbG90cy4KCVJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoKCSogcGVpY29kZS5oIChwZV9JTEZfYnVpbGRfYV9iZmQpOiBJbml0aWFsaXNlIGlkNi4KCjIwMDAtMDMtMDEgIEguSi4gTHUgIDxoamxAZ251Lm9yZz4KCgkqIGFvdXR4LmggKGFvdXRfbGlua19pbnB1dF9zZWN0aW9uX3N0ZCk6IFBhc3MgInRydWUiIHRvCgl0aGUgdW5kZWZpbmVkX3N5bWJvbCBjYWxsYmFjay4KCShhb3V0X2xpbmtfaW5wdXRfc2VjdGlvbl9leHQpOiBMaWtld2lzZS4KCSogYm91dC5jIChnZXRfdmFsdWUpOiBMaWtld2lzZS4KCSogY29mZi1hMjlrLmMgKGNvZmZfYTI5a19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGNvZmYtYWxwaGEuYyAoYWxwaGFfZWNvZmZfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbik6CglMaWtld2lzZS4KCShhbHBoYV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGNvZmYtYXJtLmMgKGNvZmZfYXJtX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29mZi1pOTYwLmMgKGNvZmZfaTk2MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGNvZmYtbWNvcmUuYyAoY29mZl9tY29yZV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGNvZmYtbWlwcy5jIChtaXBzX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29mZi1wcGMuYyAoY29mZl9wcGNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBjb2ZmLXNoLmMgKHNoX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29mZi10aWM4MC5jIChjb2ZmX3RpYzgwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29mZmxpbmsuYyAoX2JmZF9jb2ZmX2dlbmVyaWNfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYtbTEwMjAwLmMgKG1uMTAyMDBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmLW0xMDMwMC5jIChtbjEwMzAwX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWQxMHYuYyAoZWxmMzJfZDEwdl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWZyMzAuYyAoZnIzMF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1ocHBhLmMgKGVsZjMyX2hwcGFfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1pMzcwLmMgKGkzNzBfZWxmX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbTMyci5jIChtMzJyX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLW1jb3JlLmMgKG1jb3JlX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXNoLmMgKHNoX2VsZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLXY4NTAuYyAodjg1MF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2xpbmtfcmVjb3JkX2R5bmFtaWNfc3ltYm9sKTogTGlrZXdpc2UuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfb3V0cHV0X2V4dHN5bSk6IExpa2V3aXNlLgoJKiBwZS1taXBzLmMgKGNvZmZfcGVfbWlwc19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIHJlbG9jLmMgKGJmZF9nZW5lcmljX2dldF9yZWxvY2F0ZWRfc2VjdGlvbl9jb250ZW4pOiBMaWtld2lzZS4KCSogcmVsb2MxNi5jIChfYmZkX3BwY194Y29mZl9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgoJKiBlbGYtaHBwYS5oIChlbGZfaHBwYV9yZWxvY2F0ZV9zZWN0aW9uKTogUGFzcyAiZmFsc2UiIHRvIHRoZQoJdW5kZWZpbmVkX3N5bWJvbCBjYWxsYmFjayB3aGVuIGJ1aWxkaW5nIHNoYXJlZCBsaWJyYXJ5IHdpdGgKCS1Cc3ltYm9saWMgYW5kIHVuZGVmaW5lZCBzeW1ib2xzIGFyZSBhbGxvd2VkLiBPdGhlcndpc2UsIHBhc3MKCSJ0cnVlIi4KCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjMyLWkzODYuYyAoZWxmX2kzODZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1tNjhrLmMgKGVsZl9tNjhrX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmMzItbWlwcy5jIChtaXBzX2VsZl9jYWxjdWxhdGVfcmVsb2NhdGlvbik6IExpa2V3aXNlLgoJKGVsZjMyX21pcHNfZ2V0X3JlbG9jYXRlZF9zZWN0aW9uX2NvbnRlbnQpOiBMaWtld2lzZS4KCSogZWxmMzItcHBjLmMgKHBwY19lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBlbGYzMi1zcGFyYy5jIChlbGYzMl9zcGFyY19yZWxvY2F0ZV9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGVsZjY0LWFscGhhLmMgKGVsZjY0X2FscGhhX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogZWxmNjQtc3BhcmMuYyAoc3BhcmM2NF9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoKMjAwMC0wMi0yOCAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgcnVsZXMgdG8gYnVpbGQgcGVbaV0te3NofG1pcHN9LmxvIG9iamVjdHMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKCSogY29uZmlndXJlLmluOiBBZGQgc3VwcG9ydCBmb3IgbWlwcyBhbmQgc2ggcGUgdmVjdG9ycy4KCSogY29uZmlndXJlOiByZWdlbmVyYXRlLgoKCSogY29uZmlnLmJmZDogQWRkIHN1cHBvcnQgZm9yIGFybS13aW5jZSwgbWlwcy1wZSBhbmQgc2gtcGUKCXRhcmdldHMuCgoJKiB0YXJnZXRzLmM6IEFkZCBtaXBzIGFuZCBzaCBwZSB2ZWN0b3JzLgoKCSogbGlicGVpLmggKGNvZmZfZmluYWxfbGlua19wb3N0c2NyaXB0KTogT25seSBkZWZpbmUgaWYgbm90CglhbHJlYWR5IGRlZmluZWQuCgoJKiBjb2ZmY29kZS5oOiBBZGQgc3VwcG9ydCBmb3IgV2luQ0UgbWFnaWMgbnVtYmVycy4KCgkqIHBlaWdlbi5jIChwZV9wcmludF9yZWxvYyk6IFVwZGF0ZSBjb21tZW50IGFuZCByZWFycmFuZ2UKCWFwcGVuZGluZyBvZiBuZXdsaW5lIGNoYXJhY3Rlci4KCgkqIHBlaWNvZGUuaDogQWRkIHN1cHBvcnQgZm9yIEltYWdlIExpYnJhcnkgRm9ybWF0LgoJKHBlX0lMRl92YXJzKTogU3RydWN0dXJlIGNvbnRhaW5pbmcgZGF0YSB1c2VkIGJ5IElMRiBjb2RlLgoJKHBlX0lMRl9tYWtlX2Ffc2VjdGlvbik6IE5ldyBmdW5jdGlvbi4gIENyZWF0ZSBhIHNlY3Rpb24gYmFzZWQKCW9uIElMRiBkYXRhLgoJKHBlX0lMRl9tYWtlX2FfcmVsb2MpOiBOZXcgZnVuY3Rpb24uICBDcmVhdGUgYSByZWxvYyBiYXNlZCBvbgoJSUxGIGRhdGEuCgkocGVfSUxGX21ha2VfYV9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uICBDcmVhdGUgYSBzeW1ib2wgYmFzZWQKCW9uIElMRiBkYXRhLgoJKHBlX0lMRl9zYXZlX3JlbG9jcyk6IE5ldyBmdW5jdGlvbi4gIFN0b3JlIHRoZSByZWxvY3MgY3JlYXRlZAoJYnkgcGVfSUxGX21ha2VfYV9yZWxvYyBpbiBhIHNlY3Rpb24uCgkocGVfSUxGX2J1aWxkX2FfYmZkKTogTmV3IGZ1bmN0aW9uLiAgQ3JlYXRlIGEgQkZEIGRlc2NyaWJpbmcKCWFuIElMRiBvYmplY3QuCgkocGVfSUxGX29iamVjdF9wKTogTmV3IGZ1bmN0aW9uLiAgUmV0dXJuIGEgYmZkX3RhcmdldCBwb2ludGVyCglmb3IgYW4gSUxGIG9iamVjdC4KCShwZV9iZmRfb2JqZWN0X3ApOiBJZiBhbiBJTEYgb2JqZWN0IGlzIGRldGVjdGVkIGNhbGwKCXBlX0lMRl9vYmplY3RfcCBvbiBpdC4KCgkqIGNvZmYtYXJtLmM6IEFkZCBzdXBwb3J0IGZvciBXaW5DRSByZWxvY3Mgd2hpY2ggYXJlIGRpZmZlcmVudAoJZnJvbSBub3JtYWwgQVJNIENPRkYgcmVsb2NzLgoJKiBwZS1hcm0uYzogVW5zZXQgVEFSR0VUX1VOREVSU0NPUkUgZm9yIGEgV2luQ0UgdGFyZ2V0LgoKCSogY29mZi1zaC5jOiBBZGQgc3VwcG9ydCBmb3Igc2gtcGUgdGFyZ2V0LgoJKiBwZS1zaC5jOiBOZXcgZmlsZS4gIFN1cHBvcnQgY29kZSBmb3Igc2gtcGUgdGFyZ2V0LgoJKiBwZWktc2guYzogTmV3IGZpbGUuICBTdXBwb3J0IGNvZGUgZm9yIHNoLXBlIHRhcmdldC4KCgkqIHBlLW1pcHMuYzogTmV3IGZpbGUuICBTdXBwb3J0IGNvZGUgZm9yIG1pcHMtcGUgdGFyZ2V0LgoJKiBwZWktbWlwcy5jOiBOZXcgZmlsZS4gIFN1cHBvcnQgY29kZSBmb3IgbWlwcy1wZSB0YXJnZXQuCgoyMDAwLTAyLTI3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGVsZjMyLXNwYXJjLmMgKGVsZjMyX3NwYXJjX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBEb24ndCBidW1wCglhcmNoaXRlY3R1cmUgaWYgdGhlIG9iamVjdCBjYXVzaW5nIHRoZSBidW1wIGlzIGR5bmFtaWMuCgkqIGVsZjY0LXNwYXJjLmMgKHNwYXJjNjRfZWxmX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBMaWtld2lzZSwKCWFuZCBhbHNvIGRvbid0IGl0IGZvciBtZW1vcnkgb3JkZXJpbmcuCgkoc3BhcmM2NF9lbGZfd3JpdGVfcmVsb2NzKTogVGFrZSBzcmNfcmVsYSBvdXQgb2YgdGhlIGxvb3AuCgoyMDAwLTAyLTI3ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQHplbWJ1LmNvbT4KCgkqIGR3YXJmMi5jIChyZWFkX2FiYnJldnMpOiBVc2UgX3Jhd19zaXplIGRpcmVjdGx5IHJhdGhlciB0aGFuCgljYWxsaW5nIGJmZF9nZXRfc2VjdGlvbl9zaXplX2JlZm9yZV9yZWxvYy4KCShkZWNvZGVfbGluZV9pbmZvKTogTGlrZXdpc2UuCgkoX2JmZF9kd2FyZjJfZmluZF9uZWFyZXN0X2xpbmUpOiBMaWtld2lzZS4KCjIwMDAtMDItMjcgIEVsaSBaYXJldHNraWkgIDxlbGl6QGlzLmVsdGEuY28uaWw+CgoJKiBNYWtlZmlsZS5hbSAoc3RhbXAtbGliKTogVXNlICQoTElCVE9PTCkgLS1jb25maWcgdG8gZ2V0IHRoZQoJbmFtZSBvZiB0aGUgbGlidG9vbCBkaXJlY3RvcnkuCgkqIE1ha2VmaWxlLmluOiBSZWJ1aWxkLgoKMjAwMC0wMi0yNSAgUm9kbmV5IEJyb3duIChSb2RuZXlCcm93bkBwbXNjLmNvbSkKCgkqIHNvbS5jIChTT01fSE9XVE8pOiBEZWZpbmUuCgkoc29tX2hwcGFfaG93dG9fdGFibGUpOiBVc2UgaXQuCgoyMDAwLTAyLTI1ICBBbGV4YW5kcmUgT2xpdmEgIDxvbGl2YUBsc2QuaWMudW5pY2FtcC5icj4KCgkqIGNvbmZpZy5iZmQ6IEVuYWJsZSA2NCBiaXQgc3VwcG9ydCBmb3IgR05VL0xpbnV4L3NwYXJjLgoKCSogY29uZmlnLmJmZDogRW5hYmxlIDY0IGJpdCBzdXBwb3J0IGZvciBTb2xhcmlzNysvc3BhcmMuCgoyMDAwLTAyLTI0ICBDYXRoZXJpbmUgTW9vcmUgIDxjbG1AY3lnbnVzLmNvbT4KCgkqIHNvbS5jIChzb21fbWlzY19zeW1ib2xfaW5mbyk6ICBBZGQgZmllbGQKCXNlY29uZGFyeV9kZWYuCgkoc29tX2JmZF9kZXJpdmVfbWlzY19zeW1ib2xfaW5mbyk6ICBJbml0aWFsaXplCglzZWNvbmRhcnlfZGVmLgoJKHNvbV9idWlsZF9hbmRfd3JpdGVfc3ltYm9sX3RhYmxlKTogS2VlcCB0cmFjawoJb2Ygc2Vjb25kYXJ5X2RlZiBmaWVsZC4KCShzb21fc2x1cnBfc3ltYm9sX3RhYmxlKTogU2V0IEJTRl9XRUFLIHN5bWJvbCBmbGFnCglpZiBzZWNvbmRhcnlfZGVmIGZpZWxkIGlzIHNldC4KCShzb21fYmZkX2FyX3dyaXRlX3N5bWJvbF9zdHVmZik6IEluaXRpYWxpemUKCXNlY29uZGFyeV9kZWYuCgoyMDAwLTAyLTIzICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekB3b3JsZG5ldC5mcj4KCgkqIGR3YXJmMi5jIChyZWFkX2FkZHJlc3MpOiBSZWFkIDE2LWJpdHMgYWRkcmVzc2VzLgoJKHBhcnNlX2NvbXBfdW5pdCk6IEFjY2VwdCBhZGRyX3NpemUgPT0gMi4KCjIwMDAtMDItMjMgIEFsYW4gTW9kcmEgIDxhbGFuQHNwcmkubGV2ZWxzLnVuaXNhLmVkdS5hdT4KCgkqIGJmZC1pbi5oOiBVcGRhdGUgY29weXJpZ2h0IGRhdGUuCgoyMDAwLTAyLTIzICBMaW5hcyBWZXBzdGFzIDxsaW5hc0BsaW5hcy5vcmc+CgoJKiBjcHUtaTM3MC5jOiBOZXcgZmlsZS4KCSogZWxmMzItaTM3MC5jOiAgTmV3IGZpbGUuCgkqIGFyY2h1cmVzLmMgKGVudW0gYmZkX2FyY2hpdGVjdHVyZSk6IEFkZCBiZmRfYXJjaF9pMzcwLgoJKGJmZF9pMzcwX2FyY2gpOiBOZXcuCgkoYmZkX2FyY2h1cmVzX2xpc3QpOiBBZGQgYmZkX2kzNzBfYXJjaC4KCSogZWxmLmMgKHByZXBfaGVhZGVycyk6IEFkZCBiZmRfYXJjaF9pMzcwLgoJKiBNYWtlZmlsZS5hbTogQWRkIHN1cHBvcnQgZm9yIElCTSAzNzAgZWxmLgoJKiBjb25maWcuYmZkOiBMaWtld2lzZS4KCSogY29uZmlndXJlLmluOiBMaWtld2lzZS4KCSogbGliYmZkLmggKGJmZF9yZWxvY19jb2RlX3JlYWxfbmFtZXMpOiBMaWtld2lzZS4KCSogcmVsb2MuYyAoYmZkX3JlbG9jX2NvZGVfdHlwZSk6IExpa2V3aXNlLgoJKiB0YXJnZXRzLmM6IExpa2V3aXNlLgoKCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKMjAwMC0wMi0yMiAgSWFuIExhbmNlIFRheWxvciAgPGlhbkB6ZW1idS5jb20+CgoJKiBlbGYzMi1pMzg2LmMgKGVsZl9pMzg2X2luZm9fdG9faG93dG9fcmVsKTogR2l2ZSBhIHdhcm5pbmcgZm9yCglpbnZhbGlkIHJlbG9jYXRpb24gdHlwZXMsIGFuZCBjaGFuZ2UgdGhlbSB0byBSXzM4Nl9OT05FLgoKMjAwMC0wMi0yMiAgSC5KLiBMdSAgPGhqbEBnbnUub3JnPgoKCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBJZiBhIHZlcnNpb24gc3ltYm9sIGlzCglub3QgZGVmaW5lZCwgZG9uJ3QgYWRkIGEgc2Vjb25kIEVMRl9WRVJfQ0hSLgoKCSogZWxmbGluay5oIChlbGZfYmZkX2ZpbmFsX2xpbmspOiBDYWxsIG91dHB1dF9leHRzeW0gZm9yIGdsb2JhbAoJc3ltYm9scyBjb252ZXJ0ZWQgdG8gbG9jYWwgc3ltYm9scyBldmVuIHdoZW4gc3RyaXBwaW5nIGFsbAoJc3ltYm9scy4KCShlbGZfbGlua19vdXRwdXRfZXh0c3ltKTogUHJvY2VzcyBnbG9iYWwgc3ltYm9scyBjb252ZXJ0ZWQgdG8KCWxvY2FsIHN5bWJvbHMgZXZlbiBpZiB0aGV5IGFyZSBiZWluZyBzdHJpcHBlZC4KCjIwMDAtMDItMjEgIEFsYW4gTW9kcmEgIDxhbGFuQHNwcmkubGV2ZWxzLnVuaXNhLmVkdS5hdT4KCgkqIGFyY2h1cmVzLmMgKGJmZF9vY3RldHNfcGVyX2J5dGUpOiBSZXR1cm4gdW5zaWduZWQgaW50LgoJKGJmZF9hcmNoX21hY2hfb2N0ZXRzX3Blcl9ieXRlKTogRGl0dG8uCgkqIGxpYmJmZC5jIChiZmRfcmVhZCwgYmZkX3NlZWspOiBRdWVsbCBzaWduZWQgdnMuIHVuc2lnbmVkCgljb21wYXJpc29uIHdhcm5pbmcuCgkqIHNlY3Rpb24uYyAoYmZkX2dldF9zZWN0aW9uX3NpemVfYmVmb3JlX3JlbG9jKTogUXVlbGwgc2lnbmVkCgl2cy4gdW5zaWduZWQgY29tcGFyaXNvbiB3YXJuaW5nLgoJKGJmZF9nZXRfc2VjdGlvbl9zaXplX2FmdGVyX3JlbG9jKTogU2FtZSBoZXJlLiAgRml4IHBhcmVudGhlc2VzIHRvby4KCSogdHJhZC1jb3JlLmMgKHRyYWRfdW5peF9jb3JlX2ZpbGVfcCk6IENvcnJlY3QgMjAwMC0wMS0yNwoJY2hhbmdlLiAgV2hhdCB3YXMgSSB0aGlua2luZz8KCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlLgoKCSogZWxmbGluay5oIChlbGZfZ2Nfc3dlZXApOiBTa2lwIG5vbi1lbGYgaW5wdXQgYmZkcy4KCShlbGZfZ2Nfc2VjdGlvbnMpOiBTYW1lIGhlcmUuCgkoZWxmX2djX2NvbW1vbl9maW5hbGl6ZV9nb3Rfb2Zmc2V0cyk6IEFuZCBoZXJlLgoKMjAwMC0wMi0yMSAgSWFuIExhbmNlIFRheWxvciAgPGlhbkB6ZW1idS5jb20+CgoJRUxGIEhQUEEgZG9lc24ndCB3b3JrIGF0IHByZXNlbnQ7IHJlbW92ZSBpdCB1bnRpbCBpdCBkb2VzLgoJKiBjb25maWcuYmZkOiBDb21tZW50IG91dCBzZXR0aW5nIHRhcmdfZGVmdmVjIHRvCgliZmRfZWxmMzJfaHBwYV92ZWMuCgkqIE1ha2VmaWxlLmFtOiBSZWJ1aWxkIGRlcGVuZGVuY2llcy4KCShCRkQzMl9CQUNLRU5EUyk6IFJlbW92ZSBlbGYzMi1ocHBhLmxvLgoJKEJGRDMyX0JBQ0tFTkRTX0NGSUxFUyk6IFJlbW92ZSBlbGYzMi1ocHBhLmMuCgkoU09VUkNFX0hGSUxFUyk6IFJlbW92ZSBlbGYzMi1ocHBhLmggYW5kIGhwcGFfc3R1YnMuaC4KCSogTWFrZWZpbGUuaW46IFJlYnVpbGQuCgkqIHRhcmdldHMuYyAoYmZkX3RhcmdldF92ZWN0b3IpOiBDb21tZW50IG91dCBiZmRfZWxmMzJfaHBwYV92ZWMuCgoyMDAwLTAyLTE4ICBHZW9mZiBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hcmNoX21hY2hfaG9vayk6IFVzZSBmcmVlKCksIGJlY2F1c2UgdGhlcmUKCWlzIG5vIGJmZF9mcmVlKCkuICBSZXZlcnQgYmZkX2ZyZWUgcGFydCBvZiBwcmV2aW91cyBjaGFuZ2UuCgoyMDAwLTAyLTE4ICBHZW9mZiBLZWF0aW5nICA8Z2VvZmZrQGN5Z251cy5jb20+CgoJKiBjb2ZmY29kZS5oIChjb2ZmX3NldF9hcmNoX21hY2hfaG9vayk6IERvbid0IHVzZSB2YXJpYWJsZS1zaXplCglhcnJheXMuCgkoY29mZl9jb21wdXRlX3NlY3Rpb25fZmlsZV9wb3NpdGlvbnMpOiBVc2UgYmZkX2ZyZWUgdG8gcGFpcgoJYmZkX21hbGxvYy4KCShjb2ZmX3dyaXRlX29iamVjdF9jb250ZW50cyk6IExpa2V3aXNlLgoKCSogY29mZi1yczYwMDAuYyAoeGNvZmZfaG93dG9fdGFibGVfMTYpOiBOZXcgdmFyaWFibGUuCgkoeGNvZmZfcnR5cGUyaG93dG8pOiBIYW5kbGUgMTYtYml0IHZhcmlhbnRzIG9mIDMyLWJpdCByZWxvY3MuCgoyMDAwLTAyLTE4ICBVbHJpY2ggRHJlcHBlciAgPGRyZXBwZXJAY3lnbnVzLmNvbT4KCgkqIGNvZmYtcnM2MDAwLmMgKFhDT0ZGQVJNQUdCSUcpOiBOZXcgbWFjcm8uCgkoeGNvZmZfYXJfZmlsZV9oZHJfYmlnKTogTmV3IHN0cnVjdHVyZS4KCShTSVpFT0ZfQVJfRklMRV9IRFJfQklHKTogTmV3IG1hY3JvLgoJKHhjb2ZmX2FyX2hkcl9iaWcpOiBOZXcgc3RydWN0dXJlLgoJKFNJWkVPRl9BUl9IRFJfQklHKTogTmV3IG1hY3JvLgoJKHhjb2ZmX2JpZ19mb3JtYXRfcCk6IE5ldyBtYWNyby4KCSh4Y29mZl9hcmRhdGFfYmlnKTogTmV3IG1hY3JvLgoJKGFyY2hfeGhkcl9iaWcpOiBOZXcgbWFjcm8uCgkoeGNvZmZfc2x1cnBfYXJtYXApOiBIYW5kbGUgbGFyZ2UgYXJjaGl2ZXMuCgkoeGNvZmZfYXJjaGl2ZV9wKTogRGV0ZWN0IGxhcmdlIGFyY2hpdmVzLgoJKHhjb2ZmX3JlYWRfYXJfaGRyKTogSGFuZGxlIGxhcmdlIGFyY2hpdmVzLgoJKHhjb2ZmX29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZSk6IEhhbmRsZSBsYXJnZSBhcmNoaXZlcy4KCSh4Y29mZl9nZW5lcmljX3N0YXRfYXJjaF9lbHQpOiBIYW5kbGUgbGFyZ2UgYXJjaGl2ZXMuCgkoeGNvZmZfd3JpdGVfYXJtYXBfb2xkKTogUmVuYW1lIGZyb20geGNvZmZfd3JpdGVfYXJtYXAuCgkoeGNvZmZfd3JpdGVfYXJtYXBfYmlnKTogTmV3IGZ1bmN0aW9uLgoJKHhjb2ZmX3dyaXRlX2FybWFwKTogTmV3IGZ1bmN0aW9uLCBkaXNwYXRjaCB0byBfb2xkIG9yIF9iaWcuCgkoeGNvZmZfd3JpdGVfYXJjaGl2ZV9jb250ZW50c19vbGQpOiBSZW5hbWUgZnJvbQoJeGNvZmZfd3JpdGVfYXJjaGl2ZV9jb250ZW50cy4KCSh4Y29mZl93cml0ZV9hcmNoaXZlX2NvbnRlbnRzX2JpZyk6IE5ldyBmdW5jdGlvbi4KCSh4Y29mZl93cml0ZV9hcmNoaXZlX2NvbnRlbnRzKTogTmV3IGZ1bmN0aW9uLCBkaXNwYXRjaCB0byBfb2xkIG9yCglfYmlnLgoKMjAwMC0wMi0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAY3lnbnVzLmNvbT4KCgkqIGVsZi1iZmQuaCAoc3RydWN0IGVsZl9saW5rX2hhc2hfdGFibGUpOiBSZW1vdmUgY29weV9pbmRpcmVjdAoJYW5kIGhpZGVfc3ltYm9sIG1lbWJlcnMuCgkoZWxmX2xpbmtfaGFzaF9jb3B5X2luZGlyZWN0KTogUmVtb3ZlLgoJKGVsZl9saW5rX2hhc2hfaGlkZV9zeW1ib2wpOiBSZW1vdmUuCgkoc3RydWN0IGVsZl9iYWNrZW5kX2RhdGEpOiBBZGQgZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wKCWFuZCBlbGZfYmFja2VuZF9oaWRlX3N5bWJvbC4KCShfYmZkX2VsZl9saW5rX2hhc2hfY29weV9pbmRpcmVjdCk6IERlY2xhcmUuCgkoX2JmZF9lbGZfbGlua19oYXNoX2hpZGVfc3ltYm9sKTogRGVjbGFyZS4KCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF9jb3B5X2luZGlyZWN0KTogUmVtb3ZlIHRhYmxlIGFyZ3VtZW50LgoJKF9iZmRfZWxmX2xpbmtfaGFzaF9oaWRlX3N5bWJvbCk6IExpa2V3aXNlLgoJKF9iZmRfZWxmX2xpbmtfaGFzaF90YWJsZV9pbml0KTogRG9uJ3QgaW5pdCBraWxsZWQgbWVtYmVycy4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBVc2UgdGhlIGJlZCBmdW5jdGlvbgoJcG9pbnRlcnMgbm90IGVsZl9saW5rX2hhc2hfe2NvcHlfaW5kaXJlY3QsaGlkZV9zeW1ib2x9LgoJKGVsZl9saW5rX2Fzc2lnbl9zeW1fdmVyc2lvbik6IExpa2V3aXNlLgoJKiBlbGZ4eC10YXJnZXQuaCAoZWxmX2JhY2tlbmRfY29weV9pbmRpcmVjdF9zeW1ib2wpOiBEZWZhdWx0LgoJKGVsZl9iYWNrZW5kX2hpZGVfc3ltYm9sKTogTGlrZXdpc2UuCgkoZWxmTk5fYmVkKTogVXBkYXRlIGZvciBuZXcgbWVtYmVycy4KCjIwMDAtMDItMTcgIEtldmluIEJ1ZXR0bmVyICA8a2V2aW5iQHJlZGhhdC5jb20+CgoJKiByczYwMDAtY29yZS5jIChDT1JFX0RBVEFfU0laRV9GSUVMRCwgQ09SRV9DT01NX0ZJRUxELCBTQVZFX0ZJRUxELAoJU1RBQ0tfRU5EX0FERFIpOiBEZWZpbmUgZm9yIG5ldyBjb3JlIGZpbGUgZm9ybWF0LgoJKExPQURFUl9PRkZTRVRfRklFTEQsIExPQURFUl9SRUdJT05fU0laRSwgQ09SRV9EVU1QKTogTmV3IGRlZmluZXMKCWZvciBoYW5kbGluZyB0aGUgdmFnYXJpZXMgb2YgdGhlIHZhcmlvdXMgY29yZSBmaWxlIHN0cnVjdHVyZXMgdXNlZAoJYnkgQUlYIG92ZXIgdGhlIHllYXJzLgoJKHJzNjAwMGNvZmZfY29yZV9wLCByczYwMDBjb2ZmX2NvcmVfZmlsZV9tYXRjaGVzX2V4ZWN1dGFibGUsCglSczZrQ29yRGF0YSk6IFVzZSBhYm92ZSBkZWZpbmVzIHRvIGFkYXB0IGNvZGUgdG8gdXNlIEFJWCA0LjMncwoJY29yZV9kdW1weCBzdHJ1Y3R1cmUuCgoyMDAwLTAyLTE3ICBKIm9ybiBSZW5uZWNrZSA8YW15bGFhckBjeWdudXMuY28udWs+CgoJKiBhcmNodXJlcy5jIChiZmRfbWFjaF9zaDIsIGJmZF9tYWNoX3NoX2RzcCk6IE5ldyBtYWNyb3MuCgkoYmZkX21hY2hfc2gzX2RzcCk6IExpa2V3aXNlLgoJKGJmZF9tYWNoX3NoNCk6IFJlaW5zdGF0ZS4KCShiZmRfZGVmYXVsdF9zY2FuKTogUmVjb2duaXplIDc0MTAsIDc3MDgsIDc3MjkgYW5kIDc3NTAuCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCSogY29mZi1zaC5jIChzdHJ1Y3Qgc2hfb3Bjb2RlKTogZmxhZ3MgaXMgbm8gbG9uZ2VyIHNob3J0LgoJKFVTRVNBUywgVVNFU0FTX1JFRywgVVNFU1I4LCBTRVRTQVMsIFNFVFNBU19SRUcpOiBOZXcgbWFjcm9zLgoJKHNoX29wY29kZTQxLCBzaF9vcGNvZGU0Mik6IEludGVncmF0ZSBhcyBzaF9vcGNvZGU0MS4KCShzaF9vcGNvZGUwMSwgc2hfb3Bjb2RlMDIsIHNoX29wY29kZTQwKTogQWRkIHNoLWRzcCBvcGNvZGVzLgoJKHNoX29wY29kZTQxLCBzaF9vcGNvZGU0LCBzaF9vcGNvZGU4MCk6IExpa2V3aXNlLgoJKHNoX29wY29kZXMpOiBObyBsb25nZXIgY29uc3QuCgkoc2hfZHNwX29wY29kZWYwLCBzaF9kc3Bfb3Bjb2RlZik6IE5ldyBhcnJheXMuCgkoc2hfaW5zbl91c2VzX3JlZyk6IENoZWNrIGZvciBVU0VTQVMgYW5kIFVTRVNSOC4KCShzaF9pbnNuX3NldHNfcmVnLCBzaF9pbnNuc19jb25mbGljdCk6IENoZWNrIGZvciBTRVRTQVMuCgkoX2JmZF9zaF9hbGlnbl9sb2FkX3NwYW4pOiBSZXR1cm4gZWFybHkgZm9yIFNINC4KCU1vZGlmeSBzaF9vcGNvZGVzIGxvb2t1cCB0YWJsZSBmb3Igc2gtZHNwIC8gc2gzLWRzcC4KCVRha2UgaW50byBhY2NvdW50IHRoYXQgZmllbGQgYiBvZiBhIHBhcmFsbGVsIHByb2Nlc3NpbmcgaW5zbgoJY291bGQgYmUgbWlzdGFrZW4gZm9yIGEgc2VwYXJhdGUgaW5zbi4KCSogY3B1LXNoLmMgKGFyY2hfaW5mb19zdHJ1Y3QpOiBOZXcgYXJyYXkgZWxlbWVudHMgZm9yCglzaDIsIHNoLWRzcCBhbmQgc2gzLWRzcC4KCVJlaW5zdGF0ZSBlbGVtZW50IGZvciBzaDQuCgkoU0gyX05FWFQsIFNIX0RTUF9ORVhULCBTSDNfRFNQX05FWFQpOiBOZXcgbWFjcm9zLgoJKFNINF9ORVhUKTogUmVpbnN0YXRlLgoJKFNIM19ORVhULCBTSDNFX05FWFQpOiBBZGp1c3QuCgkqIGVsZi1iZmQuaCAoX3NoX2VsZl9zZXRfbWFjaF9mcm9tX2ZsYWdzKTogRGVjbGFyZS4KCSogZWxmMzItc2guYyAoc2hfZWxmX3NldF9wcml2YXRlX2ZsYWdzKTogTmV3IGZ1bmN0aW9uLgoJKHNoX2VsZl9jb3B5X3ByaXZhdGVfZGF0YSwgc2hfZWxmX3NldF9tYWNoX2Zyb21fZmxhZ3MpOiBMaWtld2lzZS4KCShzaF9lbGZfbWVyZ2VfcHJpdmF0ZV9kYXRhKTogTmV3IGZ1bmN0aW9uLgoJKGVsZl9iYWNrZW5kX29iamVjdF9wLCBiZmRfZWxmMzJfYmZkX3NldF9wcml2YXRlX2JmZF9mbGFncyk6IERlZmluZS4KCShiZmRfZWxmMzJfYmZkX2NvcHlfcHJpdmF0ZV9iZmRfZGF0YSk6IERlZmluZS4KCShiZmRfZWxmMzJfYmZkX21lcmdlX3ByaXZhdGVfYmZkX2RhdGEpOiBDaGFuZ2UgdG8KCXNoX2VsZl9tZXJnZV9wcml2YXRlX2RhdGEuCgoyMDAwLTAyLTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEBjeWdudXMuY29tPgoKCSogZWxmLWJmZC5oIChzdHJ1Y3QgZWxmX2xpbmtfaGFzaF90YWJsZSk6IEFkZCBjb3B5X2luZGlyZWN0IGFuZAoJaGlkZV9zeW1ib2wgbWVtYmVycy4KCShlbGZfbGlua19oYXNoX2NvcHlfaW5kaXJlY3QpOiBOZXcuCgkoZWxmX2xpbmtfaGFzaF9oaWRlX3N5bWJvbCk6IE5ldy4KCSogZWxmbGluay5oIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBCcmVhayBvdXQgY29weSBmcm9tCglpbmRpcmVjdCBuZXcgbmV3IHN5bWJvbCB0byBlbGYuYy4KCShlbGZfbGlua19hc3NpZ25fc3ltX3ZlcnNpb24pOiBCcmVhayBvdXQgcHJpdmF0aXphdGlvbiBvZgoJbm9uLWV4cG9ydGVkIHN5bWJvbCB0byBlbGYuYy4KCSogZWxmLmMgKF9iZmRfZWxmX2xpbmtfaGFzaF9jb3B5X2luZGlyZWN0KTogTmV3LgoJKF9iZmRfZWxmX2xpbmtfaGFzaF9oaWRlX3N5bWJvbCk6IE5ldy4KCShfYmZkX2VsZl9saW5rX2hhc2hfdGFibGVfaW5pdCk6IEluaXQgY29weV9pbmRpcmVjdCBhbmQgaGlkZV9zeW1ib2wuCgoyMDAwLTAyLTEzICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQHplbWJ1LmNvbT4KCgkqIHNlY3Rpb24uYyAoX2JmZF9zdHJpcF9zZWN0aW9uX2Zyb21fb3V0cHV0KTogQWRkIGluZm8gcGFyYW1ldGVyLgoJSWYgaXQgcGFzc2VkIGFzIG5vbi1OVUxMLCB1c2UgaXQgdG8gY2hlY2sgd2hldGhlciBhbnkgaW5wdXQgQkZECgloYXMgYW4gaW5wdXQgc2VjdGlvbiB3aGljaCB1c2VzIHRoaXMgb3V0cHV0IHNlY3Rpb24uICBDaGFuZ2UgYWxsCgljYWxsZXJzLgoJKiBiZmQtaW4yLmg6IFJlYnVpbGQuCgoJKiBiZmQtaW4uaDogTW92ZSBkZWNsYXJhdGlvbnMgb2YgYmZkX2dldF9lbGZfcGhkcl91cHBlcl9ib3VuZCBhbmQKCWJmZF9nZXRfZWxmX3BoZHJzIGluIGZyb20gYmZkLWluMi5oLCBjb3JyZWN0aW5nIHBhdGNoIG9mCgkxOTk5LTExLTI5LgoJKiBiZmQtaW4yLmg6IFJlYnVpbGQuCgoyMDAwLTAyLTEwICBUaW1vdGh5IFdhbGwgIDx0d2FsbEBjeWdudXMuY29tPgoKCSogY29mZnN3YXAuaCAoY29mZl9zd2FwX3N5bV9pbik6IEFkZCBob29rIFNXQVBfU1lNX0lOX1BPU1QgdG8KCWFsbG93IGZpbmFsIG1vZGlmaWNhdGlvbnMgb2Ygc3dhcHBlZC1pbiBzeW1ib2wuCgkoY29mZl9zd2FwX3N5bV9vdXQpOiBEaXR0byB3aXRoIFNXQVBfU1lNX09VVF9QT1NULgoJKiBjb2ZmY29kZS5oIChjb2ZmX3dyaXRlX3JlbG9jcyk6IFVzZSBtYWNybwoJU0VDVElPTl9SRUxBVElWRV9BQlNPTFVURV9TWU1CT0xfUCBpZiBkZWZpbmVkIHRvIGRldGVybWluZSB3aGV0aGVyCglzeW1ib2wgaW5kZXggc2hvdWxkIGJlIHNldCB0byAtMS4KCjIwMDAtMDItMTAgIFRvc2hpeWFzdSBNb3JpdGEgKHRvc2hpLm1vcml0YUBzZWdhLmNvbSkKCgkqIGNvZmYtc2guYyAoVVNFUzFfUkVHLCBVU0VTMl9SRUcsIFNFVFMxX1JFRywgU0VUUzJfUkVHLAoJVVNFU0YxX1JFRywgVVNFU0YyX1JFRywgU0VUU0YxX1JFRywgU0VUU0YyX1JFRyk6IE5ldyBtYWNyb3MuCgkqIChzaF9pbnNuX3NldHNfcmVnLCBzaF9pbnNuX3NldHNfZnJlZyk6IE5ldyBwcm90b3R5cGVzLgoJKiAoc2hfaW5zbl9zZXRzX3JlZywgc2hfaW5zbl91c2VzX29yX3NldHNfcmVnLCBzaF9pbnNuc19zZXRzX2ZyZWcsCglzaF9pbnNuc191c2VzX29yX3NldHNfZnJlZyk6IE5ldyBmdW5jdGlvbnMuCgkqIChzaF9pbnNuX3VzZXNfcmVnLCBzaF9pbnNuX3VzZXNfZnJlZyk6IFVzZSBuZXcgbWFjcm9zLgoJKiAoc2hfaW5zbnNfY29uZmxpY3QpOiBVc2UgbmV3IGZ1bmN0aW9ucyBhbmQgbmV3IG1hY3JvcyB0bwoJZGV0ZWN0IGNvbmZsaWN0cyB3aGVuIHR3byBpbnN0cnVjdGlvbnMgYm90aCBzZXQgc2FtZSBpbnRlZ2VyIHJlZ2lzdGVycywKCWJvdGggc2V0IHNhbWUgZnAgcmVnaXN0ZXIsIGFuZCBib3RoIHNldCBzcGVjaWFsIHJlZ2lzdGVyLgoKMjAwMC0wMi0wOSAgVGltb3RoeSBXYWxsICA8dHdhbGxAY3lnbnVzLmNvbT4KCgkqIGNvZmZnZW4uYyAoY29mZl9yZWFsX29iamVjdF9wKTogU2V0IGFyY2gvbWFjaCBpbmZvIHByaW9yIHRvCglzd2FwcGluZyBpbiBzZWN0aW9ucywgc28gdGhhdCB0aGUgc3dhcHBpbmcgcm91dGluZXMgaGF2ZSBhY2Nlc3MgdG8KCXRoZSBhcmNoL21hY2ggaW5mby4KCjIwMDAtMDItMDggTWFyayBFbGJyZWNodCA8c25vd2JhbGwzQGJpZ2Zvb3QuY29tPgoKCSogY29mZi1nbzMyLmM6IFVwZGF0ZSBjb21tZW50LiBVcGRhdGUgY29weXJpZ2h0LgoKMjAwMC0wMS0yNyAgVGhvbWFzIGRlIExlbGxpcyAgPHRkZWxAd2luZHJpdmVyLmNvbT4KCgkqIHN5bXMuYyAoYmZkX2RlY29kZV9zeW1jbGFzcykKCVR3byBuZXcgY2xhc3MgY2hhcmFjdGVycyB3ZXJlIGFkZGVkIC0gJ1YnIGFuZCAndicuICBUaGUKCW1lYW5pbmcgb2YgJ1cnIGlzIG5vdyByZXN0cmljdGVkIHRvIGp1c3Qgd2VhayBub24tb2JqZWN0CglzeW1ib2xzLiAgVGhpcyBhbGxvd3MgZGlmZmVyZW50aWF0aW9uIGJldHdlZW4sIGZvciBleGFtcGxlLAoJd2VhayBmdW5jdGlvbnMgdnMgd2VhayBvYmplY3RzLiAgbm0gZm9yIGV4YW1wbGUgbm93IGR1bXBzOgoJJ1cnID0gd2VhayBnbG9iYWwKCSd3JyA9IHdlYWsgdW5yZXNvbHZlZAoJJ1YnID0gd2VhayBnbG9iYWwgb2JqZWN0CgkndicgPSB3ZWFrIHVucmVzb2x2ZWQgb2JqZWN0CgoJKGJmZF9pc191bmRlZmluZWRfc3ltY2xhc3MpOiBOZXcgZnVuY3Rpb24uICBSZXR1cm4gdHJ1ZSBpZiB0aGUKCWdpdmVuIHN5bWJvbCBjbGFzcyByZXByZXNlbnRzIGFuZCB1bmRlZmluZWQvdW5yZXNvbHZlZCBzeW1ib2wuCgoJKGJmZF9zeW1ib2xfaW5mbyk6IFVzZSBiZmRfaXNfdW5kZWZpbmVkX3N5bWNsYXNzIHRvIGNoZWNrIGZvcgoJdW5yZXNvbHZlZCBzeW1ib2xzLgoKCSogYmZkLWluMi5oOiBBZGQgcHJvdG90eXBlIGZvciBiZmRfaXNfdW5kZWZpbmVkX3N5bWJvbCgpLgoKCSogZWxmMzItYXJtLmggKGVsZjMyX2FybV9nZXRfc3ltYm9sX3R5cGUpOiBJZiBhIHN5bWJvbCBoYXMgdGhlCglTVFRfQVJNXzE2QklUIGZsYWcgc2V0LCBidXQgaXQgaXMgbm90IGF0dGFjaGVkIHRvIGEgZGF0YSBvYmplY3QKCXJldHVybiBTVFRfQVJNXzE2QklUIHNvIHRoYXQgaXQgd2lsbCBiZSB0cmVhdGVkIGFzIGNvZGUgYnkgdGhlCglkaXNhc3NlbWJsZXIuCgoyMDAwLTAxLTI3ICBBbGFuIE1vZHJhICA8YWxhbkBzcHJpLmxldmVscy51bmlzYS5lZHUuYXU+CgoJKiBjb2ZmLWkzODYuYyAoaTNjb2ZmX29iamVjdF9wKTogUmVtb3ZlIHByb3RvdHlwZS4KCVVwZGF0ZSBjb3B5cmlnaHQuCgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2xpbmtfcmVjb3JkX2R5bmFtaWNfc3ltYm9sKTogQWRkIGNvbnN0Cgl0byBuYW1lLiAgVXBkYXRlIGNvcHlyaWdodC4KCgkqIHRyYWQtY29yZS5jICh0cmFkX3VuaXhfY29yZV9maWxlX3ApOiBDYXN0IGNvcmVfcmVnc2VjCglhc3NpZ25tZW50IHRvIGF2b2lkIHdhcm5pbmcuICBVcGRhdGUgY29weXJpZ2h0LgoKMjAwMC0wMS0yNCAgUm9iZXJ0IExpcGUgIChyb2JlcnRsQHNjby5jb20pCgoJKiBjb2ZmY29kZS5oIChjb2ZmX3dyaXRlX29iamVjdF9jb250ZW50cyk6IEdldCBidWZmIHZpYSBiZmRfbWFsbG9jCglpbnN0ZWFkIG9mIHVzaW5nIEdOVSBDIGV4dGVuc2lvbi4KCjIwMDAtMDEtMjEgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQGN5Z251cy5jb20+CgoJKiBsaWJiZmQuYyAoYmZkX3JlYWQpOiBEbyBub3QgYXR0ZW1wdCB0byBnZXQgYSBuZWdhdGl2bHkgc2l6ZWQKCWFtb3VudCBmcm9tIGEgYmZkX2luX21lbW9yeSBzdHJ1Y3R1cmUuCgkoYmZkX3NlZWspOiBEbyBub3QgYWxsb3cgc2Vla3MgcGFzdCB0aGUgZW5kIG9mIGEgYmZkX2luX21lbW9yeQoJc3RydWN0dXJlLgoKMjAwMC0wMS0xNCAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGxpbmtlci5jIChkZWZhdWx0X2luZGlyZWN0X2xpbmtfb3JkZXIpOiBvb3BzIC0gZml4IGluY29ycmVjdGx5CglhcHBsaWVkIHBhdGNoIGZyb20gVGltIFdhbGwuCgoyMDAwLTAxLTEzICBUaW1vdGh5IFdhbGwgKHR3YWxsQHRpYWMubmV0PgoKCSogY29mZmNvZGUuaDogVXNlIGJmZF9jb2ZmX3h4eCBpbnN0ZWFkIG9mIHRoZSBtYWNybyBYWFggKHdoZXJlIHh4eAoJPSBzY25oc3osIGZpbGhzeiwgcmVsc3osIGFvdXRzeiwgZXRjKQoKCSogY29mZnN3YXAuaDogRGl0dG8uCgoyMDAwLTAxLTEzICBOaWNrIENsaWZ0b24gIDxuaWNrY0BjeWdudXMuY29tPgoKCSogZWxmMzItYXJtLmggKGVsZjMyX3RodW1iX3RvX2FybV9zdHViKTogRml4IG9mZnNldCBpbiBicmFuY2ggdG8KCWludGVyd29yayB0aHVtYiB0byBhcm0gc3R1Yi4KCjIwMDAtMDEtMTMgIFRpbW90aHkgV2FsbCAodHdhbGxAdGlhYy5uZXQ+CgoJKiBhcmNodXJlcy5jIChiZmRfb2N0ZXRzX3Blcl9ieXRlKTogTmV3IGZ1bmN0aW9uOiBSZXR1cm4KCXRhcmdldCBieXRlIHNpemUuCgkoYmZkX2FyY2hfbWFjaF9vY3RldHNfcGVyX2J5dGUpOiBOZXcgZnVuY3Rpb246IFJldHVybiB0YXJnZXQKCWJ5dGUgc2l6ZS4KCgkqIHNlY3Rpb24uYzogRGlzdGluZ3Vpc2ggYmV0d2VlbiBvY3RldHMgYW5kIGJ5dGVzIGZvciB1c2FnZSBvZgoJX2Nvb2tlZF9zaXplLCAgX3Jhd19zaXplLCBhbmQgb3V0cHV0X29mZnNldC4gIENsYXJpZnkKCWRlc2NyaXB0aW9uIG9mIGJmZF9zZXRfc2VjdGlvbl9jb250ZW50cy4KCgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZS4KCgkqIGNvZmZnZW4uYzogSW5kaWNhdGUgdGhhdCB0aGUgb2Zmc2V0IHBhcmFtZXRlciBpcyBpbiBieXRlcywgbm90CglvY3RldHMuCgoJKiBjb2ZmbGluay5jIChiZmRfY29mZl9saW5rX2lucHV0X2JmZCk6IFVzZSBiZmRfb2N0ZXRzX3Blcl9ieXRlCgl3aGVyZSBhcHByb3ByaWF0ZSB0byBnZXQgdGhlIG9jdGV0IG9mZnNldCB3aGVuIGNhbGxpbmcKCWJmZF9zZXRfc2VjdGlvbl9jb250ZW50cy4KCShiZmRfY29mZl9yZWxvY19saW5rX29yZGVyKTogRGl0dG8uCgoJKiBsaW5rZXIuYyAoYmZkX2dlbmVyaWNfcmVsb2NfbGlua19vcmRlcik6IERpdHRvLgoJKF9iZmRfZGVmYXVsdF9saW5rX29yZGVyKTogRGl0dG8uCgoJKiByZWxvYy5jIChiZmRfcGVyZm9ybV9yZWxvY2F0aW9uKTogIERpc3Rpbmd1aXNoIGJldHdlZW4gb2N0ZXRzCglhbmQgYnl0ZXMuICBVc2Ugb2N0ZXRzIHdoZW4gaW5kZXhpbmcgaW50byBvY3RldCBkYXRhOyB1c2UgYnl0ZXMKCXdoZW4gY2FsY3VsYXRpbmcgdGFyZ2V0IGFkZHJlc3Nlcy4KCShiZmRfaW5zdGFsbF9yZWxvY2F0aW9uKTogRGl0dG8uCgoJKiBzcmVjLmMgKHNyZWNfd3JpdGVfc2VjdGlvbik6IERpdHRvLgoKMjAwMC0wMS0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAY3lnbnVzLmNvbT4KCgkqIGNvZmYtbWNvcmUuYyAoQ09GRl9ERUZBVUxUX1NFQ1RJT05fQUxJR05NRU5UX1BPV0VSKTogQ2hhbmdlIGZyb20KCTMgdG8gMi4gIFRoaXMgYWxsb3dzIDQgYnl0ZSBzaXplZCBzZWN0aW9ucywgd2hpY2ggaXMgbmVjZXNzYXJ5IGZvcgoJZGxsdG9vbCB0byBidWlsZCBmdW5jdGlvbmluZyBETExzLgoKMjAwMC0wMS0xMCAgUGhpbGlwIEJsdW5kZWxsICA8cGJAZnV0dXJldHYuY29tPgoKCSogY29uZmlnLmJmZCAoYXJtKi0qLWxpbnV4LWdudSopOiBNYXRjaCBpbnN0ZWFkIG9mIGFybSotKi1saW51eC1nbnUuCgkoYXJtKi0qLWNvbml4Kik6IE5ldyB0YXJnZXQuCgoyMDAwLTAxLTEwICBFZ29yIER1ZGEgIDxkZW9AbG9nb3MtbS5ydT4KCgkqIGNvbmZpZy5iZmQ6IEluY2x1ZGUgZWxmMzJfaTM4NiB2ZWN0b3IgdG8gdGFyZ2V0IGxpc3QgZm9yIGN5Z3dpbgoJYW5kIG1pbmd3LgoKCSogY29uZmlnLmluOiBVbmRlZmluZSBIQVZFX1dJTjMyX1BTVEFUVVNfVC4KCSogY29uZmlndXJlLmluOiBUZXN0IGZvciBzdHJ1Y3R1cmUgd2luMzJfcHN0YXR1c190IGluCgk8c3lzL3Byb2Nmcy5oPgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoJKiBlbGYuYyAoZWxmY29yZV9ncm9rX3dpbjMycHN0YXR1cyk6IE5ldyBmdW5jdGlvbjogcHJvY2VzcwoJd2luMzJfcHN0YXR1c190IG5vdGVzIGluIGVsZiBjb3JlIGZpbGUuCgkoZWxmY29yZV9ncm9rX25vdGUpOiBEZXRlY3Qgd2luMzJfcHN0YXR1cyBub3Rlcy4KCjIwMDAtMDEtMDMgIE1hcnRpbiB2LiBMb2V3aXMgIDxsb2V3aXNAaW5mb3JtYXRpay5odS1iZXJsaW4uZGU+CgoJKiBlbGZsaW5rLmMgKF9iZmRfZWxmX2xpbmtfcmVjb3JkX2R5bmFtaWNfc3ltYm9sKTogUHJvY2VzcyBzeW1ib2wKCXZpc2liaWxpdHkuCgkqIGVsZmxpbmsuaCAoZWxmX2xpbmtfYWRkX29iamVjdF9zeW1ib2xzKTogQ29tYmluZSB2aXNpYmlsaXRpZXMuCgkqIGVsZi5jIChiZmRfZWxmX3ByaW50X3N5bWJvbCk6IEludGVycHJldCBzdF9vdGhlciBhcyB2aXNpYmlsaXR5LgoKRm9yIG9sZGVyIGNoYW5nZXMgc2VlIENoYW5nZUxvZy05ODk5CgwKQ29weXJpZ2h0IChDKSAyMDAyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgoKQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0Cm5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4KCkxvY2FsIFZhcmlhYmxlczoKbW9kZTogY2hhbmdlLWxvZwpsZWZ0LW1hcmdpbjogOApmaWxsLWNvbHVtbjogNzQKdmVyc2lvbi1jb250cm9sOiBuZXZlcgpFbmQ6Cg==