ZGlmZiAtLWdpdCBhL3BvcnRzL3JlZGhhdC9iZ3BkLmluaXQgYi9wb3J0cy9yZWRoYXQvYmdwZC5pbml0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3YzJlM2YKLS0tIC9kZXYvbnVsbAorKysgYi9wb3J0cy9yZWRoYXQvYmdwZC5pbml0CkBAIC0wLDAgKzEsNjAgQEAKKyMhL2Jpbi9iYXNoCisjCisjIGNoa2NvbmZpZzogLSAxNiA4NAorIyBkZXNjcmlwdGlvbjogQSBCR1B2NCwgQkdQdjQrLCBCR1B2NC0gcm91dGluZyBlbmdpbmUgZm9yIHVzZSB3aXRoIFplYnJhCisjCisjIHByb2Nlc3NuYW1lOiBiZ3BkCisjIGNvbmZpZzogL2V0Yy96ZWJyYS9iZ3BkLmNvbmYKKworIyBzb3VyY2UgZnVuY3Rpb24gbGlicmFyeQorLiAvZXRjL3JjLmQvaW5pdC5kL2Z1bmN0aW9ucworCisjIEdldCBuZXR3b3JrIGNvbmZpZworLiAvZXRjL3N5c2NvbmZpZy9uZXR3b3JrCisKKyMgQ2hlY2sgdGhhdCBuZXR3b3JraW5nIGlzIHVwLgorWyAiJHtORVRXT1JLSU5HfSIgPSAibm8iIF0gJiYgZXhpdCAwCisKKyMgVGhlIHByb2Nlc3MgbXVzdCBiZSBjb25maWd1cmVkIGZpcnN0LgorWyAtZiAvZXRjL3plYnJhL2JncGQuY29uZiBdIHx8IGV4aXQgMAorCitSRVRWQUw9MAorcHJvZz0iYmdwZCIKKworY2FzZSAiJDEiIGluCisgIHN0YXJ0KQorCWVjaG8gLW4gJCJTdGFydGluZyAkcHJvZzogIgorICAgICAgICBkYWVtb24gL3Vzci9zYmluL2JncGQgLWQKKwlSRVRWQUw9JD8KKwlbICRSRVRWQUwgLWVxIDAgXSAmJiB0b3VjaCAvdmFyL2xvY2svc3Vic3lzL2JncGQKKwllY2hvCisJOzsKKyAgc3RvcCkKKwllY2hvIC1uICQiU2h1dHRpbmcgZG93biAkcHJvZzogIgorCWtpbGxwcm9jIGJncGQKKwlSRVRWQUw9JD8KKwlbICRSRVRWQUwgLWVxIDAgXSAmJiBybSAtZiAvdmFyL2xvY2svc3Vic3lzL2JncGQKKwllY2hvCisJOzsKKyAgcmVzdGFydHxyZWxvYWQpCisgICAgICAgICQwIHN0b3AKKyAgICAgICAgJDAgc3RhcnQKKwlSRVRWQUw9JD8KKyAgICAgICAgOzsKKyAgY29uZHJlc3RhcnQpCisgICAgICAgIGlmIFsgLWYgL3Zhci9sb2NrL3N1YnN5cy9iZ3BkIF07IHRoZW4KKyAgICAgICAgICAgICAgICAkMCBzdG9wCisJCSQwIHN0YXJ0CisgICAgICAgIGZpCisJUkVUVkFMPSQ/CisgICAgICAgIDs7CisgIHN0YXR1cykKKyAgICAgICAgc3RhdHVzIGJncGQKKwlSRVRWQUw9JD8KKyAgICAgICAgOzsKKyAgKikKKwllY2hvICQiVXNhZ2U6ICQwIHtzdGFydHxzdG9wfHJlc3RhcnR8cmVsb2FkfGNvbmRyZXN0YXJ0fHN0YXR1c30iCisJZXhpdCAxCitlc2FjCisKK2V4aXQgJFJFVFZBTApkaWZmIC0tZ2l0IGEvcG9ydHMvcmVkaGF0L29zcGY2ZC5pbml0IGIvcG9ydHMvcmVkaGF0L29zcGY2ZC5pbml0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhNmU4YzUKLS0tIC9kZXYvbnVsbAorKysgYi9wb3J0cy9yZWRoYXQvb3NwZjZkLmluaXQKQEAgLTAsMCArMSw2MCBAQAorIyEvYmluL2Jhc2gKKyMKKyMgY2hrY29uZmlnOiAtIDE2IDg0CisjIGRlc2NyaXB0aW9uOiBBbiBPU1BGIHJvdXRpbmcgZW5naW5lIGZvciB1c2Ugd2l0aCBaZWJyYSBhbmQgSVB2NgorIworIyBwcm9jZXNzbmFtZTogb3NwZjZkCisjIGNvbmZpZzogL2V0Yy96ZWJyYS9vc3BmNmQuY29uZgorCisjIHNvdXJjZSBmdW5jdGlvbiBsaWJyYXJ5CisuIC9ldGMvcmMuZC9pbml0LmQvZnVuY3Rpb25zCisKKyMgR2V0IG5ldHdvcmsgY29uZmlnCisuIC9ldGMvc3lzY29uZmlnL25ldHdvcmsKKworIyBDaGVjayB0aGF0IG5ldHdvcmtpbmcgaXMgdXAuCitbICIke05FVFdPUktJTkdfSVBWNn0iID0gIm5vIiBdICYmIGV4aXQgMAorCisjIFRoZSBwcm9jZXNzIG11c3QgYmUgY29uZmlndXJlZCBmaXJzdC4KK1sgLWYgL2V0Yy96ZWJyYS9vc3BmNmQuY29uZiBdIHx8IGV4aXQgMAorCitSRVRWQUw9MAorcHJvZz0ib3NwZjZkIgorCitjYXNlICIkMSIgaW4KKyAgc3RhcnQpCisJZWNobyAtbiAkIlN0YXJ0aW5nICRwcm9nOiAiCisgICAgICAgIGRhZW1vbiAvdXNyL3NiaW4vb3NwZjZkIC1kCisJUkVUVkFMPSQ/CisJWyAkUkVUVkFMIC1lcSAwIF0gJiYgdG91Y2ggL3Zhci9sb2NrL3N1YnN5cy9vc3BmNmQKKwllY2hvCisJOzsKKyAgc3RvcCkKKwllY2hvIC1uICQiU2h1dHRpbmcgZG93biAkcHJvZzogIgorCWtpbGxwcm9jIG9zcGY2ZAorCVJFVFZBTD0kPworCVsgJFJFVFZBTCAtZXEgMCBdICYmIHJtIC1mIC92YXIvbG9jay9zdWJzeXMvb3NwZjZkCisJZWNobworCTs7CisgIHJlc3RhcnR8cmVsb2FkKQorICAgICAgICAkMCBzdG9wCisgICAgICAgICQwIHN0YXJ0CisJUkVUVkFMPSQ/CisgICAgICAgIDs7CisgIGNvbmRyZXN0YXJ0KQorICAgICAgICBpZiBbIC1mIC92YXIvbG9jay9zdWJzeXMvb3NwZjZkIF07IHRoZW4KKyAgICAgICAgICAgICAgICAkMCBzdG9wCisJCSQwIHN0YXJ0CisgICAgICAgIGZpCisJUkVUVkFMPSQ/CisgICAgICAgIDs7CisgIHN0YXR1cykKKyAgICAgICAgc3RhdHVzIG9zcGY2ZAorCVJFVFZBTD0kPworICAgICAgICA7OworICAqKQorCWVjaG8gJCJVc2FnZTogJHByb2cge3N0YXJ0fHN0b3B8cmVzdGFydHxyZWxvYWR8Y29uZHJlc3RhcnR8c3RhdHVzfSIKKwlleGl0IDEKK2VzYWMKKworZXhpdCAkUkVUVkFMCmRpZmYgLS1naXQgYS9wb3J0cy9yZWRoYXQvb3NwZmQuaW5pdCBiL3BvcnRzL3JlZGhhdC9vc3BmZC5pbml0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhYWIxMzgKLS0tIC9kZXYvbnVsbAorKysgYi9wb3J0cy9yZWRoYXQvb3NwZmQuaW5pdApAQCAtMCwwICsxLDYxIEBACisjIS9iaW4vYmFzaAorIworIyBjaGtjb25maWc6IC0gMTYgODQKKyMgZGVzY3JpcHRpb246IEFuIE9TUEYgdjIgcm91dGluZyBlbmdpbmUgZm9yIHVzZSB3aXRoIFplYnJhCisjCisjIHByb2Nlc3NuYW1lOiBvc3BmZAorIyBjb25maWc6IC9ldGMvemVicmEvb3NwZmQuY29uZgorCisjIHNvdXJjZSBmdW5jdGlvbiBsaWJyYXJ5CisuIC9ldGMvcmMuZC9pbml0LmQvZnVuY3Rpb25zCisKKyMgR2V0IG5ldHdvcmsgY29uZmlnCisuIC9ldGMvc3lzY29uZmlnL25ldHdvcmsKKworIyBDaGVjayB0aGF0IG5ldHdvcmtpbmcgaXMgdXAuCitbICIke05FVFdPUktJTkd9IiA9ICJubyIgXSAmJiBleGl0IDAKKworIyBUaGUgcHJvY2VzcyBtdXN0IGJlIGNvbmZpZ3VyZWQgZmlyc3QuCitbIC1mIC9ldGMvemVicmEvb3NwZmQuY29uZiBdIHx8IGV4aXQgMAorCitSRVRWQUw9MAorCitwcm9nPSJvc3BmZCIKKworY2FzZSAiJDEiIGluCisgIHN0YXJ0KQorCWVjaG8gLW4gJCJTdGFydGluZyAkcHJvZzogIgorICAgICAgICBkYWVtb24gL3Vzci9zYmluL29zcGZkIC1kCisJUkVUVkFMPSQ/CisJWyAkUkVUVkFMIC1lcSAwIF0gJiYgdG91Y2ggL3Zhci9sb2NrL3N1YnN5cy9vc3BmZAorCWVjaG8KKwk7OworICBzdG9wKQorCWVjaG8gLW4gJCJTaHV0dGluZyBkb3duICRwcm9nOiAiCisJa2lsbHByb2Mgb3NwZmQKKwlSRVRWQUw9JD8KKwlbICRSRVRWQUwgLWVxIDAgXSAmJiBybSAtZiAvdmFyL2xvY2svc3Vic3lzL29zcGZkCisJZWNobworCTs7CisgIHJlc3RhcnR8cmVsb2FkKQorICAgICAgICAkMCBzdG9wCisgICAgICAgICQwIHN0YXJ0CisJUkVUVkFMPSQ/CisgICAgICAgIDs7CisgIGNvbmRyZXN0YXJ0KQorICAgICAgICBpZiBbIC1mIC92YXIvbG9jay9zdWJzeXMvb3NwZmQgXTsgdGhlbgorICAgICAgICAgICAgICAgICQwIHN0b3AKKwkJJDAgc3RhcnQKKyAgICAgICAgZmkKKwlSRVRWQUw9JD8KKyAgICAgICAgOzsKKyAgc3RhdHVzKQorICAgICAgICBzdGF0dXMgb3NwZmQKKwlSRVRWQUw9JD8KKyAgICAgICAgOzsKKyAgKikKKwllY2hvICQiVXNhZ2U6ICQwIHtzdGFydHxzdG9wfHJlc3RhcnR8cmVsb2FkfGNvbmRyZXN0YXJ0fHN0YXR1c30iCisJZXhpdCAxCitlc2FjCisKK2V4aXQgJFJFVFZBTApkaWZmIC0tZ2l0IGEvcG9ydHMvcmVkaGF0L3JpcGQuaW5pdCBiL3BvcnRzL3JlZGhhdC9yaXBkLmluaXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmFjNjczMwotLS0gL2Rldi9udWxsCisrKyBiL3BvcnRzL3JlZGhhdC9yaXBkLmluaXQKQEAgLTAsMCArMSw2MCBAQAorIyEvYmluL2Jhc2gKKyMKKyMgY2hrY29uZmlnOiAtIDE2IDg0CisjIGRlc2NyaXB0aW9uOiBBIFJJUCByb3V0aW5nIGVuZ2luZSBmb3IgdXNlIHdpdGggWmVicmEKKyMKKyMgcHJvY2Vzc25hbWU6IHJpcGQKKyMgY29uZmlnOiAvZXRjL3plYnJhL3JpcGQuY29uZgorCisjIHNvdXJjZSBmdW5jdGlvbiBsaWJyYXJ5CisuIC9ldGMvcmMuZC9pbml0LmQvZnVuY3Rpb25zCisKKyMgR2V0IG5ldHdvcmsgY29uZmlnCisuIC9ldGMvc3lzY29uZmlnL25ldHdvcmsKKworIyBDaGVjayB0aGF0IG5ldHdvcmtpbmcgaXMgdXAuCitbICIke05FVFdPUktJTkd9IiA9ICJubyIgXSAmJiBleGl0IDAKKworIyBUaGUgcHJvY2VzcyBtdXN0IGJlIGNvbmZpZ3VyZWQgZmlyc3QuCitbIC1mIC9ldGMvemVicmEvcmlwZC5jb25mIF0gfHwgZXhpdCAwCisKK1JFVFZBTD0wCitwcm9nPSJyaXBkIgorCitjYXNlICIkMSIgaW4KKyAgc3RhcnQpCisJZWNobyAtbiAkIlN0YXJ0aW5nICRwcm9nOiAiCisgICAgICAgIGRhZW1vbiAvdXNyL3NiaW4vcmlwZCAtZAorCVJFVFZBTD0kPworCVsgJFJFVFZBTCAtZXEgMCBdICYmIHRvdWNoIC92YXIvbG9jay9zdWJzeXMvcmlwZAorCWVjaG8KKwk7OworICBzdG9wKQorCWVjaG8gLW4gJCJTaHV0dGluZyBkb3duICRwcm9nOiAiCisJa2lsbHByb2MgcmlwZAorCVJFVFZBTD0kPworCVsgJFJFVFZBTCAtZXEgMCBdICYmIHJtIC1mIC92YXIvbG9jay9zdWJzeXMvcmlwZAorCWVjaG8KKwk7OworICByZXN0YXJ0fHJlbG9hZCkKKyAgICAgICAgJDAgc3RvcAorICAgICAgICAkMCBzdGFydAorCVJFVFZBTD0kPworICAgICAgICA7OworICBjb25kcmVzdGFydCkKKyAgICAgICAgaWYgWyAtZiAvdmFyL2xvY2svc3Vic3lzL3JpcGQgXTsgdGhlbgorICAgICAgICAgICAgICAgICQwIHN0b3AKKwkJJDAgc3RhcnQKKyAgICAgICAgZmkKKwlSRVRWQUw9JD8KKyAgICAgICAgOzsKKyAgc3RhdHVzKQorICAgICAgICBzdGF0dXMgcmlwZAorCVJFVFZBTD0kPworICAgICAgICA7OworICAqKQorCWVjaG8gJCJVc2FnZTogJDAge3N0YXJ0fHN0b3B8cmVzdGFydHxyZWxvYWR8Y29uZHJlc3RhcnR8c3RhdHVzfSIKKwlleGl0IDEKK2VzYWMKKworZXhpdCAkUkVUVkFMCmRpZmYgLS1naXQgYS9wb3J0cy9yZWRoYXQvcmlwbmdkLmluaXQgYi9wb3J0cy9yZWRoYXQvcmlwbmdkLmluaXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU1NGEwMQotLS0gL2Rldi9udWxsCisrKyBiL3BvcnRzL3JlZGhhdC9yaXBuZ2QuaW5pdApAQCAtMCwwICsxLDYwIEBACisjIS9iaW4vYmFzaAorIworIyBjaGtjb25maWc6IC0gMTYgODQKKyMgZGVzY3JpcHRpb246IEEgUklQIHJvdXRpbmcgZW5naW5lIGZvciB1c2Ugd2l0aCBaZWJyYSBhbmQgSVB2NgorIworIyBwcm9jZXNzbmFtZTogcmlwbmdkCisjIGNvbmZpZzogL2V0Yy96ZWJyYS9yaXBuZ2QuY29uZgorCisjIHNvdXJjZSBmdW5jdGlvbiBsaWJyYXJ5CisuIC9ldGMvcmMuZC9pbml0LmQvZnVuY3Rpb25zCisKKyMgR2V0IG5ldHdvcmsgY29uZmlnCisuIC9ldGMvc3lzY29uZmlnL25ldHdvcmsKKworIyBDaGVjayB0aGF0IG5ldHdvcmtpbmcgaXMgdXAuCitbICIke05FVFdPUktJTkdfSVBWNn0iID0gIm5vIiBdICYmIGV4aXQgMAorCisjIFRoZSBwcm9jZXNzIG11c3QgYmUgY29uZmlndXJlZCBmaXJzdC4KK1sgLWYgL2V0Yy96ZWJyYS9yaXBuZ2QuY29uZiBdIHx8IGV4aXQgMAorCitSRVRWQUw9MAorcHJvZz0icmlwbmdkIgorCitjYXNlICIkMSIgaW4KKyAgc3RhcnQpCisJZWNobyAtbiAkIlN0YXJ0aW5nICRwcm9nOiAiCisgICAgICAgIGRhZW1vbiAvdXNyL3NiaW4vcmlwbmdkIC1kCisJUkVUVkFMPSQ/CisJWyAkUkVUVkFMIC1lcSAwIF0gJiYgdG91Y2ggL3Zhci9sb2NrL3N1YnN5cy9yaXBuZ2QKKwllY2hvCisJOzsKKyAgc3RvcCkKKwllY2hvIC1uICQiU2h1dHRpbmcgZG93biAkcHJvZzogIgorCWtpbGxwcm9jIHJpcG5nZAorCVJFVFZBTD0kPworCVsgJFJFVFZBTCAtZXEgMCBdICYmIHJtIC1mIC92YXIvbG9jay9zdWJzeXMvcmlwbmdkCisJZWNobworCTs7CisgIHJlc3RhcnR8cmVsb2FkKQorICAgICAgICAkMCBzdG9wCisgICAgICAgICQwIHN0YXJ0CisJUkVUVkFMPSQ/CisgICAgICAgIDs7CisgIGNvbmRyZXN0YXJ0KQorICAgICAgICBpZiBbIC1mIC92YXIvbG9jay9zdWJzeXMvcmlwbmdkIF07IHRoZW4KKyAgICAgICAgICAgICAgICAkMCBzdG9wCisJCSQwIHN0YXJ0CisgICAgICAgIGZpCisJUkVUVkFMPSQ/CisgICAgICAgIDs7CisgIHN0YXR1cykKKyAgICAgICAgc3RhdHVzIHJpcG5nZAorCVJFVFZBTD0kPworICAgICAgICA7OworICAqKQorCWVjaG8gJCJVc2FnZTogJDAge3N0YXJ0fHN0b3B8cmVzdGFydHxyZWxvYWR8Y29uZHJlc3RhcnR8c3RhdHVzfSIKKwlleGl0IDEKK2VzYWMKKworZXhpdCAkUkVUVkFMCmRpZmYgLS1naXQgYS9wb3J0cy9yZWRoYXQvemVicmEuaW5pdCBiL3BvcnRzL3JlZGhhdC96ZWJyYS5pbml0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhNDUwZTIKLS0tIC9kZXYvbnVsbAorKysgYi9wb3J0cy9yZWRoYXQvemVicmEuaW5pdApAQCAtMCwwICsxLDYxIEBACisjIS9iaW4vYmFzaAorIworIyBjaGtjb25maWc6IC0gMTUgODUKKyMgZGVzY3JpcHRpb246IEdOVSBaZWJyYSByb3V0aW5nIG1hbmFnZXIKKyMKKyMgcHJvY2Vzc25hbWU6IHplYnJhCisjIGNvbmZpZzogL2V0Yy96ZWJyYS96ZWJyYS5jb25mCisKKyMgc291cmNlIGZ1bmN0aW9uIGxpYnJhcnkKKy4gL2V0Yy9yYy5kL2luaXQuZC9mdW5jdGlvbnMKKworIyBDaGVjayB0aGF0IG5ldHdvcmtpbmcgaXMgdXAuCitbICIke05FVFdPUktJTkd9IiA9ICJubyIgXSAmJiBleGl0IDAKKworIyBUaGUgcHJvY2VzcyBtdXN0IGJlIGNvbmZpZ3VyZWQgZmlyc3QuCitbIC1mIC9ldGMvemVicmEvemVicmEuY29uZiBdIHx8IGV4aXQgMAorCitSRVRWQUw9MAorCitwcm9nPSJ6ZWJyYSIKKworY2FzZSAiJDEiIGluCisgIHN0YXJ0KQorCWVjaG8gLW4gJCJTdGFydGluZyAkcHJvZzogIgorCisJL3NiaW4vaXAgcm91dGUgZmx1c2ggcHJvdG8gemVicmEKKwkJCQorICAgICAgICBkYWVtb24gL3Vzci9zYmluL3plYnJhIC1kCisJUkVUVkFMPSQ/CisJWyAkUkVUVkFMIC1lcSAwIF0gJiYgdG91Y2ggL3Zhci9sb2NrL3N1YnN5cy96ZWJyYQorCWVjaG8KKwk7OworICBzdG9wKQorCWVjaG8gLW4gJCJTaHV0dGluZyBkb3duICRwcm9nOiAiCisJa2lsbHByb2MgemVicmEKKwlSRVRWQUw9JD8KKwlbICRSRVRWQUwgLWVxIDAgXSAmJiBybSAtZiAvdmFyL2xvY2svc3Vic3lzL3plYnJhCisJZWNobworCTs7CisgIHJlc3RhcnR8cmVsb2FkKQorICAgICAgICAkMCBzdG9wCisgICAgICAgICQwIHN0YXJ0CisJUkVUVkFMPSQ/CisgICAgICAgIDs7CisgIGNvbmRyZXN0YXJ0KQorICAgICAgICBpZiBbIC1mIC92YXIvbG9jay9zdWJzeXMvemVicmEgXTsgdGhlbgorICAgICAgICAgICAgICAgICQwIHN0b3AKKwkJJDAgc3RhcnQKKyAgICAgICAgZmkKKwlSRVRWQUw9JD8KKyAgICAgICAgOzsKKyAgc3RhdHVzKQorICAgICAgICBzdGF0dXMgemVicmEKKwlSRVRWQUw9JD8KKyAgICAgICAgOzsKKyAgKikKKwllY2hvICQiVXNhZ2U6ICQwIHtzdGFydHxzdG9wfHJlc3RhcnR8cmVsb2FkfGNvbmRyZXN0YXJ0fHN0YXR1c30iCisJZXhpdCAxCitlc2FjCisKK2V4aXQgJFJFVFZBTApkaWZmIC0tZ2l0IGEvcG9ydHMvcmVkaGF0L3plYnJhLmxvZ3JvdGF0ZSBiL3BvcnRzL3JlZGhhdC96ZWJyYS5sb2dyb3RhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmUzNTJmZgotLS0gL2Rldi9udWxsCisrKyBiL3BvcnRzL3JlZGhhdC96ZWJyYS5sb2dyb3RhdGUKQEAgLTAsMCArMSw1OSBAQAorL3Zhci9sb2cvemVicmEvemVicmEubG9nIHsKKyAgICBub3RpZmVtcHR5CisgICAgbWlzc2luZ29rCisgICAgbm9jb21wcmVzcworICAgIHdlZWtseQorICAgIHBvc3Ryb3RhdGUKKwkvdXNyL3NiaW4va2lsbGFsbCAtVVNSMSB6ZWJyYQorICAgIGVuZHNjcmlwdAorfQorCisvdmFyL2xvZy96ZWJyYS9iZ3BkLmxvZyB7CisgICAgbm90aWZlbXB0eQorICAgIG1pc3NpbmdvaworICAgIG5vY29tcHJlc3MKKyAgICB3ZWVrbHkKKyAgICBwb3N0cm90YXRlCisJL3Vzci9zYmluL2tpbGxhbGwgLVVTUjEgYmdwZAorICAgIGVuZHNjcmlwdAorfQorCisvdmFyL2xvZy96ZWJyYS9vc3BmZC5sb2cgeworICAgIG5vdGlmZW1wdHkKKyAgICBtaXNzaW5nb2sKKyAgICBub2NvbXByZXNzCisgICAgd2Vla2x5CisgICAgcG9zdHJvdGF0ZQorCS91c3Ivc2Jpbi9raWxsYWxsIC1VU1IxIG9zcGZkCisgICAgZW5kc2NyaXB0Cit9CisKKy92YXIvbG9nL3plYnJhL29zcGY2ZC5sb2cgeworICAgIG5vdGlmZW1wdHkKKyAgICBtaXNzaW5nb2sKKyAgICBub2NvbXByZXNzCisgICAgd2Vla2x5CisgICAgcG9zdHJvdGF0ZQorCS91c3Ivc2Jpbi9raWxsYWxsIC1VU1IxIG9zcGY2ZAorICAgIGVuZHNjcmlwdAorfQorCisvdmFyL2xvZy96ZWJyYS9yaXBkLmxvZyB7CisgICAgbm90aWZlbXB0eQorICAgIG1pc3NpbmdvaworICAgIG5vY29tcHJlc3MKKyAgICB3ZWVrbHkKKyAgICBwb3N0cm90YXRlCisJL3Vzci9zYmluL2tpbGxhbGwgLVVTUjEgcmlwZAorICAgIGVuZHNjcmlwdAorfQorCisvdmFyL2xvZy96ZWJyYS9yaXBuZ2QubG9nIHsKKyAgICBub3RpZmVtcHR5CisgICAgbWlzc2luZ29rCisgICAgbm9jb21wcmVzcworICAgIHdlZWtseQorICAgIHBvc3Ryb3RhdGUKKwkvdXNyL3NiaW4va2lsbGFsbCAtVVNSMSByaXBuZ2QKKyAgICBlbmRzY3JpcHQKK30KZGlmZiAtLWdpdCBhL3BvcnRzL3JlZGhhdC96ZWJyYS5wYW0gYi9wb3J0cy9yZWRoYXQvemVicmEucGFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMTdmNTkKLS0tIC9kZXYvbnVsbAorKysgYi9wb3J0cy9yZWRoYXQvemVicmEucGFtCkBAIC0wLDAgKzEsMTAgQEAKKyMlUEFNLTEuMAorIworIyBPbmx5IGFsbG93IHJvb3QgKGFuZCBwb3NzaWJseSB3aGVlbCkgdG8gdXNlIHRoaXMgYmVjYXVzZSBlbmFibGUgYWNjZXNzCisjIGlzIHVucmVzdHJpY3RlZC4KKworYXV0aCAgICAgICBzdWZmaWNpZW50ICAgL2xpYi9zZWN1cml0eS9wYW1fcm9vdG9rLnNvCisjIFVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gaW1wbGljaXRseSB0cnVzdCB1c2VycyBpbiB0aGUgIndoZWVsIiBncm91cC4KKyNhdXRoICAgICAgIHN1ZmZpY2llbnQgICAvbGliL3NlY3VyaXR5L3BhbV93aGVlbC5zbyB0cnVzdCB1c2VfdWlkCisjIFVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gcmVxdWlyZSBhIHVzZXIgdG8gYmUgaW4gdGhlICJ3aGVlbCIgZ3JvdXAuCisjYXV0aCAgICAgICByZXF1aXJlZCAgICAgL2xpYi9zZWN1cml0eS9wYW1fd2hlZWwuc28gdXNlX3VpZApkaWZmIC0tZ2l0IGEvcG9ydHMvcmVkaGF0L3plYnJhLnNwZWMgYi9wb3J0cy9yZWRoYXQvemVicmEuc3BlYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGJmNzY1Ci0tLSAvZGV2L251bGwKKysrIGIvcG9ydHMvcmVkaGF0L3plYnJhLnNwZWMKQEAgLTAsMCArMSwyNzUgQEAKKyVkZWZpbmUgCXdpdGhfc25tcAkwCislZGVmaW5lCQl3aXRoX3Z0eXNoCTEKKyVkZWZpbmUJCXdpdGhfb3NwZl90ZQkxCislZGVmaW5lCQl3aXRoX25zc2EJMQorJWRlZmluZQkJd2l0aF9vcGFxdWVfbHNhIDEKKyVkZWZpbmUJCXdpdGhfdGNwX3plYnJhCTAKKyVkZWZpbmUJCXdpdGhfdnR5c2gJMQorJWRlZmluZQkJd2l0aF9wYW0JMQorJWRlZmluZQkJd2l0aF9pcHY2CTEKKyVkZWZpbmUJCXdpdGhfbXVsdGlwYXRoCTMyCislZGVmaW5lCQlfc3lzY29uZmRpcgkvZXRjL3plYnJhCisKK1N1bW1hcnk6IFJvdXRpbmcgZGFlbW9uCitOYW1lOgkJemVicmEKK1ZlcnNpb246CTAuOTNiCitSZWxlYXNlOgkyMDAyMTExMTAxCitMaWNlbnNlOglHUEwKK0dyb3VwOiBTeXN0ZW0gRW52aXJvbm1lbnQvRGFlbW9ucworU291cmNlMDoJZnRwOi8vZnRwLnplYnJhLm9yZy9wdWIvemVicmEvJXtuYW1lfS0le3ZlcnNpb259LnRhci5negorU291cmNlMTogICAgICAgIHplYnJhLmluaXQKK1NvdXJjZTI6ICAgICAgICBiZ3BkLmluaXQKK1NvdXJjZTM6ICAgICAgICBvc3BmNmQuaW5pdAorU291cmNlNDogICAgICAgIG9zcGZkLmluaXQKK1NvdXJjZTU6ICAgICAgICByaXBkLmluaXQKK1NvdXJjZTY6ICAgICAgICByaXBuZ2QuaW5pdAorU291cmNlODoJemVicmEucGFtCitTb3VyY2U5Ogl6ZWJyYS5sb2dyb3RhdGUKK1NvdXJjZTEwOgl6ZWJyYS5tcGxzLWRvY3MudGFyLmd6CitQYXRjaDA6CQl6ZWJyYS1iZ3BkLWhhc2gucGF0Y2gKK1BhdGNoMToJCXplYnJhLXB0cC5wYXRjaAorUGF0Y2gyOgkJemVicmEtbGlua3N0YXRlLnBhdGNoCitQYXRjaDM6CQl6ZWJyYS1vc3BmZC1wdG1wLnBhdGNoCitQYXRjaDQ6CQl6ZWJyYS1vc3BmZC1taXNjLnBhdGNoCitQYXRjaDU6CQl6ZWJyYS1vc3BmZC1vbHNhLnBhdGNoCitQYXRjaDc6CQl6ZWJyYS12dHlzaC13cml0ZS1jb25maWcucGF0Y2gKK1BhdGNoODoJCXplYnJhLW9zcGZkLW1kNWF1dGgtc2VxbnVtLnBhdGNoCitQYXRjaDk6CQl6ZWJyYS1vc3BmZC1vaV93cml0ZV9xLnBhdGNoCitQYXRjaDEwOgl6ZWJyYS1yaXB2MS1uZXRtYXNrLnBhdGNoCitQYXRjaDExOgl6ZWJyYS1vc3BmZC1tZDUtYnVmZmVyLWZpeC5wYXRjaAorUGF0Y2gxMjoJemVicmEtbXVsdGkucGF0Y2gKK1VSTDoJCWh0dHA6Ly93d3cuemVicmEub3JnLworJWlmICV3aXRoX3NubXAKK0J1aWxkUmVxdWlyZXM6CXVjZC1zbm1wLWRldmVsCitQcmVyZXE6CQl1Y2Qtc25tcAorJWVuZGlmCitCdWlsZFJlcXVpcmVzOgl0ZXhpbmZvIHRldGV4IGF1dG9jb25mIHJlYWRsaW5lLWRldmVsIG5jdXJzZXMtZGV2ZWwgb3BlbnNzbC1kZXZlbCBwYW0tZGV2ZWwKKyMgSW5pdHNjcmlwdHMgPiA1LjYwIGlzIHJlcXVpcmVkIGZvciBJUHY2IHN1cHBvcnQKK1ByZXJlcToJCW9wZW5zc2wgbmN1cnNlcyByZWFkbGluZSBpbml0c2NyaXB0cyBwYW0KK1ByZXJlcToJCS9zYmluL2luc3RhbGwtaW5mbworUHJvdmlkZXM6CXJvdXRpbmdkYWVtb24KK0J1aWxkUm9vdDoJJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LXJvb3QKK09ic29sZXRlczoJYmlyZCBnYXRlZCBtcnQKKworJWRlc2NyaXB0aW9uCitHTlUgWmVicmEgaXMgYSBmcmVlIHNvZnR3YXJlIHRoYXQgbWFuYWdlcyBUQ1AvSVAgYmFzZWQgcm91dGluZworcHJvdG9jb2wuIEl0IHRha2VzIG11bHRpLXNlcnZlciBhbmQgbXVsdGktdGhyZWFkIGFwcHJvYWNoIHRvIHJlc29sdmUKK3RoZSBjdXJyZW50IGNvbXBsZXhpdHkgb2YgdGhlIEludGVybmV0LgorCitHTlUgWmVicmEgc3VwcG9ydHMgQkdQNCwgQkdQNCssIE9TUEZ2MiwgT1NQRnYzLCBSSVB2MSwgUklQdjIsIGFuZCBSSVBuZy4KKworR05VIFplYnJhIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgYXMgYSBSb3V0ZSBTZXJ2ZXIgYW5kIGEgUm91dGUKK1JlZmxlY3Rvci4gSXQgaXMgbm90IGEgdG9vbGtpdCwgaXQgcHJvdmlkZXMgZnVsbCByb3V0aW5nIHBvd2VyIHVuZGVyCithIG5ldyBhcmNoaXRlY3R1cmUuIEdOVSBaZWJyYSBpcyB1bmlxdWUgaW4gZGVzaWduIGluIHRoYXQgaXQgaGFzIGEKK3Byb2Nlc3MgZm9yIGVhY2ggcHJvdG9jb2wuCisKKyVwcmVwCislc2V0dXAgIC1xCislcGF0Y2gwIC1wMSAtYiAuYmdwaGFzaAorJXBhdGNoMSAtcDAgLWIgLnB0cAorJXBhdGNoMiAtcDEgLWIgLmxpbmtzdGF0ZQorJXBhdGNoMyAtcDEgLWIgLm9zcGYtcHRtcAorJXBhdGNoNCAtcDEgLWIgLm9zcGYtbWlzYworJXBhdGNoNSAtcDEgLWIgLm9zcGYtb2xzYQorJXBhdGNoNyAtcDEgLWIgLnZ0eXNoLXdyaXRlCislcGF0Y2g4IC1wMiAtYiAub3NwZi1tZDVhdXRoLXNlcW51bQorJXBhdGNoOSAtcDAgLWIgLm9zcGZkLW9pX3dyaXRlX3EKKyVwYXRjaDEwIC1wMCAtYiAucmlwZC1uZXRtYXNrCislcGF0Y2gxMSAtcDAgLWIgLm9zcGZkLW1kNS1idWZmZXIKKyVwYXRjaDEyIC1wMCAtYiAuemVicmEtbXVsdGkKKyV7X190YXJ9IC16eGYgJXtTT1VSQ0UxMH0KKworJWJ1aWxkCislY29uZmlndXJlIFwKKwktLXdpdGgtY2ZsYWdzPSItTzIiIFwKKwktLWVuYWJsZS1uZXRsaW5rIFwKKyVpZiAld2l0aF9pcHY2CisJLS1lbmFibGUtaXB2NiBcCislZW5kaWYKKyVpZiAld2l0aF9zbm1wCisJLS1lbmFibGUtc25tcCBcCislZW5kaWYKKyVpZiAld2l0aF9tdWx0aXBhdGgKKwktLWVuYWJsZS1tdWx0aXBhdGg9JXdpdGhfbXVsdGlwYXRoIFwKKyVlbmRpZgorJWlmICV3aXRoX3RjcF96ZWJyYQorCS0tZW5hYmxlLXRjcC16ZWJyYSBcCislZW5kaWYKKyVpZiAld2l0aF9uc3NhCisJLS1lbmFibGUtbnNzYSBcCislZW5kaWYKKyVpZiAld2l0aF9vcGFxdWVfbHNhCisJLS1lbmFibGUtb3BhcXVlLWxzYSBcCislZW5kaWYKKyVpZiAld2l0aF9vc3BmX3RlCisJLS1lbmFibGUtb3NwZi10ZSBcCislZW5kaWYKKyVpZiAld2l0aF92dHlzaAorCS0tZW5hYmxlLXZ0eXNoIFwKKyVlbmRpZgorJWlmICV3aXRoX3BhbQorCS0td2l0aC1saWJwYW0KKyVlbmRpZgorCitwdXNoZCB2dHlzaAorbWFrZSAlez9fc21wX21mbGFnc30gcmVidWlsZAorcG9wZAorCittYWtlICV7P19zbXBfbWZsYWdzfSBNQUtFSU5GTz0ibWFrZWluZm8gLS1uby1zcGxpdCIKKworcHVzaGQgZG9jCit0ZXhpMmh0bWwgemVicmEudGV4aQorcG9wZAorCislaW5zdGFsbAorcm0gLXJmICRSUE1fQlVJTERfUk9PVAorCitpbnN0YWxsIC1kICRSUE1fQlVJTERfUk9PVC9ldGMve3JjLmQvaW5pdC5kLHN5c2NvbmZpZyxsb2dyb3RhdGUuZCxwYW0uZH0gXAorCSRSUE1fQlVJTERfUk9PVC92YXIvbG9nL3plYnJhICRSUE1fQlVJTERfUk9PVCV7X2luZm9kaXJ9CisKK21ha2UgaW5zdGFsbCBcCisJREVTVERJUj0kUlBNX0JVSUxEX1JPT1QKKworaW5zdGFsbCAle1NPVVJDRTF9ICRSUE1fQlVJTERfUk9PVC9ldGMvcmMuZC9pbml0LmQvemVicmEKK2luc3RhbGwgJXtTT1VSQ0UyfSAkUlBNX0JVSUxEX1JPT1QvZXRjL3JjLmQvaW5pdC5kL2JncGQKK2luc3RhbGwgJXtTT1VSQ0UzfSAkUlBNX0JVSUxEX1JPT1QvZXRjL3JjLmQvaW5pdC5kL29zcGY2ZAoraW5zdGFsbCAle1NPVVJDRTR9ICRSUE1fQlVJTERfUk9PVC9ldGMvcmMuZC9pbml0LmQvb3NwZmQKK2luc3RhbGwgJXtTT1VSQ0U1fSAkUlBNX0JVSUxEX1JPT1QvZXRjL3JjLmQvaW5pdC5kL3JpcGQKK2luc3RhbGwgJXtTT1VSQ0U2fSAkUlBNX0JVSUxEX1JPT1QvZXRjL3JjLmQvaW5pdC5kL3JpcG5nZAoraW5zdGFsbCAtbTY0NCAle1NPVVJDRTh9ICRSUE1fQlVJTERfUk9PVC9ldGMvcGFtLmQvemVicmEKK2luc3RhbGwgLW02NDQgJXtTT1VSQ0U5fSAkUlBNX0JVSUxEX1JPT1QvZXRjL2xvZ3JvdGF0ZS5kL3plYnJhCisKKworJXBvc3QKKyMgemVicmFfc3BlY19hZGRfc2VydmljZSA8c2VyY2ljZSBuYW1lPiA8cG9ydC9wcm90bz4gPGNvbW1lbnQ+CisjIGUuZy4gemVicmFfc3BlY19hZGRfc2VydmljZSB6ZWJyYXNydiAyNjAwL3RjcCAiemVicmEgc2VydmljZSIKKworemVicmFfc3BlY19hZGRfc2VydmljZSAoKQoreworICAjIEFkZCBwb3J0IC9ldGMvc2VydmljZXMgZW50cnkgaWYgaXQgaXNuJ3QgYWxyZWFkeSB0aGVyZSAKKyAgaWYgWyAtZiAvZXRjL3NlcnZpY2VzIF0gJiYgISBncmVwIC1xICJeJDFbXmEtekEtWjAtOV0iIC9ldGMvc2VydmljZXMgOyB0aGVuCisgICAgZWNobyAiJDEJCSQyCQkJIyAkMyIgID4+IC9ldGMvc2VydmljZXMKKyAgZmkKK30KKworemVicmFfc3BlY19hZGRfc2VydmljZSB6ZWJyYXNydiAyNjAwL3RjcCAiemVicmEgc2VydmljZSIKK3plYnJhX3NwZWNfYWRkX3NlcnZpY2UgemVicmEgICAgMjYwMS90Y3AgInplYnJhIHZ0eSIKK3plYnJhX3NwZWNfYWRkX3NlcnZpY2UgcmlwZCAgICAgMjYwMi90Y3AgIlJJUGQgdnR5IgoremVicmFfc3BlY19hZGRfc2VydmljZSByaXBuZ2QgICAyNjAzL3RjcCAiUklQbmdkIHZ0eSIKK3plYnJhX3NwZWNfYWRkX3NlcnZpY2Ugb3NwZmQgICAgMjYwNC90Y3AgIk9TUEZkIHZ0eSIKK3plYnJhX3NwZWNfYWRkX3NlcnZpY2UgYmdwZCAgICAgMjYwNS90Y3AgIkJHUGQgdnR5IgoremVicmFfc3BlY19hZGRfc2VydmljZSBvc3BmNmQgICAyNjA2L3RjcCAiT1NQRjZkIHZ0eSIKKworL3NiaW4vY2hrY29uZmlnIC0tYWRkIHplYnJhIAorL3NiaW4vY2hrY29uZmlnIC0tYWRkIHJpcGQKKy9zYmluL2Noa2NvbmZpZyAtLWFkZCByaXBuZ2QKKy9zYmluL2Noa2NvbmZpZyAtLWFkZCBvc3BmZAorL3NiaW4vY2hrY29uZmlnIC0tYWRkIG9zcGY2ZAorL3NiaW4vY2hrY29uZmlnIC0tYWRkIGJncGQKKworL3NiaW4vaW5zdGFsbC1pbmZvICV7X2luZm9kaXJ9L3plYnJhLmluZm8uZ3ogJXtfaW5mb2Rpcn0vZGlyCisKKyMgQ3JlYXRlIGR1bW15IGZpbGVzIGlmIHRoZXkgZG9uJ3QgZXhpc3Qgc28gYmFzaWMgZnVuY3Rpb25zIGNhbiBiZSB1c2VkLgoraWYgWyAhIC1lICV7X3N5c2NvbmZkaXJ9L3plYnJhLmNvbmYgXTsgdGhlbgorCWVjaG8gImhvc3RuYW1lIGBob3N0bmFtZWAiID4gJXtfc3lzY29uZmRpcn0vemVicmEuY29uZgorCWNobW9kIDY0MCAle19zeXNjb25mZGlyfS96ZWJyYS5jb25mCitmaQoraWYgWyAhIC1lICV7X3N5c2NvbmZkaXJ9L3Z0eXNoLmNvbmYgXTsgdGhlbgorCXRvdWNoICV7X3N5c2NvbmZkaXJ9L3Z0eXNoLmNvbmYKKwljaG1vZCA2NDAgJXtfc3lzY29uZmRpcn0vdnR5c2guY29uZgorZmkKKworJXBvc3R1bgoraWYgWyAiJDEiIC1nZSAgIjEiIF07IHRoZW4KKwkvZXRjL3JjLmQvaW5pdC5kL3plYnJhICBjb25kcmVzdGFydCA+L2Rldi9udWxsIDI+JjEKKwkvZXRjL3JjLmQvaW5pdC5kL3JpcGQgICBjb25kcmVzdGFydCA+L2Rldi9udWxsIDI+JjEKKwkvZXRjL3JjLmQvaW5pdC5kL3JpcG5nZCBjb25kcmVzdGFydCA+L2Rldi9udWxsIDI+JjEKKwkvZXRjL3JjLmQvaW5pdC5kL29zcGZkICBjb25kcmVzdGFydCA+L2Rldi9udWxsIDI+JjEKKwkvZXRjL3JjLmQvaW5pdC5kL29zcGY2ZCBjb25kcmVzdGFydCA+L2Rldi9udWxsIDI+JjEKKwkvZXRjL3JjLmQvaW5pdC5kL2JncGQgICBjb25kcmVzdGFydCA+L2Rldi9udWxsIDI+JjEKK2ZpCisvc2Jpbi9pbnN0YWxsLWluZm8gLS1kZWxldGUgJXtfaW5mb2Rpcn0vemVicmEuaW5mby5neiAle19pbmZvZGlyfS9kaXIKKworJXByZXVuCitpZiBbICIkMSIgPSAiMCIgXTsgdGhlbgorICAgICAgICAvc2Jpbi9jaGtjb25maWcgLS1kZWwgemVicmEKKwkvc2Jpbi9jaGtjb25maWcgLS1kZWwgcmlwZAorCS9zYmluL2Noa2NvbmZpZyAtLWRlbCByaXBuZ2QKKwkvc2Jpbi9jaGtjb25maWcgLS1kZWwgb3NwZmQKKwkvc2Jpbi9jaGtjb25maWcgLS1kZWwgb3NwZjZkCisJL3NiaW4vY2hrY29uZmlnIC0tZGVsIGJncGQKK2ZpCisKKyVjbGVhbgorI3JtIC1yZiAkUlBNX0JVSUxEX1JPT1QKKworJWZpbGVzCislZGVmYXR0cigtLHJvb3Qscm9vdCkKKyVkb2MgKi8qLnNhbXBsZSogZG9jL3plYnJhLmh0bWwgdG9vbHMgQVVUSE9SUyBDT1BZSU5HCislZG9jIENoYW5nZUxvZyBJTlNUQUxMIE5FV1MgUkVBRE1FIFJFUE9SVElORy1CVUdTIFNFUlZJQ0VTIFRPRE8KKyVkaXIgJWF0dHIoNzUwLHJvb3Qscm9vdCkgJXtfc3lzY29uZmRpcn0KKyVkaXIgJWF0dHIoNzUwLHJvb3Qscm9vdCkgL3Zhci9sb2cvemVicmEKKyVkaXIgJWF0dHIoNzU1LHJvb3Qscm9vdCkgL3Vzci9zaGFyZS9pbmZvCisle19pbmZvZGlyfS8qaW5mbyoKKyV7X21hbmRpcn0vbWFuKi8qCisle19zYmluZGlyfS8qCisle19iaW5kaXJ9LyoKKyVjb25maWcgL2V0Yy96ZWJyYS8qCislY29uZmlnIC9ldGMvcmMuZC9pbml0LmQvKgorJWNvbmZpZyhub3JlcGxhY2UpIC9ldGMvcGFtLmQvemVicmEKKyVjb25maWcobm9yZXBsYWNlKSAlYXR0cig2NDAscm9vdCxyb290KSAvZXRjL2xvZ3JvdGF0ZS5kLyoKKworJWNoYW5nZWxvZworKiBNb24gTm92IDExIDIwMDIgUGF1bCBKYWttYSA8cGF1bGpAYWxwaHlyYS5pZT4KKy0gdXBkYXRlIHRvIGxhdGVzdCBDVlMKKy0gYWRkIEdyZWcgVHJveGVsJ3MgbWQ1IGJ1ZmZlciBjb3B5L2R1cCBmaXgKKy0gYWRkIFJJUHYxIGZpeAorLSBhZGQgRnJhbmsncyBtdWx0aWNhc3QgZmxhZyBmaXgKKworKiBXZWQgT2N0IDA5IDIwMDIgUGF1bCBKYWttYSA8cGF1bGpAYWxwaHlyYS5pZT4KKy0gdXBkYXRlIHRvIGxhdGVzdCBDVlMKKy0gdGltZXN0YW1wZWQgY3J5cHRfc2VxbnVtIHBhdGNoCistIG9pLT5vbl93cml0ZV9xIGZpeAorCisqIE1vbiBTZXAgMzAgMjAwMiBQYXVsIEpha21hIDxwYXVsakBhbHBoeXJhLmllPgorLSB1cGRhdGUgdG8gbGF0ZXN0IENWUworLSBhZGQgdnR5c2ggJ3dyaXRlLWNvbmZpZyAoaW50ZWdyYXRlZHxkYWVtb24pJyBwYXRjaAorLSBhbHdheXMgJ21ha2UgcmVidWlsZCcgaW4gdnR5c2gvIHRvIGNhdGNoIG5ldyBjb21tYW5kcworCisqIEZyaSBTZXAgMTMgMjAwMiBQYXVsIEpha21hIDxwYXVsakBhbHBoeXJhLmllPgorLSB1cGRhdGUgdG8gMC45M2IKKworKiBXZWQgU2VwIDExIDIwMDIgUGF1bCBKYWttYSA8cGF1bGpAYWxwaHlyYS5pZT4KKy0gdXBkYXRlIHRvIGxhdGVzdCBDVlMKKy0gYWRkICIvc2Jpbi9pcCByb3V0ZSBmbHVzaCBwcm90byB6ZWJyYSIgdG8gemVicmEgUkggaW5pdCBvbiBzdGFydHVwCisKKyogU2F0IEF1ZyAyNCAyMDAyIFBhdWwgSmFrbWEgPHBhdWxqQGFscGh5cmEuaWU+CistIHVwZGF0ZSB0byBjdXJyZW50IENWUworLSBhZGQgT1NQRiBwb2ludCB0byBtdWx0aXBvaW50IHBhdGNoCistIGFkZCBPU1BGIGJ1Z2ZpeGVzCistIGFkZCBCR1AgaGFzaCBvcHRpbWlzYXRpb24gcGF0Y2gKKworKiBGcmkgSnVuIDE0IDIwMDIgUGF1bCBKYWttYSA8cGF1bGpAYWxwaHlyYS5pZT4KKy0gdXBkYXRlIHRvIDAuOTMtcHJlMSAvIENWUworLSBhZGQgbGluayBzdGF0ZSBkZXRlY3Rpb24gc3VwcG9ydAorLSBhZGQgZ2VuZXJpYyBQdFAgYW5kIFJGQzMwMjEgc3VwcG9ydAorLSB2YXJpb3VzIGJ1ZyBmaXhlcworCisqIFRodSBBdWcgMDkgMjAwMSBFbGxpb3QgTGVlIDxzb3B3aXRoQHJlZGhhdC5jb20+IDAuOTFhLTYKKy0gRml4IGJ1ZyAjNTEzMzYKKworKiBXZWQgQXVnICAxIDIwMDEgVHJvbmQgRWl2aW5kIEdsb21zcvhkIDx0ZWdAcmVkaGF0LmNvbT4gMC45MWEtNQorLSBVc2UgZ2VuZXJpYyBpbml0c2NyaXB0IHN0cmluZ3MgaW5zdGVhZCBvZiBpbml0c2NyaXB0IHNwZWNpZmljCisgICggIlN0YXJ0aW5nIGZvbzogIiAtPiAiU3RhcnRpbmcgJHByb2c6IiApCisKKyogRnJpIEp1bCAyNyAyMDAxIEVsbGlvdCBMZWUgPHNvcHdpdGhAcmVkaGF0LmNvbT4gMC45MWEtNAorLSBCdW1wIHRoZSByZWxlYXNlIHdoZW4gcmVidWlsZGluZyBpbnRvIHRoZSBkaXN0LgorCisqIFR1ZSBGZWIgIDYgMjAwMSBUaW0gUG93ZXJzIDx0aW1wQHJlZGhhdC5jb20+CistIGJ1aWx0IGZvciBQb3dlcnRvb2xzCisKKyogU3VuIEZlYiAgNCAyMDAxIFBla2thIFNhdm9sYSA8cGVra2FzQG5ldGNvcmUuZmk+IAorLSBIYWNrZWQgdXAgZnJvbSBQTEQgTGludXggMC45MC0xLCBNYW5kcmFrZSAwLjkwLTFtZGsgYW5kIG9uZSBmcm9tIHplYnJhLm9yZy4KKy0gVXBkYXRlIHRvIDAuOTFhCistIFZlcnkgaGVhdnkgbW9kaWZpY2F0aW9ucyB0byBpbml0LmQvKiwgLnNwZWMsIHBhbSwgaTE4biwgbG9ncm90YXRlLCBldGMuCistIFNob3VsZCBiZSBxdWl0ZSBSZWQgSGF0J2lzcXVlIG5vdy4K