ZGlmZiAtLWdpdCBhL3Rlc3RpbmcvQlVJTEQuZ24gYi90ZXN0aW5nL0JVSUxELmduCmluZGV4IDc4N2FhNmQuLjAzNGRlM2MgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvQlVJTEQuZ24KKysrIGIvdGVzdGluZy9CVUlMRC5nbgpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMKICMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCkBAIC03LDE2ICs3LDIzIEBACiBzb3VyY2Vfc2V0KCJ0ZXN0X3N1cHBvcnQiKSB7CiAgIHRlc3Rvbmx5ID0gdHJ1ZQogICBzb3VyY2VzID0gWworICAgICJjb21tYW5kX2xpbmVfaGVscGVycy5jcHAiLAorICAgICJjb21tYW5kX2xpbmVfaGVscGVycy5oIiwKKyAgICAiZm9udF9yZW5hbWVyLmNwcCIsCisgICAgImZvbnRfcmVuYW1lci5oIiwKICAgICAiZnhfc3RyaW5nX3Rlc3RoZWxwZXJzLmNwcCIsCiAgICAgImZ4X3N0cmluZ190ZXN0aGVscGVycy5oIiwKICAgICAiaW52YWxpZF9zZWVrYWJsZV9yZWFkX3N0cmVhbS5jcHAiLAogICAgICJpbnZhbGlkX3NlZWthYmxlX3JlYWRfc3RyZWFtLmgiLAogICAgICJwc2V1ZG9fcmV0YWluYWJsZS5oIiwKKyAgICAic2NvcGVkX3NldF90ei5jcHAiLAorICAgICJzY29wZWRfc2V0X3R6LmgiLAogICAgICJzdHJpbmdfd3JpdGVfc3RyZWFtLmNwcCIsCiAgICAgInN0cmluZ193cml0ZV9zdHJlYW0uaCIsCisgICAgInRlc3RfZm9udHMuY3BwIiwKKyAgICAidGVzdF9mb250cy5oIiwKICAgICAidGVzdF9sb2FkZXIuY3BwIiwKICAgICAidGVzdF9sb2FkZXIuaCIsCi0gICAgInRlc3Rfc3VwcG9ydC5jcHAiLAogICAgICJ0ZXN0X3N1cHBvcnQuaCIsCiAgICAgInV0aWxzL2JpdG1hcF9zYXZlci5jcHAiLAogICAgICJ1dGlscy9iaXRtYXBfc2F2ZXIuaCIsCkBAIC0yNCwxMCArMzEsMTIgQEAKICAgICAidXRpbHMvZmlsZV91dGlsLmgiLAogICAgICJ1dGlscy9oYXNoLmNwcCIsCiAgICAgInV0aWxzL2hhc2guaCIsCi0gICAgInV0aWxzL3BhdGhfc2VydmljZS5jcHAiLAotICAgICJ1dGlscy9wYXRoX3NlcnZpY2UuaCIsCiAgIF0KICAgZGF0YSA9IFsgInJlc291cmNlcy8iIF0KKyAgcHVibGljX2RlcHMgPSBbCisgICAgIjpwYXRoX3NlcnZpY2UiLAorICAgICIvL3RoaXJkX3BhcnR5L3Rlc3RfZm9udHMiLAorICBdCiAgIGRlcHMgPSBbCiAgICAgIi4uLzpwZGZpdW1fcHVibGljX2hlYWRlcnMiLAogICAgICIuLi9jb3JlL2Zkcm0iLApAQCAtMzUsOSArNDQsMTEgQEAKICAgICAiLi4vY29yZS9meGdlIiwKICAgICAiaW1hZ2VfZGlmZiIsCiAgIF0KLSAgY29uZmlncyArPSBbICIuLi86cGRmaXVtX2NvcmVfY29uZmlnIiBdCisgIGNvbmZpZ3MgKz0gWworICAgICIuLi86cGRmaXVtX3N0cmljdF9jb25maWciLAorICAgICIuLi86cGRmaXVtX25vc2hvcnRlbl9jb25maWciLAorICBdCiAgIHZpc2liaWxpdHkgPSBbICIuLi8qIiBdCi0KICAgaWYgKHBkZl9lbmFibGVfdjgpIHsKICAgICBzb3VyY2VzICs9IFsKICAgICAgICJ2OF9pbml0aWFsaXplci5jcHAiLApAQCAtNTEsMjUgKzYyLDkyIEBACiAgIH0KIH0KIAorc291cmNlX3NldCgicGF0aF9zZXJ2aWNlIikgeworICB0ZXN0b25seSA9IHRydWUKKyAgc291cmNlcyA9IFsKKyAgICAidXRpbHMvcGF0aF9zZXJ2aWNlLmNwcCIsCisgICAgInV0aWxzL3BhdGhfc2VydmljZS5oIiwKKyAgXQorICBkZXBzID0gWyAiLi4vY29yZS9meGNydCIgXQorICBjb25maWdzICs9IFsKKyAgICAiLi4vOnBkZml1bV9zdHJpY3RfY29uZmlnIiwKKyAgICAiLi4vOnBkZml1bV9ub3Nob3J0ZW5fY29uZmlnIiwKKyAgXQorICB2aXNpYmlsaXR5ID0gWyAiLi4vKiIgXQorfQorCitzb3VyY2Vfc2V0KCJ0ZXN0X2Vudmlyb25tZW50cyIpIHsKKyAgdGVzdG9ubHkgPSB0cnVlCisgIHNvdXJjZXMgPSBbCisgICAgInBkZl90ZXN0X2Vudmlyb25tZW50LmNwcCIsCisgICAgInBkZl90ZXN0X2Vudmlyb25tZW50LmgiLAorICBdCisgIGRlcHMgPSBbCisgICAgIjp0ZXN0X3N1cHBvcnQiLAorICAgICIuLi9jb3JlL2Z4Y3J0IiwKKyAgICAiLi4vY29yZS9meGdlIiwKKyAgICAiLy90ZXN0aW5nL2d0ZXN0IiwKKyAgXQorICBjb25maWdzICs9IFsKKyAgICAiLi4vOnBkZml1bV9zdHJpY3RfY29uZmlnIiwKKyAgICAiLi4vOnBkZml1bV9ub3Nob3J0ZW5fY29uZmlnIiwKKyAgXQorICBpZiAocGRmX2VuYWJsZV92OCkgeworICAgIHNvdXJjZXMgKz0gWworICAgICAgInY4X3Rlc3RfZW52aXJvbm1lbnQuY3BwIiwKKyAgICAgICJ2OF90ZXN0X2Vudmlyb25tZW50LmgiLAorICAgIF0KKyAgICBkZXBzICs9IFsKKyAgICAgICIuLi9meGpzIiwKKyAgICAgICIvL3Y4IiwKKyAgICAgICIvL3Y4OnY4X2xpYnBsYXRmb3JtIiwKKyAgICBdCisgICAgY29uZmlncyArPSBbICIvL3Y4OmV4dGVybmFsX3N0YXJ0dXBfZGF0YSIgXQorICB9CisgIGlmIChwZGZfZW5hYmxlX3hmYSkgeworICAgIHNvdXJjZXMgKz0gWworICAgICAgInhmYV90ZXN0X2Vudmlyb25tZW50LmNwcCIsCisgICAgICAieGZhX3Rlc3RfZW52aXJvbm1lbnQuaCIsCisgICAgXQorICAgIGRlcHMgKz0gWworICAgICAgIi4uL2Z4anM6Z2MiLAorICAgICAgIi4uL3hmYS9mZ2FzL2ZvbnQiLAorICAgIF0KKyAgfQorfQorCiBzb3VyY2Vfc2V0KCJ1bml0X3Rlc3Rfc3VwcG9ydCIpIHsKICAgdGVzdG9ubHkgPSB0cnVlCiAgIHNvdXJjZXMgPSBbXQogICBkZXBzID0gW10KLQotICBjb25maWdzICs9IFsgIi4uLzpwZGZpdW1fY29yZV9jb25maWciIF0KLSAgdmlzaWJpbGl0eSA9IFsgIi4uLyoiIF0KLQotICBpZiAocGRmX2VuYWJsZV94ZmEpIHsKKyAgY29uZmlncyArPSBbCisgICAgIi4uLzpwZGZpdW1fc3RyaWN0X2NvbmZpZyIsCisgICAgIi4uLzpwZGZpdW1fbm9zaG9ydGVuX2NvbmZpZyIsCisgIF0KKyAgcHVibGljX2RlcHMgPSBbCisgICAgIjp0ZXN0X2Vudmlyb25tZW50cyIsCisgICAgIjp0ZXN0X3N1cHBvcnQiLAorICBdCisgIGlmIChwZGZfZW5hYmxlX3Y4KSB7CiAgICAgc291cmNlcyArPSBbCi0gICAgICAieGZhX3VuaXRfdGVzdF9zdXBwb3J0LmNwcCIsCi0gICAgICAieGZhX3VuaXRfdGVzdF9zdXBwb3J0LmgiLAorICAgICAgImZ4djhfdW5pdHRlc3QuY3BwIiwKKyAgICAgICJmeHY4X3VuaXR0ZXN0LmgiLAogICAgIF0KICAgICBkZXBzICs9IFsKLSAgICAgICIuLi86cGRmaXVtIiwKLSAgICAgICIuLi9jb3JlL2Z4Z2UiLAotICAgICAgIi4uL3hmYS9mZ2FzIiwKKyAgICAgICIuLi9meGpzIiwKICAgICAgICIvL3Rlc3RpbmcvZ3Rlc3QiLAogICAgIF0KKyAgICBjb25maWdzICs9IFsgIi8vdjg6ZXh0ZXJuYWxfc3RhcnR1cF9kYXRhIiBdCisgICAgaWYgKHBkZl9lbmFibGVfeGZhKSB7CisgICAgICBzb3VyY2VzICs9IFsKKyAgICAgICAgImZ4Z2NfdW5pdHRlc3QuY3BwIiwKKyAgICAgICAgImZ4Z2NfdW5pdHRlc3QuaCIsCisgICAgICBdCisgICAgICBkZXBzICs9IFsKKyAgICAgICAgIi4uL2Z4anM6Z2MiLAorICAgICAgICAiLy90ZXN0aW5nL2d0ZXN0IiwKKyAgICAgIF0KKyAgICB9CiAgIH0KIH0KIApAQCAtNzgsNiArMTU2LDEwIEBACiAgIHNvdXJjZXMgPSBbCiAgICAgImVtYmVkZGVyX3Rlc3QuY3BwIiwKICAgICAiZW1iZWRkZXJfdGVzdC5oIiwKKyAgICAiZW1iZWRkZXJfdGVzdF9jb25zdGFudHMuY3BwIiwKKyAgICAiZW1iZWRkZXJfdGVzdF9jb25zdGFudHMuaCIsCisgICAgImVtYmVkZGVyX3Rlc3RfZW52aXJvbm1lbnQuY3BwIiwKKyAgICAiZW1iZWRkZXJfdGVzdF9lbnZpcm9ubWVudC5oIiwKICAgICAiZW1iZWRkZXJfdGVzdF9tb2NrX2RlbGVnYXRlLmgiLAogICAgICJlbWJlZGRlcl90ZXN0X3RpbWVyX2hhbmRsaW5nX2RlbGVnYXRlLmgiLAogICAgICJmYWtlX2ZpbGVfYWNjZXNzLmNwcCIsCkBAIC04NSwyNiArMTY3LDM3IEBACiAgICAgInJhbmdlX3NldC5jcHAiLAogICAgICJyYW5nZV9zZXQuaCIsCiAgIF0KLQogICBkZXBzID0gWwotICAgICI6dGVzdF9zdXBwb3J0IiwKICAgICAiLi4vOnBkZml1bV9wdWJsaWNfaGVhZGVycyIsCiAgICAgIi4uL2NvcmUvZmRybSIsCiAgICAgIi4uL2NvcmUvZnhjcnQiLAorICAgICIuLi9jb3JlL2Z4Z2UiLAogICAgICIuLi90aGlyZF9wYXJ0eTpwZGZpdW1fYmFzZSIsCiAgICAgIi8vdGVzdGluZy9nbW9jayIsCiAgICAgIi8vdGVzdGluZy9ndGVzdCIsCiAgIF0KLSAgY29uZmlncyArPSBbICIuLi86cGRmaXVtX2NvcmVfY29uZmlnIiBdCisgIHB1YmxpY19kZXBzID0gWworICAgICI6dGVzdF9lbnZpcm9ubWVudHMiLAorICAgICI6dGVzdF9zdXBwb3J0IiwKKyAgXQorICBjb25maWdzICs9IFsKKyAgICAiLi4vOnBkZml1bV9zdHJpY3RfY29uZmlnIiwKKyAgICAiLi4vOnBkZml1bV9ub3Nob3J0ZW5fY29uZmlnIiwKKyAgXQogICB2aXNpYmlsaXR5ID0gWyAiLi4vKiIgXQotCiAgIGlmIChwZGZfZW5hYmxlX3Y4KSB7CiAgICAgc291cmNlcyArPSBbCisgICAgICAiZXh0ZXJuYWxfZW5naW5lX2VtYmVkZGVyX3Rlc3QuY3BwIiwKKyAgICAgICJleHRlcm5hbF9lbmdpbmVfZW1iZWRkZXJfdGVzdC5oIiwKICAgICAgICJqc19lbWJlZGRlcl90ZXN0LmNwcCIsCiAgICAgICAianNfZW1iZWRkZXJfdGVzdC5oIiwKICAgICBdCi0gICAgZGVwcyArPSBbICIuLi9meGpzIiBdCi0KKyAgICBkZXBzICs9IFsKKyAgICAgICIuLi9meGpzIiwKKyAgICAgICIvL3Y4IiwKKyAgICAgICIvL3Y4OnY4X2xpYnBsYXRmb3JtIiwKKyAgICBdCisgICAgY29uZmlncyArPSBbICIvL3Y4OmV4dGVybmFsX3N0YXJ0dXBfZGF0YSIgXQogICAgIGlmIChwZGZfZW5hYmxlX3hmYSkgewogICAgICAgc291cmNlcyArPSBbCiAgICAgICAgICJ4ZmFfanNfZW1iZWRkZXJfdGVzdC5jcHAiLApAQCAtMTE5LDMgKzIxMiw3IEBACiAgICAgfQogICB9CiB9CisKKyMgRHVtbXkgZ3JvdXAgdG8ga2VlcCBzYXRpc2Z5IHJlZmVyZW5jZXMgZnJvbSAvL2J1aWxkLgorZ3JvdXAoInRlc3Rfc2NyaXB0c19zaGFyZWQiKSB7Cit9CmRpZmYgLS1naXQgYS90ZXN0aW5nL1NVUFBSRVNTSU9OUyBiL3Rlc3RpbmcvU1VQUFJFU1NJT05TCmluZGV4IGIzMDU5ZTkuLmI1MGQzY2UgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvU1VQUFJFU1NJT05TCisrKyBiL3Rlc3RpbmcvU1VQUFJFU1NJT05TCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgMjAxNiBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycwogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAjCkBAIC0xMCw2ICsxMCw3IEBACiAjIENvbHVtbiAxOiBwbGF0Zm9ybTogKiwgd2luLCBtYWMsIGxpbnV4CiAjIENvbHVtbiAyOiB2OCBzdXBwb3J0OiAqLCBub3Y4LCB2OAogIyBDb2x1bW4gMzogeGZhIHN1cHBvcnQ6ICosIG5veGZhLCB4ZmEKKyMgQ29sdW1uIDQ6IHJlbmRlcmluZyBzdXBwb3J0OiAqLCBhZ2csIHNraWEKICMKICMgQWxsIGNvbHVtbnMgb24gYSBsaW5lIG9uIGEgbGluZSBtdXN0IG1hdGNoLCBidXQgZmlsZW5hbWVzIG1heSBiZSByZXBlYXRlZAogIyBvbiBzdWJzZXF1ZW50IGxpbmVzIHRvIHN1cHByZXNzIG1vcmUgY2FzZXMuICBXaXRoaW4gZWFjaCBjb2x1bW4sIGFueSBvbmUgb2YKQEAgLTIxLDMzNyArMjIsMzc5IEBACiAjCiAjIENvcnB1cyB0ZXN0cwogIwotMDUwX2V4dHJhX20ucGRmIG1hYyx3aW4gKiAqCi0xMi5wZGYgbWFjICogKgotMV8xMF93YXRlcm1hcmsucGRmICogKiAqCi0xXzFfdGV4dGJveC5wZGYgKiAqICoKLTFfMl90eXBld3JpdGVyLnBkZiAqICogKgotMV8zX2NhbGxvdXQucGRmICogKiAqCi0xX21hdHJpeC5wZGYgbWFjICogKgotMW1fZGlmZl9sc2pkZi5wZGYgbWFjICogKgotMW1fc2FtZV94eHh4LnBkZiBtYWMgKiAqCi0yXzExX3N0YW1wMy5wZGYgbWFjICogKgotMl82X3RleHRib3gucGRmICogKiAqCi0yX2NvbG9yX2NhbHJnYi5wZGYgbWFjICogKgotMl9jb2xvcl9pbmRleGVkLnBkZiBtYWMgKiAqCi0zXzRfdGV4dGJveC5wZGYgKiAqICoKLTNfaW50ZXJwb2xhdGVfaW1hZ2UucGRmIG1hYyAqICoKLTNiaWdwcmV2aWV3LnBkZiBtYWMsd2luICogKgotNF8zNS5wZGYgbWFjICogKgotNF8zOS5wZGYgbWFjICogKgotNS4xLnBkZiBtYWMgKiAqCi01LjIucGRmICogKiAqCi01LjVfc2ltcGxlX2ZvbnQucGRmIG1hYyx3aW4gKiAqCi04LjJfbmFtZV9kZXN0X2ZfZGVzdC5wZGYgbWFjICogKgotOC4yX291dGxpbmUucGRmIG1hYyAqICoKLTguM19wcmVzZW50YXRpb24ucGRmIG1hYyAqICoKLUZSQ18xMF84LjIuMl9fVDguM19vcmlnaW5hbF9maWxlLnBkZiAqICogKgotRlJDXzExXzguMi4yX19UOC4zX2ZpcnN0X2xhc3RfZXhjaGFuZ2UucGRmICogKiAqCi1GUkNfMTJfOC4yLjJfX1Q4LjNfZmlyc3Rfb3V0bGluZV9vYmpfSUQucGRmICogKiAqCi1GUkNfMTNfOC4yLjJfX1Q4LjNfQ291bnRfZWRpdDMwMC5wZGYgKiAqICoKLUZSQ18xNF84LjIuMl9fVDguM19Db3VudF9lZGl0MC5wZGYgKiAqICoKLUZSQ18xNV84LjIuMl9fVDguM19Db3VudF9lZGl0MS5wZGYgKiAqICoKLUZSQ18xNl84LjIuMl9fVDguM19Db3VudF9lZGl0XzEucGRmICogKiAqCi1GUkNfMV84LjIuMl9fVDguM19GaXJzdF9lbXB0eS5wZGYgKiAqICoKLUZSQ18yXzguMi4yX19UOC4zX0xhc3RfZW1wdHkucGRmICogKiAqCi1GUkNfMy41X1BfXzM2MTZfUGFzc3dvcmRfMS5wZGYgKiAqICoKLUZSQ18zXzguMi4yX1R5cGVfZW1wdHkucGRmICogKiAqCi1GUkNfNF84LjIuMl9fVDguM19Db3VudF9lbXB0eS5wZGYgKiAqICoKLUZSQ181XzguMi4yX19UOC4zX0ZpcnN0X3JlbW92ZS5wZGYgKiAqICoKLUZSQ182XzguMi4yX19UOC4zX0xhc3RfcmVtb3ZlLnBkZiAqICogKgotRlJDXzdfOC4yLjJfVHlwZV9yZW1vdmUucGRmICogKiAqCi1GUkNfOC40LjFfQW5ub3RhdGlvbnNfTS5wZGYgKiAqICoKLUZSQ184LjQuMV9Bbm5vdGF0aW9uc19OTS5wZGYgKiAqICoKLUZSQ184LjVfUGFnZV9DX1N1Ym1pdEZvcm0ucGRmICogKiAqCi1GUkNfOC41X1BhZ2VfUElfUmVzZXRGb3JtX1BoYW50b20ucGRmICogKiAqCi1GUkNfOC41X1dpZGdldF9GLnBkZiAqIG5vdjggKgotRlJDXzhfOC4yLjJfX1Q4LjNfQ291bnRfcmVtb3ZlLnBkZiAqICogKgotRlJDXzlfOC4yLjJfX1Q4LjNfcmVtb3ZlX2ZpcnN0X2l0ZW0ucGRmICogKiAqCi1hY3Rpb24ucGRmICogKiAqCi1hY3Rpb25fZXhlY3V0ZV9hX21lbnVfaXRlbS5wZGYgbWFjICogKgotYWN0aW9uX2hpZGVfc2hvd19mb3JtLnBkZiBtYWMgKiAqCi1hY3Rpb25fb25fZm9jdXMucGRmIG1hYyAqICoKLWFjdGlvbl9vcGVuX2FfZmlsZS5wZGYgbWFjICogKgotYWN0aW9uX3BkZl9zYXZlX2Nsb3NlLnBkZiBtYWMgKiAqCi1hY3Rpb25fcmVzZXQucGRmIG1hYyAqICoKLWFjdGlvbl9ydW5famF2YXNjcmlwdC5wZGYgbWFjICogKgotYWN0aW9uX3N1Ym1pdF9hX2Zvcm0ucGRmIG1hYyAqICoKLWFsbF90cmlnZ2VyX2FsZXJ0LnBkZiAqICogKgotYWxsX3RyaWdnZXJfYnJvd3NlZm9yZG9jLnBkZiAqICogKgotYWxsX3RyaWdnZXJfbWFpbG1zZy5wZGYgKiAqICoKLWFsbF90cmlnZ2VyX25ld2RvYy5wZGYgKiAqICoKLWFsbF90cmlnZ2VyX3ByaW50LnBkZiAqICogKgotYWxsX3RyaWdnZXJfcnVuX2pzX2x1bmNodXJsLnBkZiBtYWMgKiAqCi1hbGxfdHJpZ2dlcl9ydW5fanNfbWFpbGRvYy5wZGYgbWFjICogKgotYW5ub3RhdGlvbl9oaWdobGlnaHRfYXV0aG9yX2NvbnRlbnQucGRmIG1hYyAqICoKLWFubm90YXRpb25faGlnaGxpZ2h0X2xvbmdfY29udGVudC5wZGYgbWFjICogKgotYW5ub3RhdGlvbl9oaWdobGlnaHRfbm9fYXV0aG9yLnBkZiBtYWMgKiAqCi1hcHBfbGF1bmNodXJsLnBkZiBtYWMgKiAqCi1hcHBzdG9yZWRlc2NyaXB0aW9uMy4xX2VuX3VwZGF0ZWQucGRmIG1hYyAqICoKLWJvb2ttYXJrLnBkZiAqICogKgotYm9va21hcmtnZXRjb2xvci5wZGYgbWFjICogKgotYnVnXzBfbGVuZ3RoX2xpbmUucGRmIG1hYyAqICoKLWJ1Z18wX3dpZHRoX2xpbmUucGRmIG1hYyAqICoKLWJ1Z180NDAxMzIucGRmIG1hYyAqICoKLWJ1Z193aGl0ZV9zcGFjZS5wZGYgbWFjICogKgotY2FsY29yZGVyaW5kZXhfdGVzdC5wZGYgKiAqICoKLWNhbGN1bGF0ZV9hdmVyYWdlLnBkZiBtYWMgKiAqCi1jYWxjdWxhdGVfb3JkZXIucGRmICogKiAqCi1jYWxjdWxhdGVfc3VtX2FfYl9jLnBkZiBtYWMgKiAqCi1jYWxjdWxhdGVfdmFsaWRhdGUucGRmIG1hYyAqICoKLWNhbGN1bGF0ZV92YWxpZGF0ZS5wZGYgKiBub3Y4ICoKLWNoXzEucGRmICogKiAqCi1jaGVja19ib3gucGRmICogKiAqCi1jb2xvci5wZGYgbWFjICogKgotY29sb3JzcGFjZS5wZGYgbWFjICogKgotY29sb3JzcGFjZV90ZXN0MS5wZGYgbWFjICogKgotY29tYm9fYm94LnBkZiAqICogKgotY29tYm9fYm94X2Zvcm1hdC5wZGYgbWFjICogKgotZGF0ZS5wZGYgbWFjICogKgotZWRpdF90cmFuc2Zvcm0ucGRmIG1hYyAqICoKLWVuX2NvbnRhY3QucGRmIG1hYyAqICoKLWVuX2RpeS5wZGYgbWFjICogKgotZW5fZm94aXQucGRmIG1hYyAqICoKLWVuX2ZxYTIucGRmIG1hYyAqICoKLWVuX2ludHJvZHVjZS5wZGYgbWFjICogKgotZW5fdGVtLnBkZiBtYWMgKiAqCi1lbl91aWNhc2VfLnBkZiBtYWMgKiAqCi1ldmVudC5jaGFuZ2UucGRmIG1hYyAqICoKLWV2ZW50LmNoYW5nZWV4LnBkZiBtYWMgKiAqCi1ldmVudC5rZXlkb3duLnBkZiBtYWMgKiAqCi1ldmVudC5rZXlkb3duXzFfLnBkZiBtYWMgKiAqCi1ldmVudC50eXBlX25hbWUucGRmIG1hYyAqICoKLWV2ZW50LnZhbHVlLnBkZiBtYWMgKiAqCi1ldmVudF9jaGFuZ2UucGRmIG1hYyAqICoKLWV4YW1wbGVfMDAxLnBkZiBtYWMgKiAqCi1leGFtcGxlXzAwMi5wZGYgbWFjLHdpbiAqICoKLWV4YW1wbGVfMDAzLnBkZiBtYWMsd2luICogKgotZXhhbXBsZV8wMDQucGRmIG1hYyAqICoKLWV4YW1wbGVfMDA1LnBkZiBtYWMgKiAqCi1leGFtcGxlXzAwNi5wZGYgbWFjLHdpbiAqICoKLWV4YW1wbGVfMDA3LnBkZiBtYWMgKiAqCi1leGFtcGxlXzAwOC5wZGYgbWFjICogKgotZXhhbXBsZV8wMDkucGRmIG1hYyAqICoKLWV4YW1wbGVfMDEwLnBkZiBtYWMgKiAqCi1leGFtcGxlXzAxMS5wZGYgbWFjICogKgotZXhhbXBsZV8wMTIucGRmIG1hYyAqICoKLWV4YW1wbGVfMDEzLnBkZiBtYWMgKiAqCi1leGFtcGxlXzAxNC5wZGYgbWFjICogKgotZXhhbXBsZV8wMTUucGRmIG1hYyAqICoKLWV4YW1wbGVfMDE2LnBkZiBtYWMgKiAqCi1leGFtcGxlXzAxNy5wZGYgbWFjICogKgotZXhhbXBsZV8wMTgucGRmIG1hYyAqICoKLWV4YW1wbGVfMDE5LnBkZiBtYWMgKiAqCi1leGFtcGxlXzAyMC5wZGYgbWFjICogKgotZXhhbXBsZV8wMjEucGRmIG1hYyAqICoKLWV4YW1wbGVfMDIyLnBkZiBtYWMgKiAqCi1leGFtcGxlXzAyMy5wZGYgbWFjICogKgotZXhhbXBsZV8wMjQucGRmIG1hYyAqICoKLWV4YW1wbGVfMDI1LnBkZiBtYWMgKiAqCi1leGFtcGxlXzAyNi5wZGYgbWFjICogKgotZXhhbXBsZV8wMjcucGRmIG1hYyAqICoKLWV4YW1wbGVfMDI4LnBkZiBtYWMgKiAqCi1leGFtcGxlXzAyOS5wZGYgbWFjICogKgotZXhhbXBsZV8wMzAucGRmIG1hYyAqICoKLWV4YW1wbGVfMDMxLnBkZiBtYWMgKiAqCi1leGFtcGxlXzAzMi5wZGYgbWFjICogKgotZXhhbXBsZV8wMzMucGRmIG1hYyx3aW4gKiAqCi1leGFtcGxlXzAzNC5wZGYgbWFjICogKgotZXhhbXBsZV8wMzUucGRmIG1hYyx3aW4gKiAqCi1leGFtcGxlXzAzNi5wZGYgbWFjLHdpbiAqICoKLWV4YW1wbGVfMDM3LnBkZiBtYWMgKiAqCi1leGFtcGxlXzAzOC5wZGYgbWFjLHdpbiAqICoKLWV4YW1wbGVfMDM5LnBkZiBtYWMgKiAqCi1leGFtcGxlXzA0MC5wZGYgbWFjICogKgotZXhhbXBsZV8wNDEucGRmIG1hYyx3aW4gKiAqCi1leGFtcGxlXzA0Mi5wZGYgbWFjICogKgotZXhhbXBsZV8wNDMucGRmIG1hYyAqICoKLWV4YW1wbGVfMDQ0LnBkZiBtYWMgKiAqCi1leGFtcGxlXzA0NS5wZGYgbWFjLHdpbiAqICoKLWV4YW1wbGVfMDQ2LnBkZiBtYWMsd2luICogKgotZXhhbXBsZV8wNDcucGRmIG1hYyAqICoKLWV4YW1wbGVfMDQ4LnBkZiBtYWMgKiAqCi1leGFtcGxlXzA0OS5wZGYgbWFjICogKgotZXhhbXBsZV8wNTAucGRmIG1hYyAqICoKLWV4YW1wbGVfMDUxLnBkZiBtYWMgKiAqCi1leGFtcGxlXzA1Mi5wZGYgbWFjICogKgotZXhhbXBsZV8wNTMucGRmIG1hYyAqICoKLWV4YW1wbGVfMDU0LnBkZiBtYWMgKiAqCi1leGFtcGxlXzA1NS5wZGYgbWFjLHdpbiAqICoKLWV4YW1wbGVfMDU2LnBkZiBtYWMgKiAqCi1leGFtcGxlXzA1Ny5wZGYgbWFjICogKgotZXhhbXBsZV8wNTgucGRmIG1hYyAqICoKLWV4YW1wbGVfMDU5LnBkZiBtYWMsd2luICogKgotZXhhbXBsZV8wNjAucGRmIG1hYyAqICoKLWV4YW1wbGVfMDYxLnBkZiBtYWMsd2luICogKgotZXhhbXBsZV8wNjIucGRmIG1hYyAqICoKLWV4YW1wbGVfMDYzLnBkZiBtYWMgKiAqCi1leGFtcGxlXzA2NC5wZGYgbWFjICogKgotZXhhbXBsZV8wNjUucGRmIG1hYyAqICoKLWZpbGxmb3JtLnBkZiAqICogKgotZm9ybV9hY3Rpb25fdHJpZ2dlci5wZGYgKiAqICoKLWZvcm1fYnV0dG9uX3NpZ25fdXJsLnBkZiAqICogKgotZm9ybV9jb21ib19zaWduX3VybC5wZGYgKiAqICoKLWZvcm1fY29tYm9ib3gwLnBkZiAqICogKgotZm9ybV9jb21ib2JveF9hY3Rpb2luX2dvdG8ucGRmICogKiAqCi1mb3JtX2NvbWJvYm94X2RhdGUucGRmIG1hYyAqICoKLWZvcm1fY29tYm9ib3hfZGF0ZS5wZGYgKiBub3Y4ICoKLWZvcm1fY29tYm9ib3hfZGF0ZTEucGRmICogKiAqCi1mb3JtX2NvbWJvYm94X2RhdGUyLnBkZiBtYWMgKiAqCi1mb3JtX2NvbWJvYm94X2RhdGUyLnBkZiAqIG5vdjggKgotZm9ybV9jb21ib2JveF9pbXBvcnRmb3JtLnBkZiAqICogKgotZm9ybV9jb21ib2JveF9udW0ucGRmIG1hYyAqICoKLWZvcm1fY29tYm9ib3hfbnVtLnBkZiAqIG5vdjggKgotZm9ybV9jb21ib2JveF9wZXIucGRmIG1hYyAqICoKLWZvcm1fY29tYm9ib3hfcGVyLnBkZiAqIG5vdjggKgotZm9ybV9jb21ib2JveF9wbHVzLnBkZiBtYWMgKiAqCi1mb3JtX2NvbWJvYm94X3BsdXMucGRmICogbm92OCAqCi1mb3JtX2NvbWJvYm94X3Byb2R1Y3QucGRmIG1hYyAqICoKLWZvcm1fY29tYm9ib3hfcHJvZHVjdC5wZGYgKiBub3Y4ICoKLWZvcm1fY29tYm9ib3hfcmVzZXRmb3JtLnBkZiAqICogKgotZm9ybV9jb21ib2JveF90aW1lLnBkZiBtYWMgKiAqCi1mb3JtX2NvbWJvYm94X3RpbWUucGRmICogbm92OCAqCi1mb3JtX2xpc3QucGRmICogKiAqCi1mb3JtX2xpc3QxLnBkZiAqICogKgotZm9ybV9zYW1lLnBkZiBtYWMgKiAqCi1mb3JtX3RleHRfc2lnbl91cmwucGRmICogKiAqCi1mb3JtYXRfY29tYm9fYm94LnBkZiBtYWMgKiAqCi1mb3JtYXRfY29tYm9fYm94LnBkZiAqIG5vdjggKgotZm9ybWF0X2N1c3RvbV9mb3JtYXQucGRmIGxpbnV4LG1hYyAqICoKLWZvcm1hdF9jdXN0b21fZm9ybWF0LnBkZiAqIG5vdjggKgotZm9ybWF0X2N1c3RvbV9rZXlzdHJva2UucGRmICogKiAqCi1mb3JtYXRfZGF0ZS5wZGYgKiBub3Y4ICoKLWZvcm1hdF9udW1iZXIucGRmIG1hYyAqICoKLWZvcm1hdF9wZXJjZW50YWdlLnBkZiBtYWMgKiAqCi1mb3JtYXRfc3BlY2lhbC5wZGYgKiBub3Y4ICoKLWZvcm1hdF90ZXh0X2NvbG9yLnBkZiBtYWMgKiAqCi1mb3JtZmVpbGQucGRmICogKiAqCi1nZXRhcnJheS5wZGYgbWFjICogKgotamF2YXNjcmlwdGFjdGlvbi5wZGYgKiAqICoKLWpldG1hbl9zdGQucGRmIG1hYyAqICoKLWpldG1hbl9zdGRfZml4ZWQucGRmIG1hYyAqICoKLWpzX2NhbGN1bGF0ZS5wZGYgKiAqICoKLWxpc3RfYm94LnBkZiAqICogKgotbmVnYXRpdmUucGRmIG1hYyAqICoKLW5ld19jZXJ0aWZ5MS5wZGYgbWFjICogKgotbmV3X3NpZ25hdHVyZTEucGRmIG1hYyAqICoKLW5ld19zaWduYXR1cmUyLnBkZiBtYWMgKiAqCi1uZXdfc3RhbXA0LnBkZiBtYWMgKiAqCi1uZXdfc3RhbXA1LnBkZiBtYWMgKiAqCi1uZXdfdGV4dG1hcmt1cDEucGRmIG1hYyAqICoKLW5ld190ZXh0bWFya3VwMV9oaWRkZW4ucGRmIG1hYyAqICoKLW5ld190ZXh0bWFya3VwMi5wZGYgbWFjICogKgotbmV3X3RleHRtYXJrdXAyX2hpZGRlbi5wZGYgbWFjICogKgotbmV3X3RleHRtYXJrdXA0LnBkZiBtYWMgKiAqCi1uZXdfdGV4dG1hcmt1cDRfaGlkZGVuLnBkZiBtYWMgKiAqCi1uZXdfdGV4dG1hcmt1cDUucGRmIG1hYyAqICoKLW5ld190ZXh0bWFya3VwNV9oaWRkZW4ucGRmIG1hYyAqICoKLW5ld190ZXh0bWFya3VwNi5wZGYgbWFjICogKgotbmV3X3RleHRtYXJrdXA3LnBkZiBtYWMgKiAqCi1uZXdfdGV4dG1hcmt1cDdfaGlkZGVuLnBkZiBtYWMgKiAqCi1uZXdfdGV4dG1hcmt1cDgucGRmIG1hYyAqICoKLW5ld190ZXh0bWFya3VwOF9oaWRkZW4ucGRmIG1hYyAqICoKLW51bWJlci5wZGYgKiAqICoKLW9jdGVzdC5wZGYgbWFjICogKgotb3Blbl9hX3dlYmxpbmsucGRmIG1hYyAqICoKLXBhdGhfMTBfamQucGRmIG1hYyAqICoKLXBhdGhfNV9wYXR0ZXJuLnBkZiBtYWMgKiAqCi1wYXRoXzZfZ3JhcGhpY3M0LjUuNS5wZGYgbWFjICogKgotcGF0aF83LnBkZiBtYWMgKiAqCi1wYXRoXzkucGRmIG1hYyAqICoKLXBlcmNlbnRhZ2UucGRmIG1hYyAqICoKLXB1c2hfYnV0dG9uLnBkZiAqICogKgotcXVpY2tfc3RhcnRfZ3VpZGUucGRmIG1hYyAqICoKLXJhZGlvX2J1dHRvbi5wZGYgKiAqICoKLXJ1bl9jdXN0b21fdmFsaWRhdGVfc2NyaXB0LnBkZiAqICogKgotc2hvd18xLnBkZiBtYWMgKiAqCi1zaWduYXR1cmUucGRmICogKiAqCi1zaWduYXR1cmVfNC5wZGYgKiAqICoKLXNpbXBsaWZpZWRfZmllbGRfbm90YXRpb24ucGRmIG1hYyAqICoKLXNwZWNpYWwucGRmIG1hYyAqICoKLXN1Ym1pdF9mb3JtLnBkZiBtYWMgKiAqCi10ZXN0X2FwcF9iZWVwLnBkZiAqICogKgotdGVzdF9jb250cm9sLnBkZiAqICogKgotdGVzdF9tLnBkZiBtYWMsd2luICogKgotdGV4dF9maWVsZC5wZGYgKiAqICoKLXRleHRfZmllbGRfZm9udF9pbnB1dF9kZWNpbWFsX3BvaW50LnBkZiBtYWMgKiAqCi10ZXh0X2ZpZWxkX211bHRpbGluZV9saW5lX3NwYWNpbmcucGRmIG1hYyAqICoKLXRocmVhZF9hY3Rpb24ucGRmIG1hYyAqICoKLXRpbWUucGRmIG1hYyAqICoKLXRyYW5zZm9ybWF0aW9uLnBkZiBtYWMgKiAqCi10cmFuc3BhcmVudC5wZGYgbWFjICogKgotd2hhdHNfbmV3X2luX3YzLjAucGRmIG1hYyAqICoKLXdpZGdldF9qYXZhc2NyaXB0LnBkZiBtYWMgKiAqCi16aF9maWxlMS5wZGYgbWFjICogKgotemhfZnVuY3Rpb25fbGlzdC5wZGYgbWFjICogKgotemhfc2hhcmVkX2RvY3VtZW50LnBkZiBtYWMgKiAqCisxMi5wZGYgbWFjICogKiBhZ2cKKzFfMV90ZXh0Ym94LnBkZiAqICogKiAqCisxXzJfdHlwZXdyaXRlci5wZGYgKiAqICogKgorMV8zX2NhbGxvdXQucGRmICogKiAqICoKKzFfbWF0cml4LnBkZiBtYWMgKiAqIGFnZworMW1fZGlmZl9sc2pkZi5wZGYgbWFjICogKiBhZ2cKKzFtX3NhbWVfeHh4eC5wZGYgbWFjICogKiBhZ2cKKzJfMTFfc3RhbXAzLnBkZiBtYWMgKiAqIGFnZworMl82X3RleHRib3gucGRmICogKiAqICoKKzJfY29sb3JfY2FscmdiLnBkZiBtYWMgKiAqIGFnZworMl9jb2xvcl9pbmRleGVkLnBkZiBtYWMgKiAqIGFnZworM180X3RleHRib3gucGRmICogKiAqICoKKzNfaW50ZXJwb2xhdGVfaW1hZ2UucGRmIG1hYyAqICogYWdnCiszYmlncHJldmlldy5wZGYgbWFjICogKiBhZ2cKKzRfMzUucGRmIG1hYyAqICogYWdnCis0XzM5LnBkZiBtYWMgKiAqIGFnZworNS4xLnBkZiBtYWMgKiAqIGFnZworNS4yLnBkZiAqICogKiAqCis1LjVfc2ltcGxlX2ZvbnQucGRmIG1hYyAqICogYWdnCis4LjJfbmFtZV9kZXN0X2ZfZGVzdC5wZGYgbWFjICogKiBhZ2cKKzguMl9vdXRsaW5lLnBkZiBtYWMgKiAqIGFnZworOC4zX3ByZXNlbnRhdGlvbi5wZGYgbWFjICogKiBhZ2cKK0ZSQ18xMF84LjIuMl9fVDguM19vcmlnaW5hbF9maWxlLnBkZiAqICogKiAqCitGUkNfMTFfOC4yLjJfX1Q4LjNfZmlyc3RfbGFzdF9leGNoYW5nZS5wZGYgKiAqICogKgorRlJDXzEyXzguMi4yX19UOC4zX2ZpcnN0X291dGxpbmVfb2JqX0lELnBkZiAqICogKiAqCitGUkNfMTNfOC4yLjJfX1Q4LjNfQ291bnRfZWRpdDMwMC5wZGYgKiAqICogKgorRlJDXzE0XzguMi4yX19UOC4zX0NvdW50X2VkaXQwLnBkZiAqICogKiAqCitGUkNfMTVfOC4yLjJfX1Q4LjNfQ291bnRfZWRpdDEucGRmICogKiAqICoKK0ZSQ18xNl84LjIuMl9fVDguM19Db3VudF9lZGl0XzEucGRmICogKiAqICoKK0ZSQ18xXzguMi4yX19UOC4zX0ZpcnN0X2VtcHR5LnBkZiAqICogKiAqCitGUkNfMl84LjIuMl9fVDguM19MYXN0X2VtcHR5LnBkZiAqICogKiAqCitGUkNfMy41X1BfXzM2MTZfUGFzc3dvcmRfMS5wZGYgKiAqICogKgorRlJDXzNfOC4yLjJfVHlwZV9lbXB0eS5wZGYgKiAqICogKgorRlJDXzRfOC4yLjJfX1Q4LjNfQ291bnRfZW1wdHkucGRmICogKiAqICoKK0ZSQ181XzguMi4yX19UOC4zX0ZpcnN0X3JlbW92ZS5wZGYgKiAqICogKgorRlJDXzZfOC4yLjJfX1Q4LjNfTGFzdF9yZW1vdmUucGRmICogKiAqICoKK0ZSQ183XzguMi4yX1R5cGVfcmVtb3ZlLnBkZiAqICogKiAqCitGUkNfOC40LjFfQW5ub3RhdGlvbnNfTS5wZGYgKiAqICogKgorRlJDXzguNC4xX0Fubm90YXRpb25zX05NLnBkZiAqICogKiAqCitGUkNfOC41X1BhZ2VfQ19TdWJtaXRGb3JtLnBkZiAqICogKiAqCitGUkNfOC41X1BhZ2VfUElfUmVzZXRGb3JtX1BoYW50b20ucGRmICogKiAqICoKK0ZSQ184LjVfV2lkZ2V0X0YucGRmICogbm92OCAqICoKK0ZSQ184XzguMi4yX19UOC4zX0NvdW50X3JlbW92ZS5wZGYgKiAqICogKgorRlJDXzlfOC4yLjJfX1Q4LjNfcmVtb3ZlX2ZpcnN0X2l0ZW0ucGRmICogKiAqICoKK2FjdGlvbi5wZGYgKiAqICogKgorYWN0aW9uX2V4ZWN1dGVfYV9tZW51X2l0ZW0ucGRmIG1hYyAqICogYWdnCithY3Rpb25faGlkZV9zaG93X2Zvcm0ucGRmIG1hYyAqICogYWdnCithY3Rpb25fb25fZm9jdXMucGRmIG1hYyAqICogYWdnCithY3Rpb25fb3Blbl9hX2ZpbGUucGRmIG1hYyAqICogYWdnCithY3Rpb25fcGRmX3NhdmVfY2xvc2UucGRmIG1hYyAqICogYWdnCithY3Rpb25fcmVzZXQucGRmIG1hYyAqICogYWdnCithY3Rpb25fcnVuX2phdmFzY3JpcHQucGRmIG1hYyAqICogYWdnCithY3Rpb25fc3VibWl0X2FfZm9ybS5wZGYgbWFjICogKiBhZ2cKK2FsbF90cmlnZ2VyX2FsZXJ0LnBkZiAqICogKiAqCithbGxfdHJpZ2dlcl9tYWlsbXNnLnBkZiAqICogKiAqCithbGxfdHJpZ2dlcl9wcmludC5wZGYgKiAqICogKgorYWxsX3RyaWdnZXJfcnVuX2pzX2x1bmNodXJsLnBkZiBtYWMgKiAqIGFnZworYWxsX3RyaWdnZXJfcnVuX2pzX21haWxkb2MucGRmIG1hYyAqICogYWdnCithbm5vdGF0aW9uX2hpZ2hsaWdodF9hdXRob3JfY29udGVudC5wZGYgbWFjICogKiBhZ2cKK2Fubm90YXRpb25faGlnaGxpZ2h0X2xvbmdfY29udGVudC5wZGYgbWFjICogKiBhZ2cKK2Fubm90YXRpb25faGlnaGxpZ2h0X25vX2F1dGhvci5wZGYgbWFjICogKiBhZ2cKK2FwcF9sYXVuY2h1cmwucGRmIG1hYyAqICogYWdnCithcHBzdG9yZWRlc2NyaXB0aW9uMy4xX2VuX3VwZGF0ZWQucGRmIG1hYyAqICogYWdnCitib29rbWFyay5wZGYgKiAqICogKgorYm9va21hcmtnZXRjb2xvci5wZGYgbWFjICogKiBhZ2cKK2J1Z18wX2xlbmd0aF9saW5lLnBkZiBtYWMgKiAqIGFnZworCisjIFRPRE8ocGRmaXVtOjE4MTIpOiBSZW1vdmUgYWZ0ZXIgYXNzb2NpYXRlZCBidWcgaXMgZml4ZWQKK2J1Z18wX2xlbmd0aF9saW5lLnBkZiAqICogKiBza2lhCisKK2J1Z18wX3dpZHRoX2xpbmUucGRmIG1hYyAqICogYWdnCitidWdfNDQwMTMyLnBkZiBtYWMgKiAqIGFnZworYnVnX3doaXRlX3NwYWNlLnBkZiBtYWMgKiAqIGFnZworY2FsY29yZGVyaW5kZXhfdGVzdC5wZGYgKiAqICogKgorY2FsY3VsYXRlX2F2ZXJhZ2UucGRmIG1hYyAqICogYWdnCitjYWxjdWxhdGVfb3JkZXIucGRmICogKiAqICoKK2NhbGN1bGF0ZV9zdW1fYV9iX2MucGRmIG1hYyAqICogYWdnCitjYWxjdWxhdGVfdmFsaWRhdGUucGRmIG1hYyAqICogYWdnCitjYWxjdWxhdGVfdmFsaWRhdGUucGRmICogbm92OCAqICoKK2NoXzEucGRmICogKiAqICoKK2NoZWNrX2JveC5wZGYgKiAqICogKgorY29sb3IucGRmIG1hYyAqICogYWdnCitjb2xvcnNwYWNlLnBkZiBtYWMgKiAqIGFnZworY29sb3JzcGFjZV90ZXN0MS5wZGYgbWFjICogKiBhZ2cKK2NvbWJvX2JveC5wZGYgKiAqICogKgorY29tYm9fYm94X2Zvcm1hdC5wZGYgbWFjICogKiBhZ2cKK2RhdGUucGRmIG1hYyAqICogYWdnCitlZGl0X3RyYW5zZm9ybS5wZGYgbWFjICogKiBhZ2cKK2VuX2NvbnRhY3QucGRmIG1hYyAqICogYWdnCitlbl9kaXkucGRmIG1hYyAqICogYWdnCitlbl9mb3hpdC5wZGYgbWFjICogKiBhZ2cKK2VuX2ZxYTIucGRmIG1hYyAqICogYWdnCitlbl9pbnRyb2R1Y2UucGRmIG1hYyAqICogYWdnCitlbl90ZW0ucGRmIG1hYyAqICogYWdnCitlbl91aWNhc2VfLnBkZiBtYWMgKiAqIGFnZworZXZlbnQuY2hhbmdlLnBkZiBtYWMgKiAqIGFnZworZXZlbnQuY2hhbmdlZXgucGRmIG1hYyAqICogYWdnCitldmVudC5rZXlkb3duLnBkZiBtYWMgKiAqIGFnZworZXZlbnQua2V5ZG93bl8xXy5wZGYgbWFjICogKiBhZ2cKK2V2ZW50LnR5cGVfbmFtZS5wZGYgbWFjICogKiBhZ2cKK2V2ZW50LnZhbHVlLnBkZiBtYWMgKiAqIGFnZworZXZlbnRfY2hhbmdlLnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMDEucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAwMi5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDAzLnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMDQucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAwNS5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDA2LnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMDcucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAwOC5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDA5LnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMTAucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAxMS5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDEyLnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMTMucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAxNC5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDE1LnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMTYucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAxNy5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDE4LnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMTkucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAyMC5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDIxLnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMjIucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAyMy5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDI0LnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMjUucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAyNi5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDI3LnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMjgucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAyOS5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDMwLnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMzEucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAzMi5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDMzLnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMzQucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAzNS5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDM2LnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wMzcucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzAzOC5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDM5LnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wNDAucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzA0MS5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDQyLnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wNDMucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzA0NC5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDQ1LnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wNDYucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzA0Ny5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDQ4LnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wNDkucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzA1MC5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDUxLnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wNTIucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzA1My5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDU0LnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wNTUucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzA1Ni5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDU3LnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wNTgucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzA1OS5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDYwLnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wNjEucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzA2Mi5wZGYgbWFjICogKiBhZ2cKK2V4YW1wbGVfMDYzLnBkZiBtYWMgKiAqIGFnZworZXhhbXBsZV8wNjQucGRmIG1hYyAqICogYWdnCitleGFtcGxlXzA2NS5wZGYgbWFjICogKiBhZ2cKK2ZpbGxmb3JtLnBkZiAqICogKiAqCitmb3JtX2FjdGlvbl90cmlnZ2VyLnBkZiAqICogKiAqCitmb3JtX2J1dHRvbl9zaWduX3VybC5wZGYgKiAqICogKgorZm9ybV9jb21ib19zaWduX3VybC5wZGYgKiAqICogKgorZm9ybV9jb21ib2JveDAucGRmICogKiAqICoKK2Zvcm1fY29tYm9ib3hfYWN0aW9pbl9nb3RvLnBkZiAqICogKiAqCitmb3JtX2NvbWJvYm94X2RhdGUucGRmIG1hYyAqICogYWdnCitmb3JtX2NvbWJvYm94X2RhdGUucGRmICogbm92OCAqICoKK2Zvcm1fY29tYm9ib3hfZGF0ZTEucGRmICogKiAqICoKK2Zvcm1fY29tYm9ib3hfZGF0ZTIucGRmIG1hYyAqICogYWdnCitmb3JtX2NvbWJvYm94X2RhdGUyLnBkZiAqIG5vdjggKiAqCitmb3JtX2NvbWJvYm94X2ltcG9ydGZvcm0ucGRmICogKiAqICoKK2Zvcm1fY29tYm9ib3hfbnVtLnBkZiBtYWMgKiAqIGFnZworZm9ybV9jb21ib2JveF9udW0ucGRmICogbm92OCAqICoKK2Zvcm1fY29tYm9ib3hfcGVyLnBkZiBtYWMgKiAqIGFnZworZm9ybV9jb21ib2JveF9wZXIucGRmICogbm92OCAqICoKK2Zvcm1fY29tYm9ib3hfcGx1cy5wZGYgbWFjICogKiBhZ2cKK2Zvcm1fY29tYm9ib3hfcGx1cy5wZGYgKiBub3Y4ICogKgorZm9ybV9jb21ib2JveF9wcm9kdWN0LnBkZiBtYWMgKiAqIGFnZworZm9ybV9jb21ib2JveF9wcm9kdWN0LnBkZiAqIG5vdjggKiAqCitmb3JtX2NvbWJvYm94X3Jlc2V0Zm9ybS5wZGYgKiAqICogKgorZm9ybV9jb21ib2JveF90aW1lLnBkZiBtYWMgKiAqIGFnZworZm9ybV9jb21ib2JveF90aW1lLnBkZiAqIG5vdjggKiAqCitmb3JtX2xpc3QucGRmICogKiAqICoKK2Zvcm1fbGlzdDEucGRmICogKiAqICoKK2Zvcm1fc2FtZS5wZGYgbWFjICogKiBhZ2cKK2Zvcm1fdGV4dF9zaWduX3VybC5wZGYgKiAqICogKgorZm9ybWF0X2NvbWJvX2JveC5wZGYgbWFjICogKiBhZ2cKK2Zvcm1hdF9jb21ib19ib3gucGRmICogbm92OCAqICoKK2Zvcm1hdF9jdXN0b21fZm9ybWF0LnBkZiAqIG5vdjggKiAqCitmb3JtYXRfY3VzdG9tX2tleXN0cm9rZS5wZGYgKiAqICogKgorZm9ybWF0X2RhdGUucGRmICogbm92OCAqICoKK2Zvcm1hdF9udW1iZXIucGRmIG1hYyAqICogYWdnCitmb3JtYXRfcGVyY2VudGFnZS5wZGYgbWFjICogKiBhZ2cKK2Zvcm1hdF9zcGVjaWFsLnBkZiAqIG5vdjggKiAqCitmb3JtYXRfdGV4dF9jb2xvci5wZGYgbWFjICogKiBhZ2cKK2Zvcm1maWVsZC5wZGYgKiAqICogKgorZ2V0YXJyYXkucGRmIG1hYyAqICogYWdnCisKKyMgVE9ETyhwZGZpdW06NDg5KTogUmVtb3ZlIGFmdGVyIGFzc29jaWF0ZWQgYnVnIGlzIGZpeGVkLgorZ3JhZGllbnRfbWFueV9zdG9wcy5wZGYgKiAqICogYWdnCisKK2phdmFzY3JpcHRhY3Rpb24ucGRmICogKiAqICoKK2pldG1hbl9zdGQucGRmIG1hYyAqICogYWdnCitqZXRtYW5fc3RkX2ZpeGVkLnBkZiBtYWMgKiAqIGFnZworanNfY2FsY3VsYXRlLnBkZiAqICogKiAqCitsaXN0X2JveC5wZGYgKiAqICogKgorbmVnYXRpdmUucGRmIG1hYyAqICogYWdnCituZXdfY2VydGlmeTEucGRmIG1hYyAqICogYWdnCituZXdfc2lnbmF0dXJlMS5wZGYgbWFjICogKiBhZ2cKK25ld19zaWduYXR1cmUyLnBkZiBtYWMgKiAqIGFnZworbmV3X3N0YW1wNC5wZGYgbWFjICogKiBhZ2cKK25ld19zdGFtcDUucGRmIG1hYyAqICogYWdnCituZXdfdGV4dG1hcmt1cDEucGRmIG1hYyAqICogYWdnCituZXdfdGV4dG1hcmt1cDFfaGlkZGVuLnBkZiBtYWMgKiAqIGFnZworbmV3X3RleHRtYXJrdXAyLnBkZiBtYWMgKiAqIGFnZworbmV3X3RleHRtYXJrdXAyX2hpZGRlbi5wZGYgbWFjICogKiBhZ2cKK25ld190ZXh0bWFya3VwNC5wZGYgbWFjICogKiBhZ2cKK25ld190ZXh0bWFya3VwNF9oaWRkZW4ucGRmIG1hYyAqICogYWdnCituZXdfdGV4dG1hcmt1cDUucGRmIG1hYyAqICogYWdnCituZXdfdGV4dG1hcmt1cDVfaGlkZGVuLnBkZiBtYWMgKiAqIGFnZworbmV3X3RleHRtYXJrdXA2LnBkZiBtYWMgKiAqIGFnZworbmV3X3RleHRtYXJrdXA3LnBkZiBtYWMgKiAqIGFnZworbmV3X3RleHRtYXJrdXA3X2hpZGRlbi5wZGYgbWFjICogKiBhZ2cKK25ld190ZXh0bWFya3VwOC5wZGYgbWFjICogKiBhZ2cKK25ld190ZXh0bWFya3VwOF9oaWRkZW4ucGRmIG1hYyAqICogYWdnCitudW1iZXIucGRmICogKiAqICoKK29jdGVzdC5wZGYgbWFjICogKiBhZ2cKK29wZW5fYV93ZWJsaW5rLnBkZiBtYWMgKiAqIGFnZworcGF0aF8xMF9qZC5wZGYgbWFjICogKiBhZ2cKK3BhdGhfNV9wYXR0ZXJuLnBkZiBtYWMgKiAqIGFnZworcGF0aF82X2dyYXBoaWNzNC41LjUucGRmIG1hYyAqICogYWdnCitwYXRoXzcucGRmIG1hYyAqICogYWdnCitwYXRoXzkucGRmIG1hYyAqICogYWdnCitwZXJjZW50YWdlLnBkZiBtYWMgKiAqIGFnZworcHVzaF9idXR0b24ucGRmICogKiAqICoKK3F1aWNrX3N0YXJ0X2d1aWRlLnBkZiBtYWMgKiAqIGFnZworcmFkaW9fYnV0dG9uLnBkZiAqICogKiAqCitydW5fY3VzdG9tX3ZhbGlkYXRlX3NjcmlwdC5wZGYgKiAqICogKgorc2hvd18xLnBkZiBtYWMgKiAqIGFnZworc2lnbmF0dXJlLnBkZiAqICogKiAqCitzaWduYXR1cmVfNC5wZGYgKiAqICogKgorc2ltcGxpZmllZF9maWVsZF9ub3RhdGlvbi5wZGYgbWFjICogKiBhZ2cKK3NwZWNpYWwucGRmIG1hYyAqICogYWdnCitzdWJtaXRfZm9ybS5wZGYgbWFjICogKiBhZ2cKK3Rlc3RfYXBwX2JlZXAucGRmICogKiAqICoKK3Rlc3RfY29udHJvbC5wZGYgKiAqICogKgordGV4dF9maWVsZC5wZGYgKiAqICogKgordGV4dF9maWVsZF9mb250X2lucHV0X2RlY2ltYWxfcG9pbnQucGRmIG1hYyAqICogYWdnCit0ZXh0X2ZpZWxkX211bHRpbGluZV9saW5lX3NwYWNpbmcucGRmIG1hYyAqICogYWdnCit0aHJlYWRfYWN0aW9uLnBkZiBtYWMgKiAqIGFnZwordGltZS5wZGYgbWFjICogKiBhZ2cKK3RyYW5zZm9ybWF0aW9uLnBkZiBtYWMgKiAqIGFnZwordHJhbnNwYXJlbnQucGRmIG1hYyAqICogYWdnCit3aGF0c19uZXdfaW5fdjMuMC5wZGYgbWFjICogKiBhZ2cKK3dpZGdldF9qYXZhc2NyaXB0LnBkZiBtYWMgKiAqIGFnZworCisjIFRPRE8ocGRmaXVtOjE5OTApOiBSZW1vdmUgYWZ0ZXIgYXNzb2NpYXRlZCBidWcgaXMgZml4ZWQKK3hmZXJtb2RlczIucGRmICogKiAqIGFnZworCit6aF9maWxlMS5wZGYgbWFjICogKiBhZ2cKK3poX2Z1bmN0aW9uX2xpc3QucGRmIG1hYyAqICogYWdnCit6aF9zaGFyZWRfZG9jdW1lbnQucGRmIG1hYyAqICogYWdnCiAKICMgVE9ETyhobmFrYXNoaW1hKTogVGhlc2UgbWlnaHQgbmV2ZXIgaGF2ZSBiZWVuIHJ1bi4gR28gb3ZlciB0aGVtIGFuZCBmaXguCiAKLUZSQ184LjVfRSZYLnBkZiAqICogKgotRlJDXzguNV9PJlBPX0dvVG9FLnBkZiAqICogKgotRlJDXzguNV9PcGVuQWN0aW9uJk9fVVJJLnBkZiAqICogKgotRlJDXzguNV9QQyZDX0dvVG9FX1RfVC5wZGYgKiAqICoKLUZSQ184LjVfUENfR29Ub0VfVF9SJlAmQS5wZGYgKiAqICoKLUZSQ184LjVfUE9fR29Ub0VfVF9SJk4ucGRmICogKiAqCitGUkNfOC41X0UmWC5wZGYgKiAqICogKgorRlJDXzguNV9PJlBPX0dvVG9FLnBkZiAqICogKiAqCitGUkNfOC41X09wZW5BY3Rpb24mT19VUkkucGRmICogKiAqICoKK0ZSQ184LjVfUEMmQ19Hb1RvRV9UX1QucGRmICogKiAqICoKK0ZSQ184LjVfUENfR29Ub0VfVF9SJlAmQS5wZGYgKiAqICogKgorRlJDXzguNV9QT19Hb1RvRV9UX1ImTi5wZGYgKiAqICogKgogCiAjIHhmYV9zcGVjaWZpYwogCi1DaG9vc2UucGRmICogKiAqCi1kYXRhX2JpbmRpbmcucGRmICogKiAqCitDaG9vc2UucGRmICogKiAqICoKK2RhdGFfYmluZGluZy5wZGYgKiAqICogKgogIyBUT0RPKG5wbSk6IEFkZCBwcm9wZXIgZXZ0IGZvciBNb3VzZUV2ZW50cy4KLU1vdXNlRXZlbnRzX2VudGVyLnBkZiAqICogKgotTW91c2VFdmVudHNfZXhpdC5wZGYgKiAqICoKLU9uZW9mMy5wZGYgKiAqICoKLVN1bS5wZGYgKiAqICoKLVRpbWVGaWVsZC5wZGYgd2luLGxpbnV4ICogKgotVGVzdF9DaGVja0JveC5wZGYgKiAqICoKLVRlc3RfRGF0ZUZpZWxkX2xvY2FsZV96aF9ISy5wZGYgbWFjLHdpbiAqICoKK01vdXNlRXZlbnRzX2VudGVyLnBkZiAqICogKiAqCitNb3VzZUV2ZW50c19leGl0LnBkZiAqICogKiAqCitPbmVvZjMucGRmICogKiAqICoKK1N1bS5wZGYgKiAqICogKgorVGVzdF9DaGVja0JveC5wZGYgKiAqICogKgogCiAjCiAjIEphdmFTY3JpcHQgdGVzdHMKICMKLWJ1Z182Nzk2NDIuaW4gKiAqIG5veGZhCi1idWdfNjc5NjQzLmluICogKiBub3hmYQotYnVnXzczNTkxMi5pbiAqICogbm94ZmEKK2J1Z182Nzk2NDIuaW4gKiAqIG5veGZhICoKK2J1Z182Nzk2NDMuaW4gKiAqIG5veGZhICoKK2J1Z183MzU5MTIuaW4gKiAqIG5veGZhICoKKworIyBKUyB0ZXN0cyBpbiBub3Y4IG1vZGUgZXhwZWN0IGVtcHR5IHJlc3VsdHMuIFRoaXMgb25lIHdpbGwKKyMgbm90IGJlIGVtcHR5IGFzIHRoZSBjYWxsYmFjayBpcyBub3QganMtYmFzZWQuCituYW1lZF9hY3Rpb24uaW4gKiBub3Y4ICogKgogCiAjIHhmYV9zcGVjaWZpYwogCiAjIFRPRE8ocGRmaXVtOjExMDYpOiBSZW1vdmUgYWZ0ZXIgYXNzb2NpYXRlZCBidWcgaXMgZml4ZWQKLXJlc29sdmVfbm9kZXNfMS5wZGYgKiAqICoKK3Jlc29sdmVfbm9kZXNfMS5wZGYgKiAqICogKgogCiAjCiAjIFBpeGVsIHRlc3RzCiAjCi1idWdfNDkyLmluICogbm92OCAqCiAKLSMgVE9ETyhwZGZpdW06MzA0KTogUmVtb3ZlIGFmdGVyIGFzc29jaWF0ZWQgYnVnIGlzIGZpeGVkCi1idWdfMzA0LnBkZiAqICogKgorIyBUT0RPKHBkZml1bToxNzQ3KTogUmVtb3ZlIGFmdGVyIGFzc29jaWF0ZWQgYnVnIGlzIGZpeGVkCitidWdfMTI1ODYzNC5pbiAqICogKiAqCiAKICMgVE9ETyhwZGZpdW06MTMzMSk6IFJlbW92ZSBhZnRlciBhc3NvY2lhdGVkIGJ1ZyBpcyBmaXhlZAotYnVnXzEzMzEuaW4gKiAqICoKK2J1Z18xMzMxLmluICogKiAqICoKIAotIyBUT0RPKHBkZml1bToxNDYxKTogUmVtb3ZlIGFmdGVyIGFzc29jaWF0ZWQgYnVnIGlzIGZpeGVkCi1idWdfMTQwMi5pbiB3aW4gKiAqCisjIFRPRE8oY2hyb21pdW06MTM1NjE0OSk6IFJlbW92ZSBhZnRlciBhc3NvY2lhdGVkIGJ1ZyBpcyBmaXhlZAorYnVnXzEzNTYxNDkuaW4gbWFjICogKiBhZ2cKIAogIyBUT0RPKHBkZml1bToxNDU3KTogUmVtb3ZlIGFmdGVyIGFzc29jaWF0ZWQgYnVnIGlzIGZpeGVkCi1idWdfMTQ1Ny5pbiAqICogKgorYnVnXzE0NTcuaW4gKiAqICogKgorCisjIFRPRE8ocGRmaXVtOjE1MTkpOiBSZW1vdmUgYWZ0ZXIgYXNzb2NpYXRlZCBidWcgaXMgZml4ZWQKK2J1Z18xNTE5LmluICogKiAqICoKKworIyBUT0RPKHBkZml1bToxNTcxKTogUmVtb3ZlIGFmdGVyIGFzc29jaWF0ZWQgYnVnIGlzIGZpeGVkCitidWdfMTU3MS5pbiAqICogKiAqCisKKyMgVE9ETyhwZGZpdW06MTcyMyk6IFJlbW92ZSBhZnRlciBhc3NvY2lhdGVkIGJ1ZyBpcyBmaXhlZAorYnVnXzE3MjMuaW4gKiAqICogKgorCisjIFRPRE8ocGRmaXVtOjE5NzIpOiBSZW1vdmUgYWZ0ZXIgYXNzb2NpYXRlZCBidWcgaXMgZml4ZWQKK2J1Z18xOTcyXzEuaW4gKiAqICogYWdnCitidWdfMTk3Ml8yLmluICogKiAqIGFnZworYnVnXzE5NzJfMy5pbiAqICogKiBhZ2cKKworIyBUT0RPKHBkZml1bToxOTczKTogUmVtb3ZlIGFmdGVyIGFzc29jaWF0ZWQgYnVnIGlzIGZpeGVkCitidWdfMTk3My5pbiAqICogKiAqCisKKyMgVE9ETyhwZGZpdW06MjAwMSk6IFJlbW92ZSBhZnRlciBhc3NvY2lhdGVkIGJ1ZyBpcyBmaXhlZAorYnVnXzIwMDEucGRmICogKiAqICoKKworIyBUT0RPKGNocm9taXVtOjIzNzUyNyk6IFJlbW92ZSBhZnRlciBhc3NvY2lhdGVkIGJ1ZyBpcyBmaXhlZAorYnVnXzIzNzUyN18xLmluICogKiAqICoKIAogIyBUT0RPKGNocm9taXVtOjQ1MTM2Nik6IFJlbW92ZSBhZnRlciBhc3NvY2lhdGVkIGJ1ZyBpcyBmaXhlZAotYnVnXzQ1MTM2Ni5pbiAqICogKgorYnVnXzQ1MTM2Ni5pbiAqICogKiBhZ2cKIAotIyBUT0RPKGNocm9taXVtOjEwMTIzNjkpOiBSZW1vdmUgYWZ0ZXIgYXNzb2NpYXRlZCBidWcgaXMgZml4ZWQKLWJ1Z18xMDEyMzY5LmluICogKiAqCisjIFRPRE8ocGRmaXVtOjQ5Mik6IFJlbW92ZSBhZnRlciBhc3NvY2lhdGVkIGJ1ZyBpcyBmaXhlZAorYnVnXzQ5Mi5pbiAqIG5vdjggKiAqCisKKyMgVE9ETyhjaHJvbWl1bTo3MjU1NTUsIHNraWE6OTI2NSk6IFJlbW92ZSBhZnRlciBhc3NvY2lhdGVkIGJ1ZyBpcyBmaXhlZAorYnVnXzcyNTU1NS5pbiAqICogKiBza2lhCisKKyMgVE9ETyhjaHJvbWl1bTo5ODMyODkpOiBSZW1vdmUgYWZ0ZXIgYXNzb2NpYXRlZCBidWcgaXMgZml4ZWQKK2J1Z185ODMyODkuaW4gKiAqICogYWdnCisKKyMgVE9ETyhwZGZpdW06MTc0Nyk6IFJlbW92ZSBhZnRlciBhc3NvY2lhdGVkIGJ1ZyBpcyBmaXhlZAoranB4ZGVjb2RlLmluICogKiAqICoKK2pweGRlY29kZV93aXRob3V0X2JpdHNwZXJjb21wb25lbnQuaW4gKiAqICogKgoranB4ZGVjb2RlX3dpdGhvdXRfY29sb3JzcGFjZS5pbiAqICogKiAqCisKKyMgVE9ETyhjaHJvbWl1bToxMDI4OTkxKTogUmVtb3ZlIGFmdGVyIGFzc29jaWF0ZWQgYnVnIGlzIGZpeGVkCityZXNldF9idXR0b24uaW4gKiAqICogKgogCiAjIHhmYV9zcGVjaWZpYwogCisjIFRPRE8ocGRmaXVtOjEwOTUpOiBSZW1vdmUgYWZ0ZXIgYXNzb2NpYXRlZCBidWcgaXMgZml4ZWQKK2J1Z185OTc0MTIuaW4gd2luICogKiAqCiAjIFRPRE8ocGRmaXVtOjExMDcpOiBSZW1vdmUgYWZ0ZXIgYXNzb2NpYXRlZCBidWcgaXMgZml4ZWQKLXN0YW5kYXJkX3N5bWJvbHMucGRmICogKiAqCi0jIFRPRE8ocGRmaXVtOjExNjgpOiBSZW1vdmUgYWZ0ZXIgYXNzb2NpYXRlZCBidWcgaXMgZml4ZWQKLXhmYV9ibXBfaW1hZ2UuaW4gKiAqICoKK3N0YW5kYXJkX3N5bWJvbHMucGRmICogKiAqICoKICMgVE9ETyhwZGZpdW06MTA5NSk6IFJlbW92ZSBhZnRlciBhc3NvY2lhdGVkIGJ1ZyBpcyBmaXhlZAoteGZhX2V4YW1wbGUuaW4gd2luICogKgotIyBUT0RPKHBkZml1bToxMTY3KTogUmVtb3ZlIGFmdGVyIGFzc29jaWF0ZWQgYnVnIGlzIGZpeGVkCi14ZmFfZ2lmX2ltYWdlLmluICogKiAqCit4ZmFfZXhhbXBsZS5pbiB3aW4gKiAqICoKICMgVE9ETyhwZGZpdW06MTA5NSk6IFJlbW92ZSBhZnRlciBhc3NvY2lhdGVkIGJ1ZyBpcyBmaXhlZAoteGZhX3RleHRmaWVsZC5pbiB3aW4gKiAqCit4ZmFfdGV4dGZpZWxkLmluIHdpbiAqICogKgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9TVVBQUkVTU0lPTlNfRVhBQ1RfTUFUQ0hJTkcgYi90ZXN0aW5nL1NVUFBSRVNTSU9OU19FWEFDVF9NQVRDSElORwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzI2MGQxCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9TVVBQUkVTU0lPTlNfRVhBQ1RfTUFUQ0hJTkcKQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmlnaHQgMjAyMyBUaGUgUERGaXVtIEF1dGhvcnMKKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorIworIyBMaXN0IG9mIHRlc3RzIHRvIHVzZSBmdXp6eSBpbnN0ZWFkIG9mIGV4YWN0IG1hdGNoaW5nLCBvbmUgcGVyIGxpbmUuCisjIFRoZXJlIGFyZSBmb3VyIHNwYWNlLXNlcGFyYXRlZCBjb2x1bW5zIHBlciBsaW5lCisjIEVhY2ggY29sdW1uIChleGNlcHQgY29sdW1uIDApIGNhbiBjb250YWluIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdmFsdWVzLgorIworIyBDb2x1bW4gMDogdGVzdCBmaWxlIG5hbWUKKyMgQ29sdW1uIDE6IHBsYXRmb3JtOiAqLCB3aW4sIG1hYywgbGludXgKKyMgQ29sdW1uIDI6IHY4IHN1cHBvcnQ6ICosIG5vdjgsIHY4CisjIENvbHVtbiAzOiB4ZmEgc3VwcG9ydDogKiwgbm94ZmEsIHhmYQorIyBDb2x1bW4gNDogcmVuZGVyaW5nIHN1cHBvcnQ6ICosIGFnZywgc2tpYQorIworIyBBbGwgY29sdW1ucyBvbiBhIGxpbmUgb24gYSBsaW5lIG11c3QgbWF0Y2gsIGJ1dCBmaWxlbmFtZXMgbWF5IGJlIHJlcGVhdGVkCisjIG9uIHN1YnNlcXVlbnQgbGluZXMgdG8gc3VwcHJlc3MgbW9yZSBjYXNlcy4gIFdpdGhpbiBlYWNoIGNvbHVtbiwgYW55IG9uZSBvZgorIyB0aGUgY29tbWEtc2VwYXJhdGVkIHZhbHVlcyBtdXN0IG1hdGNoIGluIG9yZGVyIGZvciB0aGUgY29sdW0gdG8gIm1hdGNoIi4KKyMgVGhlIGZpbGVuYW1lcyBhbmQga2V5d29yZHMgYXJlIGNhc2Utc2Vuc2l0aXZlLgorIworIyBUcnkgdG8ga2VlcCB0aGUgZmlsZSBhbHBoYWJldGl6ZWQgd2l0aGluIGVhY2ggY2F0ZWdvcnkgb2YgdGVzdC4KKworIworIyBDb3JwdXMgdGVzdHMKKyMKKworIyBEZXZpY2Utc3BlY2lmaWMgQ29sb3JCdXJuIGRpZmZlcmVuY2VzIChzZWUgcGRmaXVtOjE5NTkpLgoreGZlcm1vZGVzMi5wZGYgKiAqICogc2tpYQoreGZlcm1vZGVzMy5wZGYgKiAqICogc2tpYQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9TVVBQUkVTU0lPTlNfSU1BR0VfRElGRiBiL3Rlc3RpbmcvU1VQUFJFU1NJT05TX0lNQUdFX0RJRkYKaW5kZXggY2RiMmQ2Ni4uZTUwMTc1NiAxMDA2NDQKLS0tIGEvdGVzdGluZy9TVVBQUkVTU0lPTlNfSU1BR0VfRElGRgorKysgYi90ZXN0aW5nL1NVUFBSRVNTSU9OU19JTUFHRV9ESUZGCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgMjAxNyBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycwogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAjCkBAIC0xMCw2ICsxMCw3IEBACiAjIENvbHVtbiAxOiBwbGF0Zm9ybTogKiwgd2luLCBtYWMsIGxpbnV4CiAjIENvbHVtbiAyOiB2OCBzdXBwb3J0OiAqLCBub3Y4LCB2OAogIyBDb2x1bW4gMzogeGZhIHN1cHBvcnQ6ICosIG5veGZhLCB4ZmEKKyMgQ29sdW1uIDQ6IHJlbmRlcmluZyBzdXBwb3J0OiAqLCBhZ2csIHNraWEKICMKICMgQWxsIGNvbHVtbnMgb24gYSBsaW5lIG9uIGEgbGluZSBtdXN0IG1hdGNoLCBidXQgZmlsZW5hbWVzIG1heSBiZSByZXBlYXRlZAogIyBvbiBzdWJzZXF1ZW50IGxpbmVzIHRvIHN1cHByZXNzIG1vcmUgY2FzZXMuICBXaXRoaW4gZWFjaCBjb2x1bW4sIGFueSBvbmUgb2YKQEAgLTIxLDEyICsyMiwxMiBAQAogIwogIyBDb3JwdXMgdGVzdHMKICMKLUZSQ18zLjVfQ0ZfU3RyZl9zdG1mX0RlZmF1bHRDcnlwdEZpbHRlci5wZGYgKiAqICoKLUZSQ18zLjVfRW5jcnlwdE1ldGFkYXRhX1QucGRmICogKiAqCi1GUkNfMy41X0VuY3J5cHRfaXNfZGFtYWdlLnBkZiAqICogKgotRlJDXzMuNV9GaWx0ZXJfUHViU2VjX1N1YkZpbHRlcl9zNS5wZGYgKiAqICoKLUZSQ18zLjVfRmlsdGVyX1B1YlNlY19TdWJfU3ViRmlsdGVyX3M0LnBkZiAqICogKgotTW91c2VFdmVudHMucGRmICogKiAqCi1PbmVvZi5wZGYgKiAqICoKLWJ1Z182NTEzMDQucGRmICogKiAqCi1vdXRsaW5lLnBkZiAqICogKgorRlJDXzMuNV9DRl9TdHJmX3N0bWZfRGVmYXVsdENyeXB0RmlsdGVyLnBkZiAqICogKiAqCitGUkNfMy41X0VuY3J5cHRNZXRhZGF0YV9ULnBkZiAqICogKiAqCitGUkNfMy41X0VuY3J5cHRfaXNfZGFtYWdlLnBkZiAqICogKiAqCitGUkNfMy41X0ZpbHRlcl9QdWJTZWNfU3ViRmlsdGVyX3M1LnBkZiAqICogKiAqCitGUkNfMy41X0ZpbHRlcl9QdWJTZWNfU3ViX1N1YkZpbHRlcl9zNC5wZGYgKiAqICogKgorTW91c2VFdmVudHMucGRmICogKiAqICoKK09uZW9mLnBkZiAqICogKiAqCitidWdfNjUxMzA0LnBkZiAqICogKiAqCitvdXRsaW5lLnBkZiAqICogKiAqCmRpZmYgLS1naXQgYS90ZXN0aW5nL2NvbW1hbmRfbGluZV9oZWxwZXJzLmNwcCBiL3Rlc3RpbmcvY29tbWFuZF9saW5lX2hlbHBlcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1OGYyNzgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2NvbW1hbmRfbGluZV9oZWxwZXJzLmNwcApAQCAtMCwwICsxLDIzIEBACisvLyBDb3B5cmlnaHQgMjAyMiBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRlICJ0ZXN0aW5nL2NvbW1hbmRfbGluZV9oZWxwZXJzLmgiCisKK2Jvb2wgUGFyc2VTd2l0Y2hLZXlWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgYXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcqIHZhbHVlKSB7CisgIGlmIChhcmcuc2l6ZSgpIDw9IGtleS5zaXplKCkgfHwgYXJnLmNvbXBhcmUoMCwga2V5LnNpemUoKSwga2V5KSAhPSAwKQorICAgIHJldHVybiBmYWxzZTsKKworICAqdmFsdWUgPSBhcmcuc3Vic3RyKGtleS5zaXplKCkpOworICByZXR1cm4gdHJ1ZTsKK30KKworRlBERl9SRU5ERVJFUl9UWVBFIEdldERlZmF1bHRSZW5kZXJlclR5cGUoKSB7CisjaWYgZGVmaW5lZChfU0tJQV9TVVBQT1JUXykKKyAgcmV0dXJuIEZQREZfUkVOREVSRVJUWVBFX1NLSUE7CisjZWxzZQorICByZXR1cm4gRlBERl9SRU5ERVJFUlRZUEVfQUdHOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS90ZXN0aW5nL2NvbW1hbmRfbGluZV9oZWxwZXJzLmggYi90ZXN0aW5nL2NvbW1hbmRfbGluZV9oZWxwZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MxMzRjYgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvY29tbWFuZF9saW5lX2hlbHBlcnMuaApAQCAtMCwwICsxLDIzIEBACisvLyBDb3B5cmlnaHQgMjAyMiBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpZm5kZWYgVEVTVElOR19DT01NQU5EX0xJTkVfSEVMUEVSU19IXworI2RlZmluZSBURVNUSU5HX0NPTU1BTkRfTElORV9IRUxQRVJTX0hfCisKKyNpbmNsdWRlIDxzdHJpbmc+CisKKyNpbmNsdWRlICJwdWJsaWMvZnBkZnZpZXcuaCIKKworLy8gRXh0cmFjdCB0aGUgdmFsdWUgZnJvbSBhIGtleWVkIGNvbW1hbmQgbGluZSBhcmd1bWVudC4KKy8vIGBhcmdgIGlzIGV4cGVjdGVkIHRvIGJlICItLWtleT12YWx1ZSIsIGFuZCBga2V5YCBpcyAiLS1rZXk9Ii4KK2Jvb2wgUGFyc2VTd2l0Y2hLZXlWYWx1ZShjb25zdCBzdGQ6OnN0cmluZyYgYXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcqIHZhbHVlKTsKKworLy8gSWRlbnRpZmllcyB0aGUgY29tcGlsZS10aW1lIGRlZmF1bHQgMkQgZ3JhcGhpY3MgbGlicmFyeSB0byB1c2UgZm9yIHJlbmRlcmluZworLy8gdG8gRlBERl9CSVRNQVBzLiBVc2VkIGFzIHBhcnQgb2Ygc3VwcG9ydCB0byBvdmVycmlkZSB0aGUgcmVuZGVyZXIgYXQgcnVudGltZQorLy8gYmFzZWQgdXBvbiBjb21tYW5kIGxpbmUgb3B0aW9ucy4KK0ZQREZfUkVOREVSRVJfVFlQRSBHZXREZWZhdWx0UmVuZGVyZXJUeXBlKCk7CisKKyNlbmRpZiAgLy8gVEVTVElOR19DT01NQU5EX0xJTkVfSEVMUEVSU19IXwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9lbWJlZGRlcl90ZXN0LmNwcCBiL3Rlc3RpbmcvZW1iZWRkZXJfdGVzdC5jcHAKaW5kZXggOWJmNGExOC4uMzY2MDg4ZCAxMDA2NDQKLS0tIGEvdGVzdGluZy9lbWJlZGRlcl90ZXN0LmNwcAorKysgYi90ZXN0aW5nL2VtYmVkZGVyX3Rlc3QuY3BwCkBAIC0xLDEzICsxLDEwIEBACi0vLyBDb3B5cmlnaHQgMjAxNSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogI2luY2x1ZGUgInRlc3RpbmcvZW1iZWRkZXJfdGVzdC5oIgogCi0jaW5jbHVkZSA8bGltaXRzLmg+Ci0KLSNpbmNsdWRlIDxsaXN0PgotI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx1dGlsaXR5PgpAQCAtMTksMjAgKzE2LDE3IEBACiAjaW5jbHVkZSAicHVibGljL2ZwZGZfZWRpdC5oIgogI2luY2x1ZGUgInB1YmxpYy9mcGRmX3RleHQuaCIKICNpbmNsdWRlICJwdWJsaWMvZnBkZnZpZXcuaCIKKyNpbmNsdWRlICJ0ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfZW52aXJvbm1lbnQuaCIKICNpbmNsdWRlICJ0ZXN0aW5nL2dtb2NrL2luY2x1ZGUvZ21vY2svZ21vY2suaCIKICNpbmNsdWRlICJ0ZXN0aW5nL3Rlc3RfbG9hZGVyLmgiCiAjaW5jbHVkZSAidGVzdGluZy91dGlscy9iaXRtYXBfc2F2ZXIuaCIKICNpbmNsdWRlICJ0ZXN0aW5nL3V0aWxzL2ZpbGVfdXRpbC5oIgogI2luY2x1ZGUgInRlc3RpbmcvdXRpbHMvaGFzaC5oIgogI2luY2x1ZGUgInRlc3RpbmcvdXRpbHMvcGF0aF9zZXJ2aWNlLmgiCi0jaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9sb2dnaW5nLmgiCi0jaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9wdHJfdXRpbC5oIgotI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2Uvc3RsX3V0aWwuaCIKLQotI2lmZGVmIFBERl9FTkFCTEVfVjgKLSNpbmNsdWRlICJ2OC9pbmNsdWRlL3Y4LXBsYXRmb3JtLmgiCi0jaW5jbHVkZSAidjgvaW5jbHVkZS92OC5oIgotI2VuZGlmICAvLyBQREZfRU5BQkxFX1Y4CisjaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9jaGVjay5oIgorI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2UvY29udGFpbmVycy9jb250YWlucy5oIgorI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2Uvbm90cmVhY2hlZC5oIgorI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2UvbnVtZXJpY3Mvc2FmZV9jb252ZXJzaW9ucy5oIgogCiBuYW1lc3BhY2UgewogCkBAIC00MCw3ICszNCw3IEBACiAgIHJldHVybiBFbWJlZGRlclRlc3Q6OkJ5dGVzUGVyUGl4ZWxGb3JGb3JtYXQoRlBERkJpdG1hcF9HZXRGb3JtYXQoYml0bWFwKSk7CiB9CiAKLSNpZiBkZWZpbmVkKE9TX1dJTikKKyNpZiBCVUlMREZMQUcoSVNfV0lOKQogaW50IENBTExCQUNLIEdldFJlY29yZFByb2MoSERDIGhkYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhBTkRMRVRBQkxFKiBoYW5kbGVfdGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBFTkhNRVRBUkVDT1JEKiByZWNvcmQsCkBAIC01MCwxMiArNDQsMjI0IEBACiAgIHJlY29yZHMucHVzaF9iYWNrKHJlY29yZCk7CiAgIHJldHVybiAxOwogfQotI2VuZGlmICAvLyBkZWZpbmVkKE9TX1dJTikKKyNlbmRpZiAgLy8gQlVJTERGTEFHKElTX1dJTikKKworLy8gVGhlc2UgImp1bXAiIGludG8gdGhlIGRlbGVnYXRlIHRvIGRvIGFjdHVhbCB0ZXN0aW5nLgordm9pZCBVbnN1cHBvcnRlZEhhbmRsZXJUcmFtcG9saW5lKFVOU1VQUE9SVF9JTkZPKiBpbmZvLCBpbnQgdHlwZSkgeworICBhdXRvKiBkZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PEVtYmVkZGVyVGVzdCo+KGluZm8pLT5HZXREZWxlZ2F0ZSgpOworICBkZWxlZ2F0ZS0+VW5zdXBwb3J0ZWRIYW5kbGVyKHR5cGUpOworfQorCitpbnQgQWxlcnRUcmFtcG9saW5lKElQREZfSlNQTEFURk9STSogcGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAgIEZQREZfV0lERVNUUklORyBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICBGUERGX1dJREVTVFJJTkcgdGl0bGUsCisgICAgICAgICAgICAgICAgICAgIGludCB0eXBlLAorICAgICAgICAgICAgICAgICAgICBpbnQgaWNvbikgeworICBhdXRvKiBkZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PEVtYmVkZGVyVGVzdCo+KHBsYXRmb3JtKS0+R2V0RGVsZWdhdGUoKTsKKyAgcmV0dXJuIGRlbGVnYXRlLT5BbGVydChtZXNzYWdlLCB0aXRsZSwgdHlwZSwgaWNvbik7Cit9CisKK2ludCBTZXRUaW1lclRyYW1wb2xpbmUoRlBERl9GT1JNRklMTElORk8qIGluZm8sIGludCBtc2VjcywgVGltZXJDYWxsYmFjayBmbikgeworICBhdXRvKiBkZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PEVtYmVkZGVyVGVzdCo+KGluZm8pLT5HZXREZWxlZ2F0ZSgpOworICByZXR1cm4gZGVsZWdhdGUtPlNldFRpbWVyKG1zZWNzLCBmbik7Cit9CisKK3ZvaWQgS2lsbFRpbWVyVHJhbXBvbGluZShGUERGX0ZPUk1GSUxMSU5GTyogaW5mbywgaW50IGlkKSB7CisgIGF1dG8qIGRlbGVnYXRlID0gc3RhdGljX2Nhc3Q8RW1iZWRkZXJUZXN0Kj4oaW5mbyktPkdldERlbGVnYXRlKCk7CisgIHJldHVybiBkZWxlZ2F0ZS0+S2lsbFRpbWVyKGlkKTsKK30KKworRlBERl9QQUdFIEdldFBhZ2VUcmFtcG9saW5lKEZQREZfRk9STUZJTExJTkZPKiBpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfRE9DVU1FTlQgZG9jdW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhZ2VfaW5kZXgpIHsKKyAgYXV0byogZGVsZWdhdGUgPSBzdGF0aWNfY2FzdDxFbWJlZGRlclRlc3QqPihpbmZvKS0+R2V0RGVsZWdhdGUoKTsKKyAgcmV0dXJuIGRlbGVnYXRlLT5HZXRQYWdlKGluZm8sIGRvY3VtZW50LCBwYWdlX2luZGV4KTsKK30KKwordm9pZCBEb1VSSUFjdGlvblRyYW1wb2xpbmUoRlBERl9GT1JNRklMTElORk8qIGluZm8sIEZQREZfQllURVNUUklORyB1cmkpIHsKKyAgYXV0byogZGVsZWdhdGUgPSBzdGF0aWNfY2FzdDxFbWJlZGRlclRlc3QqPihpbmZvKS0+R2V0RGVsZWdhdGUoKTsKKyAgcmV0dXJuIGRlbGVnYXRlLT5Eb1VSSUFjdGlvbih1cmkpOworfQorCit2b2lkIERvR29Ub0FjdGlvblRyYW1wb2xpbmUoRlBERl9GT1JNRklMTElORk8qIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhZ2VfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHpvb21fbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCogcG9zX2FycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhcnJheV9zaXplKSB7CisgIGF1dG8qIGRlbGVnYXRlID0gc3RhdGljX2Nhc3Q8RW1iZWRkZXJUZXN0Kj4oaW5mbyktPkdldERlbGVnYXRlKCk7CisgIHJldHVybiBkZWxlZ2F0ZS0+RG9Hb1RvQWN0aW9uKGluZm8sIHBhZ2VfaW5kZXgsIHpvb21fbW9kZSwgcG9zX2FycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV9zaXplKTsKK30KKwordm9pZCBPbkZvY3VzQ2hhbmdlVHJhbXBvbGluZShGUERGX0ZPUk1GSUxMSU5GTyogaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9BTk5PVEFUSU9OIGFubm90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFnZV9pbmRleCkgeworICBhdXRvKiBkZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PEVtYmVkZGVyVGVzdCo+KGluZm8pLT5HZXREZWxlZ2F0ZSgpOworICByZXR1cm4gZGVsZWdhdGUtPk9uRm9jdXNDaGFuZ2UoaW5mbywgYW5ub3QsIHBhZ2VfaW5kZXgpOworfQorCit2b2lkIERvVVJJQWN0aW9uV2l0aEtleWJvYXJkTW9kaWZpZXJUcmFtcG9saW5lKEZQREZfRk9STUZJTExJTkZPKiBpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX0JZVEVTVFJJTkcgdXJpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbW9kaWZpZXJzKSB7CisgIGF1dG8qIGRlbGVnYXRlID0gc3RhdGljX2Nhc3Q8RW1iZWRkZXJUZXN0Kj4oaW5mbyktPkdldERlbGVnYXRlKCk7CisgIHJldHVybiBkZWxlZ2F0ZS0+RG9VUklBY3Rpb25XaXRoS2V5Ym9hcmRNb2RpZmllcihpbmZvLCB1cmksIG1vZGlmaWVycyk7Cit9CisKKy8vIFRoZXNlIGRvIG5vdGhpbmcgKGJ1dCBtdXN0IHJldHVybiBhIHJlYXNvbmFibGUgZGVmYXVsdCB2YWx1ZSkuCit2b2lkIEludmFsaWRhdGVTdHViKEZQREZfRk9STUZJTExJTkZPKiBwVGhpcywKKyAgICAgICAgICAgICAgICAgICAgRlBERl9QQUdFIHBhZ2UsCisgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBsZWZ0LAorICAgICAgICAgICAgICAgICAgICBkb3VibGUgdG9wLAorICAgICAgICAgICAgICAgICAgICBkb3VibGUgcmlnaHQsCisgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBib3R0b20pIHt9CisKK3ZvaWQgT3V0cHV0U2VsZWN0ZWRSZWN0U3R1YihGUERGX0ZPUk1GSUxMSU5GTyogcFRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9QQUdFIHBhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGxlZnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgcmlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGJvdHRvbSkge30KKwordm9pZCBTZXRDdXJzb3JTdHViKEZQREZfRk9STUZJTExJTkZPKiBwVGhpcywgaW50IG5DdXJzb3JUeXBlKSB7fQorCitGUERGX1NZU1RFTVRJTUUgR2V0TG9jYWxUaW1lU3R1YihGUERGX0ZPUk1GSUxMSU5GTyogcFRoaXMpIHsKKyAgcmV0dXJuIHsxMjIsIDExLCA2LCAyOCwgMTIsIDU5LCA1OSwgNTAwfTsKK30KKwordm9pZCBPbkNoYW5nZVN0dWIoRlBERl9GT1JNRklMTElORk8qIHBUaGlzKSB7fQorCitGUERGX1BBR0UgR2V0Q3VycmVudFBhZ2VTdHViKEZQREZfRk9STUZJTExJTkZPKiBwVGhpcywgRlBERl9ET0NVTUVOVCBkb2N1bWVudCkgeworICByZXR1cm4gR2V0UGFnZVRyYW1wb2xpbmUocFRoaXMsIGRvY3VtZW50LCAwKTsKK30KKworaW50IEdldFJvdGF0aW9uU3R1YihGUERGX0ZPUk1GSUxMSU5GTyogcFRoaXMsIEZQREZfUEFHRSBwYWdlKSB7CisgIHJldHVybiAwOworfQorCit2b2lkIEV4ZWN1dGVOYW1lZEFjdGlvblN0dWIoRlBERl9GT1JNRklMTElORk8qIHBUaGlzLCBGUERGX0JZVEVTVFJJTkcgbmFtZSkge30KKwordm9pZCBTZXRUZXh0RmllbGRGb2N1c1N0dWIoRlBERl9GT1JNRklMTElORk8qIHBUaGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9XSURFU1RSSU5HIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9EV09SRCB2YWx1ZUxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfQk9PTCBpc19mb2N1cykge30KKworI2lmZGVmIFBERl9FTkFCTEVfWEZBCit2b2lkIERpc3BsYXlDYXJldFN0dWIoRlBERl9GT1JNRklMTElORk8qIHBUaGlzLAorICAgICAgICAgICAgICAgICAgICAgIEZQREZfUEFHRSBwYWdlLAorICAgICAgICAgICAgICAgICAgICAgIEZQREZfQk9PTCBiVmlzaWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbGVmdCwKKyAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdG9wLAorICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSByaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgYm90dG9tKSB7fQorCitpbnQgR2V0Q3VycmVudFBhZ2VJbmRleFN0dWIoRlBERl9GT1JNRklMTElORk8qIHBUaGlzLCBGUERGX0RPQ1VNRU5UIGRvY3VtZW50KSB7CisgIHJldHVybiAwOworfQorCit2b2lkIFNldEN1cnJlbnRQYWdlU3R1YihGUERGX0ZPUk1GSUxMSU5GTyogcFRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICBGUERGX0RPQ1VNRU5UIGRvY3VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlDdXJQYWdlKSB7fQorCit2b2lkIEdvdG9VUkxTdHViKEZQREZfRk9STUZJTExJTkZPKiBwVGhpcywKKyAgICAgICAgICAgICAgICAgRlBERl9ET0NVTUVOVCBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgRlBERl9XSURFU1RSSU5HIHdzVVJMKSB7fQorCit2b2lkIEdldFBhZ2VWaWV3UmVjdFN0dWIoRlBERl9GT1JNRklMTElORk8qIHBUaGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfUEFHRSBwYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSogbGVmdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUqIHRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUqIHJpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSogYm90dG9tKSB7CisgICpsZWZ0ID0gMC4wOworICAqdG9wID0gMC4wOworICAqcmlnaHQgPSA1MTIuMDsKKyAgKmJvdHRvbSA9IDUxMi4wOworfQorCit2b2lkIFBhZ2VFdmVudFN0dWIoRlBERl9GT1JNRklMTElORk8qIHBUaGlzLAorICAgICAgICAgICAgICAgICAgIGludCBwYWdlX2NvdW50LAorICAgICAgICAgICAgICAgICAgIEZQREZfRFdPUkQgZXZlbnRfdHlwZSkge30KKworRlBERl9CT09MIFBvcHVwTWVudVN0dWIoRlBERl9GT1JNRklMTElORk8qIHBUaGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9QQUdFIHBhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICBGUERGX1dJREdFVCBoV2lkZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1lbnVGbGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgeCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHkpIHsKKyAgcmV0dXJuIHRydWU7Cit9CisKK0ZQREZfRklMRUhBTkRMRVIqIE9wZW5GaWxlU3R1YihGUERGX0ZPUk1GSUxMSU5GTyogcFRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZpbGVGbGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfV0lERVNUUklORyB3c1VSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBtb2RlKSB7CisgIHJldHVybiBudWxscHRyOworfQorCit2b2lkIEVtYWlsVG9TdHViKEZQREZfRk9STUZJTExJTkZPKiBwVGhpcywKKyAgICAgICAgICAgICAgICAgRlBERl9GSUxFSEFORExFUiogZmlsZUhhbmRsZXIsCisgICAgICAgICAgICAgICAgIEZQREZfV0lERVNUUklORyBwVG8sCisgICAgICAgICAgICAgICAgIEZQREZfV0lERVNUUklORyBwU3ViamVjdCwKKyAgICAgICAgICAgICAgICAgRlBERl9XSURFU1RSSU5HIHBDQywKKyAgICAgICAgICAgICAgICAgRlBERl9XSURFU1RSSU5HIHBCY2MsCisgICAgICAgICAgICAgICAgIEZQREZfV0lERVNUUklORyBwTXNnKSB7fQorCit2b2lkIFVwbG9hZFRvU3R1YihGUERGX0ZPUk1GSUxMSU5GTyogcFRoaXMsCisgICAgICAgICAgICAgICAgICBGUERGX0ZJTEVIQU5ETEVSKiBmaWxlSGFuZGxlciwKKyAgICAgICAgICAgICAgICAgIGludCBmaWxlRmxhZywKKyAgICAgICAgICAgICAgICAgIEZQREZfV0lERVNUUklORyB1cGxvYWRUbykge30KKworaW50IEdldFBsYXRmb3JtU3R1YihGUERGX0ZPUk1GSUxMSU5GTyogcFRoaXMsIHZvaWQqIHBsYXRmb3JtLCBpbnQgbGVuZ3RoKSB7CisgIHJldHVybiAwOworfQorCitpbnQgR2V0TGFuZ3VhZ2VTdHViKEZQREZfRk9STUZJTExJTkZPKiBwVGhpcywgdm9pZCogbGFuZ3VhZ2UsIGludCBsZW5ndGgpIHsKKyAgcmV0dXJuIDA7Cit9CisKK0ZQREZfRklMRUhBTkRMRVIqIERvd25sb2FkRnJvbVVSTFN0dWIoRlBERl9GT1JNRklMTElORk8qIHBUaGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX1dJREVTVFJJTkcgVVJMKSB7CisgIHN0YXRpYyBjb25zdCBjaGFyIGtTdHJpbmdbXSA9ICI8Ym9keT5zZWNyZXRzPC9ib2R5PiI7CisgIHN0YXRpYyBGUERGX0ZJTEVIQU5ETEVSIGtGYWtlRmlsZUhhbmRsZXIgPSB7CisgICAgICBudWxscHRyLAorICAgICAgW10odm9pZCopIC0+IHZvaWQge30sCisgICAgICBbXSh2b2lkKikgLT4gRlBERl9EV09SRCB7IHJldHVybiBzaXplb2Yoa1N0cmluZyk7IH0sCisgICAgICBbXSh2b2lkKiwgRlBERl9EV09SRCBvZmYsIHZvaWQqIGJ1ZmZlciwgRlBERl9EV09SRCBzaXplKSAtPiBGUERGX1JFU1VMVCB7CisgICAgICAgIG1lbWNweShidWZmZXIsIGtTdHJpbmcsIHN0ZDo6bWluPHNpemVfdD4oc2l6ZSwgc2l6ZW9mKGtTdHJpbmcpKSk7CisgICAgICAgIHJldHVybiAwOworICAgICAgfSwKKyAgICAgIFtdKHZvaWQqLCBGUERGX0RXT1JELCBjb25zdCB2b2lkKiwgRlBERl9EV09SRCkgLT4gRlBERl9SRVNVTFQgeworICAgICAgICByZXR1cm4gLTE7CisgICAgICB9LAorICAgICAgW10odm9pZCopIC0+IEZQREZfUkVTVUxUIHsgcmV0dXJuIDA7IH0sCisgICAgICBbXSh2b2lkKiwgRlBERl9EV09SRCkgLT4gRlBERl9SRVNVTFQgeyByZXR1cm4gMDsgfX07CisgIHJldHVybiAma0Zha2VGaWxlSGFuZGxlcjsKK30KKworRlBERl9CT09MIFBvc3RSZXF1ZXN0VVJMU3R1YihGUERGX0ZPUk1GSUxMSU5GTyogcFRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfV0lERVNUUklORyB3c1VSTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9XSURFU1RSSU5HIHdzRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9XSURFU1RSSU5HIHdzQ29udGVudFR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfV0lERVNUUklORyB3c0VuY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9XSURFU1RSSU5HIHdzSGVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX0JTVFIqIHJlc3BvbnNlKSB7CisgIGNvbnN0IGNoYXIga1N0cmluZ1tdID0gInBcMG9cMHNcMHRcMGVcMGRcMCI7CisgIEZQREZfQlN0cl9TZXQocmVzcG9uc2UsIGtTdHJpbmcsIHNpemVvZihrU3RyaW5nKSAtIDEpOworICByZXR1cm4gdHJ1ZTsKK30KKworRlBERl9CT09MIFB1dFJlcXVlc3RVUkxTdHViKEZQREZfRk9STUZJTExJTkZPKiBwVGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX1dJREVTVFJJTkcgd3NVUkwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9XSURFU1RSSU5HIHdzRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX1dJREVTVFJJTkcgd3NFbmNvZGUpIHsKKyAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYgIC8vIFBERl9FTkFCTEVfWEZBCiAKIH0gIC8vIG5hbWVzcGFjZQogCiBFbWJlZGRlclRlc3Q6OkVtYmVkZGVyVGVzdCgpCi0gICAgOiBkZWZhdWx0X2RlbGVnYXRlXyhwZGZpdW06Ok1ha2VVbmlxdWU8RW1iZWRkZXJUZXN0OjpEZWxlZ2F0ZT4oKSksCisgICAgOiBkZWZhdWx0X2RlbGVnYXRlXyhzdGQ6Om1ha2VfdW5pcXVlPEVtYmVkZGVyVGVzdDo6RGVsZWdhdGU+KCkpLAogICAgICAgZGVsZWdhdGVfKGRlZmF1bHRfZGVsZWdhdGVfLmdldCgpKSB7CiAgIEZQREZfRklMRVdSSVRFOjp2ZXJzaW9uID0gMTsKICAgRlBERl9GSUxFV1JJVEU6OldyaXRlQmxvY2sgPSBXcml0ZUJsb2NrQ2FsbGJhY2s7CkBAIC02NCw1MiArMjcwLDMxIEBACiBFbWJlZGRlclRlc3Q6On5FbWJlZGRlclRlc3QoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgRW1iZWRkZXJUZXN0OjpTZXRVcCgpIHsKLSAgRlBERl9MSUJSQVJZX0NPTkZJRyBjb25maWc7Ci0gIGNvbmZpZy52ZXJzaW9uID0gMjsKLSAgY29uZmlnLm1fcFVzZXJGb250UGF0aHMgPSBudWxscHRyOwotICBjb25maWcubV92OEVtYmVkZGVyU2xvdCA9IDA7Ci0gIGNvbmZpZy5tX3BJc29sYXRlID0gZXh0ZXJuYWxfaXNvbGF0ZV87Ci0gIEZQREZfSW5pdExpYnJhcnlXaXRoQ29uZmlnKCZjb25maWcpOwotCiAgIFVOU1VQUE9SVF9JTkZPKiBpbmZvID0gc3RhdGljX2Nhc3Q8VU5TVVBQT1JUX0lORk8qPih0aGlzKTsKICAgbWVtc2V0KGluZm8sIDAsIHNpemVvZihVTlNVUFBPUlRfSU5GTykpOwogICBpbmZvLT52ZXJzaW9uID0gMTsKICAgaW5mby0+RlNES19VblN1cHBvcnRfSGFuZGxlciA9IFVuc3VwcG9ydGVkSGFuZGxlclRyYW1wb2xpbmU7CiAgIEZTREtfU2V0VW5TcE9ialByb2Nlc3NIYW5kbGVyKGluZm8pOwotCi0gIHNhdmVkX2RvY3VtZW50XyA9IG51bGxwdHI7CiB9CiAKIHZvaWQgRW1iZWRkZXJUZXN0OjpUZWFyRG93bigpIHsKICAgLy8gVXNlIGFuIEVYUEVDVF9FUSgpIGhlcmUgYW5kIGNvbnRpbnVlIHRvIGxldCBUZWFyRG93bigpIGZpbmlzaCBhcyBjbGVhbmx5IGFzCi0gIC8vIHBvc3NpYmxlLiBUaGlzIGNhbiBmYWlsIHdoZW4gYW4gQVNTRVJUIHRlc3QgZmFpbHMgaW4gYSB0ZXN0IGNhc2UuCisgIC8vIHBvc3NpYmxlLiBUaGlzIGNhbiBmYWlsIHdoZW4gYW4gRENIRUNLIHRlc3QgZmFpbHMgaW4gYSB0ZXN0IGNhc2UuCiAgIEVYUEVDVF9FUSgwVSwgcGFnZV9tYXBfLnNpemUoKSk7CiAgIEVYUEVDVF9FUSgwVSwgc2F2ZWRfcGFnZV9tYXBfLnNpemUoKSk7Ci0KLSAgaWYgKGRvY3VtZW50XykgewotICAgIEZPUk1fRG9Eb2N1bWVudEFBY3Rpb24oZm9ybV9oYW5kbGVfLCBGUERGRE9DX0FBQ1RJT05fV0MpOworICBpZiAoZG9jdW1lbnQoKSkKICAgICBDbG9zZURvY3VtZW50KCk7Ci0gIH0KLQotICBGUERGQXZhaWxfRGVzdHJveShhdmFpbF8pOwotICBGUERGX0Rlc3Ryb3lMaWJyYXJ5KCk7Ci0gIGxvYWRlcl8ucmVzZXQoKTsKIH0KIAotI2lmZGVmIFBERl9FTkFCTEVfVjgKLXZvaWQgRW1iZWRkZXJUZXN0OjpTZXRFeHRlcm5hbElzb2xhdGUodm9pZCogaXNvbGF0ZSkgewotICBleHRlcm5hbF9pc29sYXRlXyA9IHN0YXRpY19jYXN0PHY4OjpJc29sYXRlKj4oaXNvbGF0ZSk7Cit2b2lkIEVtYmVkZGVyVGVzdDo6Q3JlYXRlRW1wdHlEb2N1bWVudCgpIHsKKyAgQ3JlYXRlRW1wdHlEb2N1bWVudFdpdGhvdXRGb3JtRmlsbEVudmlyb25tZW50KCk7CisgIGZvcm1faGFuZGxlXy5yZXNldChTZXR1cEZvcm1GaWxsRW52aXJvbm1lbnQoCisgICAgICBkb2N1bWVudCgpLCBKYXZhU2NyaXB0T3B0aW9uOjprRW5hYmxlSmF2YVNjcmlwdCkpOwogfQotI2VuZGlmICAvLyBQREZfRU5BQkxFX1Y4CiAKLWJvb2wgRW1iZWRkZXJUZXN0OjpDcmVhdGVFbXB0eURvY3VtZW50KCkgewotICBkb2N1bWVudF8gPSBGUERGX0NyZWF0ZU5ld0RvY3VtZW50KCk7Ci0gIGlmICghZG9jdW1lbnRfKQotICAgIHJldHVybiBmYWxzZTsKLQotICBmb3JtX2hhbmRsZV8gPQotICAgICAgU2V0dXBGb3JtRmlsbEVudmlyb25tZW50KGRvY3VtZW50XywgSmF2YVNjcmlwdE9wdGlvbjo6a0VuYWJsZUphdmFTY3JpcHQpOwotICByZXR1cm4gdHJ1ZTsKK3ZvaWQgRW1iZWRkZXJUZXN0OjpDcmVhdGVFbXB0eURvY3VtZW50V2l0aG91dEZvcm1GaWxsRW52aXJvbm1lbnQoKSB7CisgIGRvY3VtZW50Xy5yZXNldChGUERGX0NyZWF0ZU5ld0RvY3VtZW50KCkpOworICBEQ0hFQ0soZG9jdW1lbnRfKTsKIH0KIAogYm9vbCBFbWJlZGRlclRlc3Q6Ok9wZW5Eb2N1bWVudChjb25zdCBzdGQ6OnN0cmluZyYgZmlsZW5hbWUpIHsKQEAgLTE1MCw3ICszMzUsNyBAQAogICAgIHJldHVybiBmYWxzZTsKIAogICBFWFBFQ1RfVFJVRSghbG9hZGVyXyk7Ci0gIGxvYWRlcl8gPSBwZGZpdW06Ok1ha2VVbmlxdWU8VGVzdExvYWRlcj4oCisgIGxvYWRlcl8gPSBzdGQ6Om1ha2VfdW5pcXVlPFRlc3RMb2FkZXI+KAogICAgICAgcGRmaXVtOjptYWtlX3NwYW4oZmlsZV9jb250ZW50c18uZ2V0KCksIGZpbGVfbGVuZ3RoXykpOwogCiAgIG1lbXNldCgmZmlsZV9hY2Nlc3NfLCAwLCBzaXplb2YoZmlsZV9hY2Nlc3NfKSk7CkBAIC0xNTgsNyArMzQzLDcgQEAKICAgZmlsZV9hY2Nlc3NfLm1fR2V0QmxvY2sgPSBUZXN0TG9hZGVyOjpHZXRCbG9jazsKICAgZmlsZV9hY2Nlc3NfLm1fUGFyYW0gPSBsb2FkZXJfLmdldCgpOwogCi0gIGZha2VfZmlsZV9hY2Nlc3NfID0gcGRmaXVtOjpNYWtlVW5pcXVlPEZha2VGaWxlQWNjZXNzPigmZmlsZV9hY2Nlc3NfKTsKKyAgZmFrZV9maWxlX2FjY2Vzc18gPSBzdGQ6Om1ha2VfdW5pcXVlPEZha2VGaWxlQWNjZXNzPigmZmlsZV9hY2Nlc3NfKTsKICAgcmV0dXJuIE9wZW5Eb2N1bWVudEhlbHBlcihwYXNzd29yZCwgbGluZWFyaXplX29wdGlvbiwgamF2YXNjcmlwdF9vcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFrZV9maWxlX2FjY2Vzc18uZ2V0KCksICZkb2N1bWVudF8sICZhdmFpbF8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvcm1faGFuZGxlXyk7CkBAIC0xNjgsNDIgKzM1Myw0NSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5lYXJpemVPcHRpb24gbGluZWFyaXplX29wdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSmF2YVNjcmlwdE9wdGlvbiBqYXZhc2NyaXB0X29wdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFrZUZpbGVBY2Nlc3MqIG5ldHdvcmtfc2ltdWxhdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX0RPQ1VNRU5UKiBkb2N1bWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9BVkFJTCogYXZhaWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfRk9STUhBTkRMRSogZm9ybV9oYW5kbGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NvcGVkRlBERkRvY3VtZW50KiBkb2N1bWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NvcGVkRlBERkF2YWlsKiBhdmFpbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NvcGVkRlBERkZvcm1IYW5kbGUqIGZvcm1faGFuZGxlKSB7CiAgIG5ldHdvcmtfc2ltdWxhdG9yLT5BZGRTZWdtZW50KDAsIDEwMjQpOwogICBuZXR3b3JrX3NpbXVsYXRvci0+U2V0UmVxdWVzdGVkRGF0YUF2YWlsYWJsZSgpOwotICAqYXZhaWwgPSBGUERGQXZhaWxfQ3JlYXRlKG5ldHdvcmtfc2ltdWxhdG9yLT5HZXRGaWxlQXZhaWwoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX3NpbXVsYXRvci0+R2V0RmlsZUFjY2VzcygpKTsKLSAgaWYgKEZQREZBdmFpbF9Jc0xpbmVhcml6ZWQoKmF2YWlsKSA9PSBQREZfTElORUFSSVpFRCkgeworICBhdmFpbC0+cmVzZXQoRlBERkF2YWlsX0NyZWF0ZShuZXR3b3JrX3NpbXVsYXRvci0+R2V0RmlsZUF2YWlsKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfc2ltdWxhdG9yLT5HZXRGaWxlQWNjZXNzKCkpKTsKKyAgRlBERl9BVkFJTCBhdmFpbF9wdHIgPSBhdmFpbC0+Z2V0KCk7CisgIEZQREZfRE9DVU1FTlQgZG9jdW1lbnRfcHRyID0gbnVsbHB0cjsKKyAgaWYgKEZQREZBdmFpbF9Jc0xpbmVhcml6ZWQoYXZhaWxfcHRyKSA9PSBQREZfTElORUFSSVpFRCkgewogICAgIGludDMyX3QgblJldCA9IFBERl9EQVRBX05PVEFWQUlMOwogICAgIHdoaWxlIChuUmV0ID09IFBERl9EQVRBX05PVEFWQUlMKSB7CiAgICAgICBuZXR3b3JrX3NpbXVsYXRvci0+U2V0UmVxdWVzdGVkRGF0YUF2YWlsYWJsZSgpOwotICAgICAgblJldCA9Ci0gICAgICAgICAgRlBERkF2YWlsX0lzRG9jQXZhaWwoKmF2YWlsLCBuZXR3b3JrX3NpbXVsYXRvci0+R2V0RG93bmxvYWRIaW50cygpKTsKKyAgICAgIG5SZXQgPSBGUERGQXZhaWxfSXNEb2NBdmFpbChhdmFpbF9wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0d29ya19zaW11bGF0b3ItPkdldERvd25sb2FkSGludHMoKSk7CiAgICAgfQogICAgIGlmIChuUmV0ID09IFBERl9EQVRBX0VSUk9SKQogICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgKmRvY3VtZW50ID0gRlBERkF2YWlsX0dldERvY3VtZW50KCphdmFpbCwgcGFzc3dvcmQpOwotICAgIGlmICghKmRvY3VtZW50KQorICAgIGRvY3VtZW50LT5yZXNldChGUERGQXZhaWxfR2V0RG9jdW1lbnQoYXZhaWxfcHRyLCBwYXNzd29yZCkpOworICAgIGRvY3VtZW50X3B0ciA9IGRvY3VtZW50LT5nZXQoKTsKKyAgICBpZiAoIWRvY3VtZW50X3B0cikKICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG5SZXQgPSBQREZfREFUQV9OT1RBVkFJTDsKICAgICB3aGlsZSAoblJldCA9PSBQREZfREFUQV9OT1RBVkFJTCkgewogICAgICAgbmV0d29ya19zaW11bGF0b3ItPlNldFJlcXVlc3RlZERhdGFBdmFpbGFibGUoKTsKLSAgICAgIG5SZXQgPQotICAgICAgICAgIEZQREZBdmFpbF9Jc0Zvcm1BdmFpbCgqYXZhaWwsIG5ldHdvcmtfc2ltdWxhdG9yLT5HZXREb3dubG9hZEhpbnRzKCkpOworICAgICAgblJldCA9IEZQREZBdmFpbF9Jc0Zvcm1BdmFpbChhdmFpbF9wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtfc2ltdWxhdG9yLT5HZXREb3dubG9hZEhpbnRzKCkpOwogICAgIH0KICAgICBpZiAoblJldCA9PSBQREZfRk9STV9FUlJPUikKICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGludCBwYWdlX2NvdW50ID0gRlBERl9HZXRQYWdlQ291bnQoKmRvY3VtZW50KTsKKyAgICBpbnQgcGFnZV9jb3VudCA9IEZQREZfR2V0UGFnZUNvdW50KGRvY3VtZW50X3B0cik7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBwYWdlX2NvdW50OyArK2kpIHsKICAgICAgIG5SZXQgPSBQREZfREFUQV9OT1RBVkFJTDsKICAgICAgIHdoaWxlIChuUmV0ID09IFBERl9EQVRBX05PVEFWQUlMKSB7CiAgICAgICAgIG5ldHdvcmtfc2ltdWxhdG9yLT5TZXRSZXF1ZXN0ZWREYXRhQXZhaWxhYmxlKCk7Ci0gICAgICAgIG5SZXQgPSBGUERGQXZhaWxfSXNQYWdlQXZhaWwoKmF2YWlsLCBpLAorICAgICAgICBuUmV0ID0gRlBERkF2YWlsX0lzUGFnZUF2YWlsKGF2YWlsX3B0ciwgaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXR3b3JrX3NpbXVsYXRvci0+R2V0RG93bmxvYWRIaW50cygpKTsKICAgICAgIH0KICAgICAgIGlmIChuUmV0ID09IFBERl9EQVRBX0VSUk9SKQpAQCAtMjEzLDI3ICs0MDEsMzEgQEAKICAgICBpZiAobGluZWFyaXplX29wdGlvbiA9PSBMaW5lYXJpemVPcHRpb246OmtNdXN0TGluZWFyaXplKQogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIG5ldHdvcmtfc2ltdWxhdG9yLT5TZXRXaG9sZUZpbGVBdmFpbGFibGUoKTsKLSAgICAqZG9jdW1lbnQgPQotICAgICAgICBGUERGX0xvYWRDdXN0b21Eb2N1bWVudChuZXR3b3JrX3NpbXVsYXRvci0+R2V0RmlsZUFjY2VzcygpLCBwYXNzd29yZCk7Ci0gICAgaWYgKCEqZG9jdW1lbnQpCisgICAgZG9jdW1lbnQtPnJlc2V0KAorICAgICAgICBGUERGX0xvYWRDdXN0b21Eb2N1bWVudChuZXR3b3JrX3NpbXVsYXRvci0+R2V0RmlsZUFjY2VzcygpLCBwYXNzd29yZCkpOworICAgIGRvY3VtZW50X3B0ciA9IGRvY3VtZW50LT5nZXQoKTsKKyAgICBpZiAoIWRvY3VtZW50X3B0cikKICAgICAgIHJldHVybiBmYWxzZTsKICAgfQotICAqZm9ybV9oYW5kbGUgPSBTZXR1cEZvcm1GaWxsRW52aXJvbm1lbnQoKmRvY3VtZW50LCBqYXZhc2NyaXB0X29wdGlvbik7CisgIGZvcm1faGFuZGxlLT5yZXNldChTZXR1cEZvcm1GaWxsRW52aXJvbm1lbnQoZG9jdW1lbnRfcHRyLCBqYXZhc2NyaXB0X29wdGlvbikpOwogCi0gIGludCBkb2NfdHlwZSA9IEZQREZfR2V0Rm9ybVR5cGUoKmRvY3VtZW50KTsKKyAgaW50IGRvY190eXBlID0gRlBERl9HZXRGb3JtVHlwZShkb2N1bWVudF9wdHIpOwogICBpZiAoZG9jX3R5cGUgPT0gRk9STVRZUEVfWEZBX0ZVTEwgfHwgZG9jX3R5cGUgPT0gRk9STVRZUEVfWEZBX0ZPUkVHUk9VTkQpCi0gICAgRlBERl9Mb2FkWEZBKCpkb2N1bWVudCk7CisgICAgRlBERl9Mb2FkWEZBKGRvY3VtZW50X3B0cik7CiAKLSAgKHZvaWQpRlBERl9HZXREb2NQZXJtaXNzaW9ucygqZG9jdW1lbnQpOworICAodm9pZClGUERGX0dldERvY1Blcm1pc3Npb25zKGRvY3VtZW50X3B0cik7CiAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIEVtYmVkZGVyVGVzdDo6Q2xvc2VEb2N1bWVudCgpIHsKLSAgRlBERkRPQ19FeGl0Rm9ybUZpbGxFbnZpcm9ubWVudChmb3JtX2hhbmRsZV8pOwotICBmb3JtX2hhbmRsZV8gPSBudWxscHRyOwotCi0gIEZQREZfQ2xvc2VEb2N1bWVudChkb2N1bWVudF8pOwotICBkb2N1bWVudF8gPSBudWxscHRyOworICBGT1JNX0RvRG9jdW1lbnRBQWN0aW9uKGZvcm1faGFuZGxlKCksIEZQREZET0NfQUFDVElPTl9XQyk7CisgIGZvcm1faGFuZGxlXy5yZXNldCgpOworICBkb2N1bWVudF8ucmVzZXQoKTsKKyAgYXZhaWxfLnJlc2V0KCk7CisgIGZha2VfZmlsZV9hY2Nlc3NfLnJlc2V0KCk7CisgIG1lbXNldCgmZmlsZV9hY2Nlc3NfLCAwLCBzaXplb2YoZmlsZV9hY2Nlc3NfKSk7CisgIGxvYWRlcl8ucmVzZXQoKTsKKyAgZmlsZV9jb250ZW50c18ucmVzZXQoKTsKIH0KIAogRlBERl9GT1JNSEFORExFIEVtYmVkZGVyVGVzdDo6U2V0dXBGb3JtRmlsbEVudmlyb25tZW50KApAQCAtMjQxLDIxICs0MzMsNDYgQEAKICAgICBKYXZhU2NyaXB0T3B0aW9uIGphdmFzY3JpcHRfb3B0aW9uKSB7CiAgIElQREZfSlNQTEFURk9STSogcGxhdGZvcm0gPSBzdGF0aWNfY2FzdDxJUERGX0pTUExBVEZPUk0qPih0aGlzKTsKICAgbWVtc2V0KHBsYXRmb3JtLCAnXDAnLCBzaXplb2YoSVBERl9KU1BMQVRGT1JNKSk7Ci0gIHBsYXRmb3JtLT52ZXJzaW9uID0gMjsKKyAgcGxhdGZvcm0tPnZlcnNpb24gPSAzOwogICBwbGF0Zm9ybS0+YXBwX2FsZXJ0ID0gQWxlcnRUcmFtcG9saW5lOwotICBwbGF0Zm9ybS0+bV9pc29sYXRlID0gZXh0ZXJuYWxfaXNvbGF0ZV87CiAKICAgRlBERl9GT1JNRklMTElORk8qIGZvcm1maWxsaW5mbyA9IHN0YXRpY19jYXN0PEZQREZfRk9STUZJTExJTkZPKj4odGhpcyk7CiAgIG1lbXNldChmb3JtZmlsbGluZm8sIDAsIHNpemVvZihGUERGX0ZPUk1GSUxMSU5GTykpOwotI2lmZGVmIFBERl9FTkFCTEVfWEZBCi0gIGZvcm1maWxsaW5mby0+dmVyc2lvbiA9IDI7Ci0jZWxzZSAgIC8vIFBERl9FTkFCTEVfWEZBCi0gIGZvcm1maWxsaW5mby0+dmVyc2lvbiA9IDE7Ci0jZW5kaWYgIC8vIFBERl9FTkFCTEVfWEZBCisgIGZvcm1maWxsaW5mby0+dmVyc2lvbiA9IGZvcm1fZmlsbF9pbmZvX3ZlcnNpb25fOworICBmb3JtZmlsbGluZm8tPkZGSV9JbnZhbGlkYXRlID0gSW52YWxpZGF0ZVN0dWI7CisgIGZvcm1maWxsaW5mby0+RkZJX091dHB1dFNlbGVjdGVkUmVjdCA9IE91dHB1dFNlbGVjdGVkUmVjdFN0dWI7CisgIGZvcm1maWxsaW5mby0+RkZJX1NldEN1cnNvciA9IFNldEN1cnNvclN0dWI7CiAgIGZvcm1maWxsaW5mby0+RkZJX1NldFRpbWVyID0gU2V0VGltZXJUcmFtcG9saW5lOwogICBmb3JtZmlsbGluZm8tPkZGSV9LaWxsVGltZXIgPSBLaWxsVGltZXJUcmFtcG9saW5lOworICBmb3JtZmlsbGluZm8tPkZGSV9HZXRMb2NhbFRpbWUgPSBHZXRMb2NhbFRpbWVTdHViOworICBmb3JtZmlsbGluZm8tPkZGSV9PbkNoYW5nZSA9IE9uQ2hhbmdlU3R1YjsKICAgZm9ybWZpbGxpbmZvLT5GRklfR2V0UGFnZSA9IEdldFBhZ2VUcmFtcG9saW5lOworICBmb3JtZmlsbGluZm8tPkZGSV9HZXRDdXJyZW50UGFnZSA9IEdldEN1cnJlbnRQYWdlU3R1YjsKKyAgZm9ybWZpbGxpbmZvLT5GRklfR2V0Um90YXRpb24gPSBHZXRSb3RhdGlvblN0dWI7CisgIGZvcm1maWxsaW5mby0+RkZJX0V4ZWN1dGVOYW1lZEFjdGlvbiA9IEV4ZWN1dGVOYW1lZEFjdGlvblN0dWI7CisgIGZvcm1maWxsaW5mby0+RkZJX1NldFRleHRGaWVsZEZvY3VzID0gU2V0VGV4dEZpZWxkRm9jdXNTdHViOwogICBmb3JtZmlsbGluZm8tPkZGSV9Eb1VSSUFjdGlvbiA9IERvVVJJQWN0aW9uVHJhbXBvbGluZTsKKyAgZm9ybWZpbGxpbmZvLT5GRklfRG9Hb1RvQWN0aW9uID0gRG9Hb1RvQWN0aW9uVHJhbXBvbGluZTsKKyNpZmRlZiBQREZfRU5BQkxFX1hGQQorICBmb3JtZmlsbGluZm8tPkZGSV9EaXNwbGF5Q2FyZXQgPSBEaXNwbGF5Q2FyZXRTdHViOworICBmb3JtZmlsbGluZm8tPkZGSV9HZXRDdXJyZW50UGFnZUluZGV4ID0gR2V0Q3VycmVudFBhZ2VJbmRleFN0dWI7CisgIGZvcm1maWxsaW5mby0+RkZJX1NldEN1cnJlbnRQYWdlID0gU2V0Q3VycmVudFBhZ2VTdHViOworICBmb3JtZmlsbGluZm8tPkZGSV9Hb3RvVVJMID0gR290b1VSTFN0dWI7CisgIGZvcm1maWxsaW5mby0+RkZJX0dldFBhZ2VWaWV3UmVjdCA9IEdldFBhZ2VWaWV3UmVjdFN0dWI7CisgIGZvcm1maWxsaW5mby0+RkZJX1BhZ2VFdmVudCA9IFBhZ2VFdmVudFN0dWI7CisgIGZvcm1maWxsaW5mby0+RkZJX1BvcHVwTWVudSA9IFBvcHVwTWVudVN0dWI7CisgIGZvcm1maWxsaW5mby0+RkZJX09wZW5GaWxlID0gT3BlbkZpbGVTdHViOworICBmb3JtZmlsbGluZm8tPkZGSV9FbWFpbFRvID0gRW1haWxUb1N0dWI7CisgIGZvcm1maWxsaW5mby0+RkZJX1VwbG9hZFRvID0gVXBsb2FkVG9TdHViOworICBmb3JtZmlsbGluZm8tPkZGSV9HZXRQbGF0Zm9ybSA9IEdldFBsYXRmb3JtU3R1YjsKKyAgZm9ybWZpbGxpbmZvLT5GRklfR2V0TGFuZ3VhZ2UgPSBHZXRMYW5ndWFnZVN0dWI7CisgIGZvcm1maWxsaW5mby0+RkZJX0Rvd25sb2FkRnJvbVVSTCA9IERvd25sb2FkRnJvbVVSTFN0dWI7CisgIGZvcm1maWxsaW5mby0+RkZJX1Bvc3RSZXF1ZXN0VVJMID0gUG9zdFJlcXVlc3RVUkxTdHViOworICBmb3JtZmlsbGluZm8tPkZGSV9QdXRSZXF1ZXN0VVJMID0gUHV0UmVxdWVzdFVSTFN0dWI7CisjZW5kaWYgIC8vIFBERl9FTkFCTEVfWEZBCisgIGZvcm1maWxsaW5mby0+RkZJX09uRm9jdXNDaGFuZ2UgPSBPbkZvY3VzQ2hhbmdlVHJhbXBvbGluZTsKKyAgZm9ybWZpbGxpbmZvLT5GRklfRG9VUklBY3Rpb25XaXRoS2V5Ym9hcmRNb2RpZmllciA9CisgICAgICBEb1VSSUFjdGlvbldpdGhLZXlib2FyZE1vZGlmaWVyVHJhbXBvbGluZTsKIAogICBpZiAoamF2YXNjcmlwdF9vcHRpb24gPT0gSmF2YVNjcmlwdE9wdGlvbjo6a0VuYWJsZUphdmFTY3JpcHQpCiAgICAgZm9ybWZpbGxpbmZvLT5tX3BKc1BsYXRmb3JtID0gcGxhdGZvcm07CkBAIC0yNjcsMjIgKzQ4NCwyMiBAQAogfQogCiB2b2lkIEVtYmVkZGVyVGVzdDo6RG9PcGVuQWN0aW9ucygpIHsKLSAgQVNTRVJUKGZvcm1faGFuZGxlXyk7Ci0gIEZPUk1fRG9Eb2N1bWVudEpTQWN0aW9uKGZvcm1faGFuZGxlXyk7Ci0gIEZPUk1fRG9Eb2N1bWVudE9wZW5BY3Rpb24oZm9ybV9oYW5kbGVfKTsKKyAgRENIRUNLKGZvcm1faGFuZGxlKCkpOworICBGT1JNX0RvRG9jdW1lbnRKU0FjdGlvbihmb3JtX2hhbmRsZSgpKTsKKyAgRk9STV9Eb0RvY3VtZW50T3BlbkFjdGlvbihmb3JtX2hhbmRsZSgpKTsKIH0KIAogaW50IEVtYmVkZGVyVGVzdDo6R2V0Rmlyc3RQYWdlTnVtKCkgewotICBpbnQgZmlyc3RfcGFnZSA9IEZQREZBdmFpbF9HZXRGaXJzdFBhZ2VOdW0oZG9jdW1lbnRfKTsKLSAgKHZvaWQpRlBERkF2YWlsX0lzUGFnZUF2YWlsKGF2YWlsXywgZmlyc3RfcGFnZSwKKyAgaW50IGZpcnN0X3BhZ2UgPSBGUERGQXZhaWxfR2V0Rmlyc3RQYWdlTnVtKGRvY3VtZW50KCkpOworICAodm9pZClGUERGQXZhaWxfSXNQYWdlQXZhaWwoYXZhaWwoKSwgZmlyc3RfcGFnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZha2VfZmlsZV9hY2Nlc3NfLT5HZXREb3dubG9hZEhpbnRzKCkpOwogICByZXR1cm4gZmlyc3RfcGFnZTsKIH0KIAogaW50IEVtYmVkZGVyVGVzdDo6R2V0UGFnZUNvdW50KCkgewotICBpbnQgcGFnZV9jb3VudCA9IEZQREZfR2V0UGFnZUNvdW50KGRvY3VtZW50Xyk7CisgIGludCBwYWdlX2NvdW50ID0gRlBERl9HZXRQYWdlQ291bnQoZG9jdW1lbnQoKSk7CiAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGFnZV9jb3VudDsgKytpKQotICAgICh2b2lkKUZQREZBdmFpbF9Jc1BhZ2VBdmFpbChhdmFpbF8sIGksCisgICAgKHZvaWQpRlBERkF2YWlsX0lzUGFnZUF2YWlsKGF2YWlsKCksIGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZha2VfZmlsZV9hY2Nlc3NfLT5HZXREb3dubG9hZEhpbnRzKCkpOwogICByZXR1cm4gcGFnZV9jb3VudDsKIH0KQEAgLTI5NiwxNyArNTEzLDE3IEBACiB9CiAKIEZQREZfUEFHRSBFbWJlZGRlclRlc3Q6OkxvYWRQYWdlQ29tbW9uKGludCBwYWdlX251bWJlciwgYm9vbCBkb19ldmVudHMpIHsKLSAgQVNTRVJUKGZvcm1faGFuZGxlXyk7Ci0gIEFTU0VSVChwYWdlX251bWJlciA+PSAwKTsKLSAgQVNTRVJUKCFwZGZpdW06OkNvbnRhaW5zS2V5KHBhZ2VfbWFwXywgcGFnZV9udW1iZXIpKTsKKyAgRENIRUNLKGZvcm1faGFuZGxlKCkpOworICBEQ0hFQ0socGFnZV9udW1iZXIgPj0gMCk7CisgIERDSEVDSyghcGRmaXVtOjpDb250YWlucyhwYWdlX21hcF8sIHBhZ2VfbnVtYmVyKSk7CiAKLSAgRlBERl9QQUdFIHBhZ2UgPSBGUERGX0xvYWRQYWdlKGRvY3VtZW50XywgcGFnZV9udW1iZXIpOworICBGUERGX1BBR0UgcGFnZSA9IEZQREZfTG9hZFBhZ2UoZG9jdW1lbnQoKSwgcGFnZV9udW1iZXIpOwogICBpZiAoIXBhZ2UpCiAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgaWYgKGRvX2V2ZW50cykgewotICAgIEZPUk1fT25BZnRlckxvYWRQYWdlKHBhZ2UsIGZvcm1faGFuZGxlXyk7Ci0gICAgRk9STV9Eb1BhZ2VBQWN0aW9uKHBhZ2UsIGZvcm1faGFuZGxlXywgRlBERlBBR0VfQUFDVElPTl9PUEVOKTsKKyAgICBGT1JNX09uQWZ0ZXJMb2FkUGFnZShwYWdlLCBmb3JtX2hhbmRsZSgpKTsKKyAgICBGT1JNX0RvUGFnZUFBY3Rpb24ocGFnZSwgZm9ybV9oYW5kbGUoKSwgRlBERlBBR0VfQUFDVElPTl9PUEVOKTsKICAgfQogICBwYWdlX21hcF9bcGFnZV9udW1iZXJdID0gcGFnZTsKICAgcmV0dXJuIHBhZ2U7CkBAIC0zMjEsMTUgKzUzOCwxNSBAQAogfQogCiB2b2lkIEVtYmVkZGVyVGVzdDo6VW5sb2FkUGFnZUNvbW1vbihGUERGX1BBR0UgcGFnZSwgYm9vbCBkb19ldmVudHMpIHsKLSAgQVNTRVJUKGZvcm1faGFuZGxlXyk7CisgIERDSEVDSyhmb3JtX2hhbmRsZSgpKTsKICAgaW50IHBhZ2VfbnVtYmVyID0gR2V0UGFnZU51bWJlckZvckxvYWRlZFBhZ2UocGFnZSk7CiAgIGlmIChwYWdlX251bWJlciA8IDApIHsKICAgICBOT1RSRUFDSEVEKCk7CiAgICAgcmV0dXJuOwogICB9CiAgIGlmIChkb19ldmVudHMpIHsKLSAgICBGT1JNX0RvUGFnZUFBY3Rpb24ocGFnZSwgZm9ybV9oYW5kbGVfLCBGUERGUEFHRV9BQUNUSU9OX0NMT1NFKTsKLSAgICBGT1JNX09uQmVmb3JlQ2xvc2VQYWdlKHBhZ2UsIGZvcm1faGFuZGxlXyk7CisgICAgRk9STV9Eb1BhZ2VBQWN0aW9uKHBhZ2UsIGZvcm1faGFuZGxlKCksIEZQREZQQUdFX0FBQ1RJT05fQ0xPU0UpOworICAgIEZPUk1fT25CZWZvcmVDbG9zZVBhZ2UocGFnZSwgZm9ybV9oYW5kbGUoKSk7CiAgIH0KICAgRlBERl9DbG9zZVBhZ2UocGFnZSk7CiAgIHBhZ2VfbWFwXy5lcmFzZShwYWdlX251bWJlcik7CkBAIC0zNTAsNyArNTY3LDcgQEAKICAgICBOT1RSRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiAgIH0KLSAgcmV0dXJuIFJlbmRlclBhZ2VXaXRoRmxhZ3MocGFnZSwgZm9ybV9oYW5kbGVfLCBmbGFncyk7CisgIHJldHVybiBSZW5kZXJQYWdlV2l0aEZsYWdzKHBhZ2UsIGZvcm1faGFuZGxlKCksIGZsYWdzKTsKIH0KIAogU2NvcGVkRlBERkJpdG1hcCBFbWJlZGRlclRlc3Q6OlJlbmRlclNhdmVkUGFnZShGUERGX1BBR0UgcGFnZSkgewpAQCAtMzYzLDcgKzU4MCw3IEBACiAgICAgTk9UUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwogICB9Ci0gIHJldHVybiBSZW5kZXJQYWdlV2l0aEZsYWdzKHBhZ2UsIHNhdmVkX2Zvcm1faGFuZGxlXywgZmxhZ3MpOworICByZXR1cm4gUmVuZGVyUGFnZVdpdGhGbGFncyhwYWdlLCBzYXZlZF9mb3JtX2hhbmRsZSgpLCBmbGFncyk7CiB9CiAKIC8vIHN0YXRpYwpAQCAtMzg2LDcgKzYwMyw3IEBACiAgIHJldHVybiBSZW5kZXJQYWdlV2l0aEZsYWdzKHBhZ2UsIG51bGxwdHIsIDApOwogfQogCi0jaWYgZGVmaW5lZChPU19XSU4pCisjaWYgQlVJTERGTEFHKElTX1dJTikKIC8vIHN0YXRpYwogc3RkOjp2ZWN0b3I8dWludDhfdD4gRW1iZWRkZXJUZXN0OjpSZW5kZXJQYWdlV2l0aEZsYWdzVG9FbWYoRlBERl9QQUdFIHBhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmxhZ3MpIHsKQEAgLTQwNiw3ICs2MjMsNyBAQAogICBGUERGX1JlbmRlclBhZ2UoZGMsIHBhZ2UsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIDAsIGZsYWdzKTsKIAogICBIRU5ITUVUQUZJTEUgZW1mID0gQ2xvc2VFbmhNZXRhRmlsZShkYyk7Ci0gIHNpemVfdCBzaXplX2luX2J5dGVzID0gR2V0RW5oTWV0YUZpbGVCaXRzKGVtZiwgMCwgbnVsbHB0cik7CisgIFVJTlQgc2l6ZV9pbl9ieXRlcyA9IEdldEVuaE1ldGFGaWxlQml0cyhlbWYsIDAsIG51bGxwdHIpOwogICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBidWZmZXIoc2l6ZV9pbl9ieXRlcyk7CiAgIEdldEVuaE1ldGFGaWxlQml0cyhlbWYsIHNpemVfaW5fYnl0ZXMsIGJ1ZmZlci5kYXRhKCkpOwogICBEZWxldGVFbmhNZXRhRmlsZShlbWYpOwpAQCAtNDE3LDcgKzYzNCw4IEBACiBzdGQ6OnN0cmluZyBFbWJlZGRlclRlc3Q6OkdldFBvc3RTY3JpcHRGcm9tRW1mKAogICAgIHBkZml1bTo6c3Bhbjxjb25zdCB1aW50OF90PiBlbWZfZGF0YSkgewogICAvLyBUaGlzIGNvbWVzIGZyb20gRW1mOjpJbml0RnJvbURhdGEoKSBpbiBDaHJvbWl1bS4KLSAgSEVOSE1FVEFGSUxFIGVtZiA9IFNldEVuaE1ldGFGaWxlQml0cyhlbWZfZGF0YS5zaXplKCksIGVtZl9kYXRhLmRhdGEoKSk7CisgIEhFTkhNRVRBRklMRSBlbWYgPSBTZXRFbmhNZXRhRmlsZUJpdHMoCisgICAgICBwZGZpdW06OmJhc2U6OmNoZWNrZWRfY2FzdDxVSU5UPihlbWZfZGF0YS5zaXplKCkpLCBlbWZfZGF0YS5kYXRhKCkpOwogICBpZiAoIWVtZikKICAgICByZXR1cm4gc3RkOjpzdHJpbmcoKTsKIApAQCAtNDQ2LDcgKzY2NCw3IEBACiAgIERlbGV0ZUVuaE1ldGFGaWxlKGVtZik7CiAgIHJldHVybiBwc19kYXRhOwogfQotI2VuZGlmICAvLyBkZWZpbmVkKE9TX1dJTikKKyNlbmRpZiAgLy8gQlVJTERGTEFHKElTX1dJTikKIAogRlBERl9ET0NVTUVOVCBFbWJlZGRlclRlc3Q6Ok9wZW5TYXZlZERvY3VtZW50KCkgewogICByZXR1cm4gT3BlblNhdmVkRG9jdW1lbnRXaXRoUGFzc3dvcmQobnVsbHB0cik7CkBAIC00NzEsNTEgKzY4OSw0OCBAQAogRlBERl9ET0NVTUVOVCBFbWJlZGRlclRlc3Q6Ok9wZW5TYXZlZERvY3VtZW50V2l0aFBhc3N3b3JkKAogICAgIGNvbnN0IGNoYXIqIHBhc3N3b3JkKSB7CiAgIG1lbXNldCgmc2F2ZWRfZmlsZV9hY2Nlc3NfLCAwLCBzaXplb2Yoc2F2ZWRfZmlsZV9hY2Nlc3NfKSk7Ci0gIHNhdmVkX2ZpbGVfYWNjZXNzXy5tX0ZpbGVMZW4gPSBkYXRhX3N0cmluZ18uc2l6ZSgpOworICBzYXZlZF9maWxlX2FjY2Vzc18ubV9GaWxlTGVuID0KKyAgICAgIHBkZml1bTo6YmFzZTo6Y2hlY2tlZF9jYXN0PHVuc2lnbmVkIGxvbmc+KGRhdGFfc3RyaW5nXy5zaXplKCkpOwogICBzYXZlZF9maWxlX2FjY2Vzc18ubV9HZXRCbG9jayA9IEdldEJsb2NrRnJvbVN0cmluZzsKICAgLy8gQ29weSBkYXRhIHRvIHByZXZlbnQgY2xlYXJpbmcgaXQgYmVmb3JlIHNhdmVkIGRvY3VtZW50IGNsb3NlLgogICBzYXZlZF9kb2N1bWVudF9maWxlX2RhdGFfID0gZGF0YV9zdHJpbmdfOwogICBzYXZlZF9maWxlX2FjY2Vzc18ubV9QYXJhbSA9ICZzYXZlZF9kb2N1bWVudF9maWxlX2RhdGFfOwogCiAgIHNhdmVkX2Zha2VfZmlsZV9hY2Nlc3NfID0KLSAgICAgIHBkZml1bTo6TWFrZVVuaXF1ZTxGYWtlRmlsZUFjY2Vzcz4oJnNhdmVkX2ZpbGVfYWNjZXNzXyk7CisgICAgICBzdGQ6Om1ha2VfdW5pcXVlPEZha2VGaWxlQWNjZXNzPigmc2F2ZWRfZmlsZV9hY2Nlc3NfKTsKIAogICBFWFBFQ1RfVFJVRShPcGVuRG9jdW1lbnRIZWxwZXIoCiAgICAgICBwYXNzd29yZCwgTGluZWFyaXplT3B0aW9uOjprRGVmYXVsdExpbmVhcml6ZSwKICAgICAgIEphdmFTY3JpcHRPcHRpb246OmtFbmFibGVKYXZhU2NyaXB0LCBzYXZlZF9mYWtlX2ZpbGVfYWNjZXNzXy5nZXQoKSwKICAgICAgICZzYXZlZF9kb2N1bWVudF8sICZzYXZlZF9hdmFpbF8sICZzYXZlZF9mb3JtX2hhbmRsZV8pKTsKLSAgcmV0dXJuIHNhdmVkX2RvY3VtZW50XzsKKyAgcmV0dXJuIHNhdmVkX2RvY3VtZW50KCk7CiB9CiAKIHZvaWQgRW1iZWRkZXJUZXN0OjpDbG9zZVNhdmVkRG9jdW1lbnQoKSB7Ci0gIEFTU0VSVChzYXZlZF9kb2N1bWVudF8pOworICBEQ0hFQ0soc2F2ZWRfZG9jdW1lbnQoKSk7CiAKLSAgRlBERkRPQ19FeGl0Rm9ybUZpbGxFbnZpcm9ubWVudChzYXZlZF9mb3JtX2hhbmRsZV8pOwotICBGUERGX0Nsb3NlRG9jdW1lbnQoc2F2ZWRfZG9jdW1lbnRfKTsKLSAgRlBERkF2YWlsX0Rlc3Ryb3koc2F2ZWRfYXZhaWxfKTsKLQotICBzYXZlZF9mb3JtX2hhbmRsZV8gPSBudWxscHRyOwotICBzYXZlZF9kb2N1bWVudF8gPSBudWxscHRyOwotICBzYXZlZF9hdmFpbF8gPSBudWxscHRyOworICBzYXZlZF9mb3JtX2hhbmRsZV8ucmVzZXQoKTsKKyAgc2F2ZWRfZG9jdW1lbnRfLnJlc2V0KCk7CisgIHNhdmVkX2F2YWlsXy5yZXNldCgpOwogfQogCiBGUERGX1BBR0UgRW1iZWRkZXJUZXN0OjpMb2FkU2F2ZWRQYWdlKGludCBwYWdlX251bWJlcikgewotICBBU1NFUlQoc2F2ZWRfZm9ybV9oYW5kbGVfKTsKLSAgQVNTRVJUKHBhZ2VfbnVtYmVyID49IDApOwotICBBU1NFUlQoIXBkZml1bTo6Q29udGFpbnNLZXkoc2F2ZWRfcGFnZV9tYXBfLCBwYWdlX251bWJlcikpOworICBEQ0hFQ0soc2F2ZWRfZm9ybV9oYW5kbGUoKSk7CisgIERDSEVDSyhwYWdlX251bWJlciA+PSAwKTsKKyAgRENIRUNLKCFwZGZpdW06OkNvbnRhaW5zKHNhdmVkX3BhZ2VfbWFwXywgcGFnZV9udW1iZXIpKTsKIAotICBGUERGX1BBR0UgcGFnZSA9IEZQREZfTG9hZFBhZ2Uoc2F2ZWRfZG9jdW1lbnRfLCBwYWdlX251bWJlcik7CisgIEZQREZfUEFHRSBwYWdlID0gRlBERl9Mb2FkUGFnZShzYXZlZF9kb2N1bWVudCgpLCBwYWdlX251bWJlcik7CiAgIGlmICghcGFnZSkKICAgICByZXR1cm4gbnVsbHB0cjsKIAotICBGT1JNX09uQWZ0ZXJMb2FkUGFnZShwYWdlLCBzYXZlZF9mb3JtX2hhbmRsZV8pOwotICBGT1JNX0RvUGFnZUFBY3Rpb24ocGFnZSwgc2F2ZWRfZm9ybV9oYW5kbGVfLCBGUERGUEFHRV9BQUNUSU9OX09QRU4pOworICBGT1JNX09uQWZ0ZXJMb2FkUGFnZShwYWdlLCBzYXZlZF9mb3JtX2hhbmRsZSgpKTsKKyAgRk9STV9Eb1BhZ2VBQWN0aW9uKHBhZ2UsIHNhdmVkX2Zvcm1faGFuZGxlKCksIEZQREZQQUdFX0FBQ1RJT05fT1BFTik7CiAgIHNhdmVkX3BhZ2VfbWFwX1twYWdlX251bWJlcl0gPSBwYWdlOwogICByZXR1cm4gcGFnZTsKIH0KIAogdm9pZCBFbWJlZGRlclRlc3Q6OkNsb3NlU2F2ZWRQYWdlKEZQREZfUEFHRSBwYWdlKSB7Ci0gIEFTU0VSVChzYXZlZF9mb3JtX2hhbmRsZV8pOworICBEQ0hFQ0soc2F2ZWRfZm9ybV9oYW5kbGUoKSk7CiAKICAgaW50IHBhZ2VfbnVtYmVyID0gR2V0UGFnZU51bWJlckZvclNhdmVkUGFnZShwYWdlKTsKICAgaWYgKHBhZ2VfbnVtYmVyIDwgMCkgewpAQCAtNTIzLDggKzczOCw4IEBACiAgICAgcmV0dXJuOwogICB9CiAKLSAgRk9STV9Eb1BhZ2VBQWN0aW9uKHBhZ2UsIHNhdmVkX2Zvcm1faGFuZGxlXywgRlBERlBBR0VfQUFDVElPTl9DTE9TRSk7Ci0gIEZPUk1fT25CZWZvcmVDbG9zZVBhZ2UocGFnZSwgc2F2ZWRfZm9ybV9oYW5kbGVfKTsKKyAgRk9STV9Eb1BhZ2VBQWN0aW9uKHBhZ2UsIHNhdmVkX2Zvcm1faGFuZGxlKCksIEZQREZQQUdFX0FBQ1RJT05fQ0xPU0UpOworICBGT1JNX09uQmVmb3JlQ2xvc2VQYWdlKHBhZ2UsIHNhdmVkX2Zvcm1faGFuZGxlKCkpOwogICBGUERGX0Nsb3NlUGFnZShwYWdlKTsKIAogICBzYXZlZF9wYWdlX21hcF8uZXJhc2UocGFnZV9udW1iZXIpOwpAQCAtNTM0LDggKzc0OSw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHdpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogbWQ1KSB7Ci0gIEFTU0VSVChzYXZlZF9kb2N1bWVudF8pOwotICBBU1NFUlQocGFnZSk7CisgIERDSEVDSyhzYXZlZF9kb2N1bWVudCgpKTsKKyAgRENIRUNLKHBhZ2UpOwogCiAgIFNjb3BlZEZQREZCaXRtYXAgYml0bWFwID0gUmVuZGVyU2F2ZWRQYWdlV2l0aEZsYWdzKHBhZ2UsIEZQREZfQU5OT1QpOwogICBDb21wYXJlQml0bWFwKGJpdG1hcC5nZXQoKSwgd2lkdGgsIGhlaWdodCwgbWQ1KTsKQEAgLTU1MCwxMCArNzY1LDE5IEBACiB9CiAKIHZvaWQgRW1iZWRkZXJUZXN0OjpTZXRXaG9sZUZpbGVBdmFpbGFibGUoKSB7Ci0gIEFTU0VSVChmYWtlX2ZpbGVfYWNjZXNzXyk7CisgIERDSEVDSyhmYWtlX2ZpbGVfYWNjZXNzXyk7CiAgIGZha2VfZmlsZV9hY2Nlc3NfLT5TZXRXaG9sZUZpbGVBdmFpbGFibGUoKTsKIH0KIAordm9pZCBFbWJlZGRlclRlc3Q6OlNldERvY3VtZW50RnJvbUF2YWlsKCkgeworICBkb2N1bWVudF8ucmVzZXQoRlBERkF2YWlsX0dldERvY3VtZW50KGF2YWlsKCksIG51bGxwdHIpKTsKK30KKwordm9pZCBFbWJlZGRlclRlc3Q6OkNyZWF0ZUF2YWlsKEZYX0ZJTEVBVkFJTCogZmlsZV9hdmFpbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX0ZJTEVBQ0NFU1MqIGZpbGUpIHsKKyAgYXZhaWxfLnJlc2V0KEZQREZBdmFpbF9DcmVhdGUoZmlsZV9hdmFpbCwgZmlsZSkpOworfQorCiBGUERGX1BBR0UgRW1iZWRkZXJUZXN0OjpEZWxlZ2F0ZTo6R2V0UGFnZShGUERGX0ZPUk1GSUxMSU5GTyogaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfRE9DVU1FTlQgZG9jdW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFnZV9pbmRleCkgewpAQCAtNTYzLDUyICs3ODcsNiBAQAogfQogCiAvLyBzdGF0aWMKLXZvaWQgRW1iZWRkZXJUZXN0OjpVbnN1cHBvcnRlZEhhbmRsZXJUcmFtcG9saW5lKFVOU1VQUE9SVF9JTkZPKiBpbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHR5cGUpIHsKLSAgRW1iZWRkZXJUZXN0KiB0ZXN0ID0gc3RhdGljX2Nhc3Q8RW1iZWRkZXJUZXN0Kj4oaW5mbyk7Ci0gIHRlc3QtPmRlbGVnYXRlXy0+VW5zdXBwb3J0ZWRIYW5kbGVyKHR5cGUpOwotfQotCi0vLyBzdGF0aWMKLWludCBFbWJlZGRlclRlc3Q6OkFsZXJ0VHJhbXBvbGluZShJUERGX0pTUExBVEZPUk0qIHBsYXRmb3JtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfV0lERVNUUklORyBtZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfV0lERVNUUklORyB0aXRsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaWNvbikgewotICBFbWJlZGRlclRlc3QqIHRlc3QgPSBzdGF0aWNfY2FzdDxFbWJlZGRlclRlc3QqPihwbGF0Zm9ybSk7Ci0gIHJldHVybiB0ZXN0LT5kZWxlZ2F0ZV8tPkFsZXJ0KG1lc3NhZ2UsIHRpdGxlLCB0eXBlLCBpY29uKTsKLX0KLQotLy8gc3RhdGljCi1pbnQgRW1iZWRkZXJUZXN0OjpTZXRUaW1lclRyYW1wb2xpbmUoRlBERl9GT1JNRklMTElORk8qIGluZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1zZWNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVyQ2FsbGJhY2sgZm4pIHsKLSAgRW1iZWRkZXJUZXN0KiB0ZXN0ID0gc3RhdGljX2Nhc3Q8RW1iZWRkZXJUZXN0Kj4oaW5mbyk7Ci0gIHJldHVybiB0ZXN0LT5kZWxlZ2F0ZV8tPlNldFRpbWVyKG1zZWNzLCBmbik7Ci19Ci0KLS8vIHN0YXRpYwotdm9pZCBFbWJlZGRlclRlc3Q6OktpbGxUaW1lclRyYW1wb2xpbmUoRlBERl9GT1JNRklMTElORk8qIGluZm8sIGludCBpZCkgewotICBFbWJlZGRlclRlc3QqIHRlc3QgPSBzdGF0aWNfY2FzdDxFbWJlZGRlclRlc3QqPihpbmZvKTsKLSAgcmV0dXJuIHRlc3QtPmRlbGVnYXRlXy0+S2lsbFRpbWVyKGlkKTsKLX0KLQotLy8gc3RhdGljCi1GUERGX1BBR0UgRW1iZWRkZXJUZXN0OjpHZXRQYWdlVHJhbXBvbGluZShGUERGX0ZPUk1GSUxMSU5GTyogaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfRE9DVU1FTlQgZG9jdW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcGFnZV9pbmRleCkgewotICByZXR1cm4gc3RhdGljX2Nhc3Q8RW1iZWRkZXJUZXN0Kj4oaW5mbyktPmRlbGVnYXRlXy0+R2V0UGFnZShpbmZvLCBkb2N1bWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9pbmRleCk7Ci19Ci0KLS8vIHN0YXRpYwotdm9pZCBFbWJlZGRlclRlc3Q6OkRvVVJJQWN0aW9uVHJhbXBvbGluZShGUERGX0ZPUk1GSUxMSU5GTyogaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9CWVRFU1RSSU5HIHVyaSkgewotICBFbWJlZGRlclRlc3QqIHRlc3QgPSBzdGF0aWNfY2FzdDxFbWJlZGRlclRlc3QqPihpbmZvKTsKLSAgcmV0dXJuIHRlc3QtPmRlbGVnYXRlXy0+RG9VUklBY3Rpb24odXJpKTsKLX0KLQotLy8gc3RhdGljCiBzdGQ6OnN0cmluZyBFbWJlZGRlclRlc3Q6Okhhc2hCaXRtYXAoRlBERl9CSVRNQVAgYml0bWFwKSB7CiAgIGludCBzdHJpZGUgPSBGUERGQml0bWFwX0dldFN0cmlkZShiaXRtYXApOwogICBpbnQgdXNhYmxlX2J5dGVzX3Blcl9yb3cgPQpAQCAtNjI1LDEzICs4MDMsMTEgQEAKICAgcmV0dXJuIENyeXB0VG9CYXNlMTYoZGlnZXN0KTsKIH0KIAotI2lmbmRlZiBOREVCVUcKIC8vIHN0YXRpYwogdm9pZCBFbWJlZGRlclRlc3Q6OldyaXRlQml0bWFwVG9QbmcoRlBERl9CSVRNQVAgYml0bWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGZpbGVuYW1lKSB7CiAgIEJpdG1hcFNhdmVyOjpXcml0ZUJpdG1hcFRvUG5nKGJpdG1hcCwgZmlsZW5hbWUpOwogfQotI2VuZGlmCiAKIC8vIHN0YXRpYwogdm9pZCBFbWJlZGRlclRlc3Q6OkNvbXBhcmVCaXRtYXAoRlBERl9CSVRNQVAgYml0bWFwLApAQCAtNjUwLDcgKzgyNiwxMSBAQAogICBpZiAoIWV4cGVjdGVkX21kNXN1bSkKICAgICByZXR1cm47CiAKLSAgRVhQRUNUX0VRKGV4cGVjdGVkX21kNXN1bSwgSGFzaEJpdG1hcChiaXRtYXApKTsKKyAgc3RkOjpzdHJpbmcgYWN0dWFsX21kNXN1bSA9IEhhc2hCaXRtYXAoYml0bWFwKTsKKyAgRVhQRUNUX0VRKGV4cGVjdGVkX21kNXN1bSwgYWN0dWFsX21kNXN1bSk7CisgIGlmIChFbWJlZGRlclRlc3RFbnZpcm9ubWVudDo6R2V0SW5zdGFuY2UoKS0+d3JpdGVfcG5ncygpKSB7CisgICAgV3JpdGVCaXRtYXBUb1BuZyhiaXRtYXAsIGFjdHVhbF9tZDVzdW0gKyAiLnBuZyIpOworICB9CiB9CiAKIC8vIHN0YXRpYwpAQCAtNjkzLDcgKzg3Myw3IEBACiAgIGZvciAoY29uc3QgYXV0byYgaXQgOiBwYWdlX21hcCkgewogICAgIGlmIChpdC5zZWNvbmQgPT0gcGFnZSkgewogICAgICAgaW50IHBhZ2VfbnVtYmVyID0gaXQuZmlyc3Q7Ci0gICAgICBBU1NFUlQocGFnZV9udW1iZXIgPj0gMCk7CisgICAgICBEQ0hFQ0socGFnZV9udW1iZXIgPj0gMCk7CiAgICAgICByZXR1cm4gcGFnZV9udW1iZXI7CiAgICAgfQogICB9CmRpZmYgLS1naXQgYS90ZXN0aW5nL2VtYmVkZGVyX3Rlc3QuaCBiL3Rlc3RpbmcvZW1iZWRkZXJfdGVzdC5oCmluZGV4IDY2MjMzM2MuLmM3M2RkNjEgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZW1iZWRkZXJfdGVzdC5oCisrKyBiL3Rlc3RpbmcvZW1iZWRkZXJfdGVzdC5oCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNSBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTI1LDYgKzI1LDEwIEBACiAKIGNsYXNzIFRlc3RMb2FkZXI7CiAKKy8vIFRoZSBsb2FkaW5nIHRpbWUgb2YgdGhlIENGR0FTX0ZvbnRNZ3IgaXMgbGluZWFyIGluIHRoZSBudW1iZXIgb2YgdGltZXMgaXQgaXMKKy8vIGxvYWRlZC4gU28sIGlmIGEgdGVzdCBzdWl0ZSBoYXMgYSBsb3Qgb2YgdGVzdHMgdGhhdCBuZWVkIGEgZm9udCBtYW5hZ2VyIHRoZXkKKy8vIGNhbiBlbmQgdXAgZXhlY3V0aW5nIHZlcnksIHZlcnkgc2xvd2x5LgorCiAvLyBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gbG9hZCBhIFBERiBkb2N1bWVudCwgYW5kIHRoZW4gcnVuIHByb2dyYW1hdGljCiAvLyBBUEkgdGVzdHMgYWdhaW5zdCBpdC4KIGNsYXNzIEVtYmVkZGVyVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QsCkBAIC02NCw2ICs2OCwyMyBAQAogCiAgICAgLy8gRXF1aXZhbGVudCB0byBGUERGX0ZPUk1GSUxMSU5GTzo6RkZJX0RvVVJJQWN0aW9uKCkuCiAgICAgdmlydHVhbCB2b2lkIERvVVJJQWN0aW9uKEZQREZfQllURVNUUklORyB1cmkpIHt9CisKKyAgICAvLyBFcXVpdmFsZW50IHRvIEZQREZfRk9STUZJTExJTkZPOjpGRklfRG9Hb1RvQWN0aW9uKCkuCisgICAgdmlydHVhbCB2b2lkIERvR29Ub0FjdGlvbihGUERGX0ZPUk1GSUxMSU5GTyogaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwYWdlX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHpvb21fbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0KiBwb3NfYXJyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhcnJheV9zaXplKSB7fQorCisgICAgLy8gRXF1aXZhbGVudCB0byBGUERGX0ZPUk1GSUxMSU5GTzo6RkZJX09uRm9jdXNDaGFuZ2UoKS4KKyAgICB2aXJ0dWFsIHZvaWQgT25Gb2N1c0NoYW5nZShGUERGX0ZPUk1GSUxMSU5GTyogaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX0FOTk9UQVRJT04gYW5ub3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhZ2VfaW5kZXgpIHt9CisKKyAgICAvLyBFcXVpdmFsZW50IHRvIEZQREZfRk9STUZJTExJTkZPOjpGRklfRG9VUklBY3Rpb25XaXRoS2V5Ym9hcmRNb2RpZmllcigpLgorICAgIHZpcnR1YWwgdm9pZCBEb1VSSUFjdGlvbldpdGhLZXlib2FyZE1vZGlmaWVyKEZQREZfRk9STUZJTExJTkZPKiBpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfQllURVNUUklORyB1cmksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1vZGlmaWVycykge30KICAgfTsKIAogICBFbWJlZGRlclRlc3QoKTsKQEAgLTcyLDIxICs5MywzMCBAQAogICB2b2lkIFNldFVwKCkgb3ZlcnJpZGU7CiAgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZTsKIAotI2lmZGVmIFBERl9FTkFCTEVfVjgKLSAgLy8gQ2FsbCBiZWZvcmUgU2V0VXAgdG8gcGFzcyBzaGFyZWQgaXNvbGF0ZSwgb3RoZXJ3aXNlIFBERml1bSBjcmVhdGVzIG9uZS4KLSAgdm9pZCBTZXRFeHRlcm5hbElzb2xhdGUodm9pZCogaXNvbGF0ZSk7Ci0jZW5kaWYgIC8vIFBERl9FTkFCTEVfVjgKLQorICBEZWxlZ2F0ZSogR2V0RGVsZWdhdGUoKSB7IHJldHVybiBkZWxlZ2F0ZV87IH0KICAgdm9pZCBTZXREZWxlZ2F0ZShEZWxlZ2F0ZSogZGVsZWdhdGUpIHsKICAgICBkZWxlZ2F0ZV8gPSBkZWxlZ2F0ZSA/IGRlbGVnYXRlIDogZGVmYXVsdF9kZWxlZ2F0ZV8uZ2V0KCk7CiAgIH0KIAotICBGUERGX0RPQ1VNRU5UIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZG9jdW1lbnRfOyB9Ci0gIEZQREZfRk9STUhBTkRMRSBmb3JtX2hhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIGZvcm1faGFuZGxlXzsgfQorICB2b2lkIFNldEZvcm1GaWxsSW5mb1ZlcnNpb24oaW50IGZvcm1fZmlsbF9pbmZvX3ZlcnNpb24pIHsKKyAgICBmb3JtX2ZpbGxfaW5mb192ZXJzaW9uXyA9IGZvcm1fZmlsbF9pbmZvX3ZlcnNpb247CisgIH0KIAotICAvLyBDcmVhdGUgYW4gZW1wdHkgZG9jdW1lbnQsIGFuZCBpdHMgZm9ybSBmaWxsIGVudmlyb25tZW50LiBSZXR1cm5zIHRydWUKLSAgLy8gb24gc3VjY2VzcyBvciBmYWxzZSBvbiBmYWlsdXJlLgotICBib29sIENyZWF0ZUVtcHR5RG9jdW1lbnQoKTsKKyAgdm9pZCBTZXREb2N1bWVudEZyb21BdmFpbCgpOworICBGUERGX0RPQ1VNRU5UIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZG9jdW1lbnRfLmdldCgpOyB9CisgIEZQREZfRE9DVU1FTlQgc2F2ZWRfZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBzYXZlZF9kb2N1bWVudF8uZ2V0KCk7IH0KKyAgRlBERl9GT1JNSEFORExFIGZvcm1faGFuZGxlKCkgY29uc3QgeyByZXR1cm4gZm9ybV9oYW5kbGVfLmdldCgpOyB9CisgIEZQREZfRk9STUhBTkRMRSBzYXZlZF9mb3JtX2hhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIHNhdmVkX2Zvcm1faGFuZGxlXy5nZXQoKTsgfQorCisgIC8vIFdyYXBwZXIgZm9yIEZQREZBdmFpbF9DcmVhdGUoKSB0byBzZXQgYGF2YWlsX2AuCisgIHZvaWQgQ3JlYXRlQXZhaWwoRlhfRklMRUFWQUlMKiBmaWxlX2F2YWlsLCBGUERGX0ZJTEVBQ0NFU1MqIGZpbGUpOworICBGUERGX0FWQUlMIGF2YWlsKCkgeyByZXR1cm4gYXZhaWxfLmdldCgpOyB9CisKKyAgLy8gQ3JlYXRlIGFuIGVtcHR5IGRvY3VtZW50LCBhbmQgaXRzIGZvcm0gZmlsbCBlbnZpcm9ubWVudC4KKyAgdm9pZCBDcmVhdGVFbXB0eURvY3VtZW50KCk7CisKKyAgLy8gQ3JlYXRlIGFuIGVtcHR5IGRvY3VtZW50IHdpdGhvdXQgYSBmb3JtIGZpbGwgZW52aXJvbm1lbnQuCisgIHZvaWQgQ3JlYXRlRW1wdHlEb2N1bWVudFdpdGhvdXRGb3JtRmlsbEVudmlyb25tZW50KCk7CiAKICAgLy8gT3BlbiB0aGUgZG9jdW1lbnQgc3BlY2lmaWVkIGJ5IHxmaWxlbmFtZXwsIGFuZCBjcmVhdGUgaXRzIGZvcm0gZmlsbAogICAvLyBlbnZpcm9ubWVudCwgb3IgcmV0dXJuIGZhbHNlIG9uIGZhaWx1cmUuIFRoZSB8ZmlsZW5hbWV8IGlzIHJlbGF0aXZlIHRvCkBAIC0xNzEsMTQgKzIwMSwxNCBAQAogICAvLyBTaW1wbGlmaWVkIGZvcm0gb2YgUmVuZGVyUGFnZVdpdGhGbGFncygpIHdpdGggbm8gaGFuZGxlIGFuZCBubyBmbGFncy4KICAgc3RhdGljIFNjb3BlZEZQREZCaXRtYXAgUmVuZGVyUGFnZShGUERGX1BBR0UgcGFnZSk7CiAKLSNpZiBkZWZpbmVkKE9TX1dJTikKKyNpZiBCVUlMREZMQUcoSVNfV0lOKQogICAvLyBDb252ZXJ0IHxwYWdlfCBpbnRvIEVNRiB3aXRoIHRoZSBzcGVjaWZpZWQgcGFnZSByZW5kZXJpbmcgfGZsYWdzfC4KICAgc3RhdGljIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFJlbmRlclBhZ2VXaXRoRmxhZ3NUb0VtZihGUERGX1BBR0UgcGFnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmxhZ3MpOwogCiAgIC8vIEdldCB0aGUgUG9zdFNjcmlwdCBkYXRhIGZyb20gfGVtZl9kYXRhfC4KICAgc3RhdGljIHN0ZDo6c3RyaW5nIEdldFBvc3RTY3JpcHRGcm9tRW1mKHBkZml1bTo6c3Bhbjxjb25zdCB1aW50OF90PiBlbWZfZGF0YSk7Ci0jZW5kaWYgIC8vIGRlZmluZWQoT1NfV0lOKQorI2VuZGlmICAvLyBCVUlMREZMQUcoSVNfV0lOKQogCiAgIC8vIFJldHVybiBieXRlcyBmb3IgZWFjaCBvZiB0aGUgRlBERkJpdG1hcF8qIGZvcm1hdCB0eXBlcy4KICAgc3RhdGljIGludCBCeXRlc1BlclBpeGVsRm9yRm9ybWF0KGludCBmb3JtYXQpOwpAQCAtMTkwLDkgKzIyMCw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgIExpbmVhcml6ZU9wdGlvbiBsaW5lYXJpemVfb3B0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0T3B0aW9uIGphdmFzY3JpcHRfb3B0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICBGYWtlRmlsZUFjY2VzcyogbmV0d29ya19zaW11bGF0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfRE9DVU1FTlQqIGRvY3VtZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX0FWQUlMKiBhdmFpbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9GT1JNSEFORExFKiBmb3JtX2hhbmRsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIFNjb3BlZEZQREZEb2N1bWVudCogZG9jdW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFNjb3BlZEZQREZBdmFpbCogYXZhaWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFNjb3BlZEZQREZGb3JtSGFuZGxlKiBmb3JtX2hhbmRsZSk7CiAKICAgRlBERl9GT1JNSEFORExFIFNldHVwRm9ybUZpbGxFbnZpcm9ubWVudChGUERGX0RPQ1VNRU5UIGRvYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0T3B0aW9uIGphdmFzY3JpcHRfb3B0aW9uKTsKQEAgLTIwMSwxMSArMjMxLDkgQEAKICAgLy8gYW55LCBhdCB0aGUgZW5kIG9mIGEgcm93IHdoZXJlIHRoZSBzdHJpZGUgaXMgbGFyZ2VyIHRoYW4gd2lkdGggKiBicHAuCiAgIHN0YXRpYyBzdGQ6OnN0cmluZyBIYXNoQml0bWFwKEZQREZfQklUTUFQIGJpdG1hcCk7CiAKLSNpZm5kZWYgTkRFQlVHCiAgIC8vIEZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCiAgIC8vIFdyaXRlIHxiaXRtYXB8IGFzIGEgUE5HIHRvIHxmaWxlbmFtZXwuCiAgIHN0YXRpYyB2b2lkIFdyaXRlQml0bWFwVG9QbmcoRlBERl9CSVRNQVAgYml0bWFwLCBjb25zdCBzdGQ6OnN0cmluZyYgZmlsZW5hbWUpOwotI2VuZGlmCiAKICAgLy8gQ2hlY2sgfGJpdG1hcHwgdG8gbWFrZSBzdXJlIGl0IGhhcyB0aGUgcmlnaHQgZGltZW5zaW9ucyBhbmQgY29udGVudC4KICAgc3RhdGljIHZvaWQgQ29tcGFyZUJpdG1hcChGUERGX0JJVE1BUCBiaXRtYXAsCkBAIC0yNDUsNDUgKzI3Myw3IEBACiAgIHZvaWQgQ2xvc2VQREZGaWxlRm9yV3JpdGUoKTsKICNlbmRpZgogCi0gIHN0ZDo6dW5pcXVlX3B0cjxEZWxlZ2F0ZT4gZGVmYXVsdF9kZWxlZ2F0ZV87Ci0gIERlbGVnYXRlKiBkZWxlZ2F0ZV87Ci0KLSAgRlBERl9ET0NVTUVOVCBkb2N1bWVudF8gPSBudWxscHRyOwotICBGUERGX0ZPUk1IQU5ETEUgZm9ybV9oYW5kbGVfID0gbnVsbHB0cjsKLSAgRlBERl9BVkFJTCBhdmFpbF8gPSBudWxscHRyOwotICBGUERGX0ZJTEVBQ0NFU1MgZmlsZV9hY2Nlc3NfOyAgICAgICAgICAgICAgICAgICAgICAgLy8gbXVzdCBvdXRsaXZlIHxhdmFpbF98LgotICBzdGQ6OnVuaXF1ZV9wdHI8RmFrZUZpbGVBY2Nlc3M+IGZha2VfZmlsZV9hY2Nlc3NfOyAgLy8gbXVzdCBvdXRsaXZlIHxhdmFpbF98LgotCi0gIHZvaWQqIGV4dGVybmFsX2lzb2xhdGVfID0gbnVsbHB0cjsKLSAgc3RkOjp1bmlxdWVfcHRyPFRlc3RMb2FkZXI+IGxvYWRlcl87Ci0gIHNpemVfdCBmaWxlX2xlbmd0aF8gPSAwOwotICBzdGQ6OnVuaXF1ZV9wdHI8Y2hhciwgcGRmaXVtOjpGcmVlRGVsZXRlcj4gZmlsZV9jb250ZW50c187Ci0gIFBhZ2VOdW1iZXJUb0hhbmRsZU1hcCBwYWdlX21hcF87Ci0KLSAgRlBERl9ET0NVTUVOVCBzYXZlZF9kb2N1bWVudF8gPSBudWxscHRyOwotICBGUERGX0ZPUk1IQU5ETEUgc2F2ZWRfZm9ybV9oYW5kbGVfID0gbnVsbHB0cjsKLSAgRlBERl9BVkFJTCBzYXZlZF9hdmFpbF8gPSBudWxscHRyOwotICBGUERGX0ZJTEVBQ0NFU1Mgc2F2ZWRfZmlsZV9hY2Nlc3NfOyAgLy8gbXVzdCBvdXRsaXZlIHxzYXZlZF9hdmFpbF98LgotICAvLyBtdXN0IG91dGxpdmUgfHNhdmVkX2F2YWlsX3wuCi0gIHN0ZDo6dW5pcXVlX3B0cjxGYWtlRmlsZUFjY2Vzcz4gc2F2ZWRfZmFrZV9maWxlX2FjY2Vzc187Ci0gIFBhZ2VOdW1iZXJUb0hhbmRsZU1hcCBzYXZlZF9wYWdlX21hcF87Ci0KICBwcml2YXRlOgotICBzdGF0aWMgdm9pZCBVbnN1cHBvcnRlZEhhbmRsZXJUcmFtcG9saW5lKFVOU1VQUE9SVF9JTkZPKiwgaW50IHR5cGUpOwotICBzdGF0aWMgaW50IEFsZXJ0VHJhbXBvbGluZShJUERGX0pTUExBVEZPUk0qIHBsYWZvcm0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfV0lERVNUUklORyBtZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX1dJREVTVFJJTkcgdGl0bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaWNvbik7Ci0gIHN0YXRpYyBpbnQgU2V0VGltZXJUcmFtcG9saW5lKEZQREZfRk9STUZJTExJTkZPKiBpbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbXNlY3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVyQ2FsbGJhY2sgZm4pOwotICBzdGF0aWMgdm9pZCBLaWxsVGltZXJUcmFtcG9saW5lKEZQREZfRk9STUZJTExJTkZPKiBpbmZvLCBpbnQgaWQpOwotICBzdGF0aWMgRlBERl9QQUdFIEdldFBhZ2VUcmFtcG9saW5lKEZQREZfRk9STUZJTExJTkZPKiBpbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQREZfRE9DVU1FTlQgZG9jdW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHBhZ2VfaW5kZXgpOwotICBzdGF0aWMgdm9pZCBEb1VSSUFjdGlvblRyYW1wb2xpbmUoRlBERl9GT1JNRklMTElORk8qIGluZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX0JZVEVTVFJJTkcgdXJpKTsKICAgc3RhdGljIGludCBXcml0ZUJsb2NrQ2FsbGJhY2soRlBERl9GSUxFV1JJVEUqIHBGaWxlV3JpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQqIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CkBAIC0zMDEsNiArMjkxLDM0IEBACiAgIHZvaWQgVW5sb2FkUGFnZUNvbW1vbihGUERGX1BBR0UgcGFnZSwgYm9vbCBkb19ldmVudHMpOwogICBGUERGX1BBR0UgTG9hZFBhZ2VDb21tb24oaW50IHBhZ2VfbnVtYmVyLCBib29sIGRvX2V2ZW50cyk7CiAKKyAgc3RkOjp1bmlxdWVfcHRyPERlbGVnYXRlPiBkZWZhdWx0X2RlbGVnYXRlXzsKKyAgRGVsZWdhdGUqIGRlbGVnYXRlXzsKKworI2lmZGVmIFBERl9FTkFCTEVfWEZBCisgIGludCBmb3JtX2ZpbGxfaW5mb192ZXJzaW9uXyA9IDI7CisjZWxzZSAgIC8vIFBERl9FTkFCTEVfWEZBCisgIGludCBmb3JtX2ZpbGxfaW5mb192ZXJzaW9uXyA9IDE7CisjZW5kaWYgIC8vIFBERl9FTkFCTEVfWEZBCisKKyAgc2l6ZV90IGZpbGVfbGVuZ3RoXyA9IDA7CisgIC8vIG11c3Qgb3V0bGl2ZSBgbG9hZGVyX2AuCisgIHN0ZDo6dW5pcXVlX3B0cjxjaGFyLCBwZGZpdW06OkZyZWVEZWxldGVyPiBmaWxlX2NvbnRlbnRzXzsKKyAgc3RkOjp1bmlxdWVfcHRyPFRlc3RMb2FkZXI+IGxvYWRlcl87CisgIEZQREZfRklMRUFDQ0VTUyBmaWxlX2FjY2Vzc187ICAgICAgICAgICAgICAgICAgICAgICAvLyBtdXN0IG91dGxpdmUgYGF2YWlsX2AuCisgIHN0ZDo6dW5pcXVlX3B0cjxGYWtlRmlsZUFjY2Vzcz4gZmFrZV9maWxlX2FjY2Vzc187ICAvLyBtdXN0IG91dGxpdmUgYGF2YWlsX2AuCisgIFNjb3BlZEZQREZBdmFpbCBhdmFpbF87CisgIFNjb3BlZEZQREZEb2N1bWVudCBkb2N1bWVudF87CisgIFNjb3BlZEZQREZGb3JtSGFuZGxlIGZvcm1faGFuZGxlXzsKKyAgUGFnZU51bWJlclRvSGFuZGxlTWFwIHBhZ2VfbWFwXzsKKworICBGUERGX0ZJTEVBQ0NFU1Mgc2F2ZWRfZmlsZV9hY2Nlc3NfOyAgLy8gbXVzdCBvdXRsaXZlIGBzYXZlZF9hdmFpbF9gLgorICAvLyBtdXN0IG91dGxpdmUgYHNhdmVkX2F2YWlsX2AuCisgIHN0ZDo6dW5pcXVlX3B0cjxGYWtlRmlsZUFjY2Vzcz4gc2F2ZWRfZmFrZV9maWxlX2FjY2Vzc187CisgIFNjb3BlZEZQREZBdmFpbCBzYXZlZF9hdmFpbF87CisgIFNjb3BlZEZQREZEb2N1bWVudCBzYXZlZF9kb2N1bWVudF87CisgIFNjb3BlZEZQREZGb3JtSGFuZGxlIHNhdmVkX2Zvcm1faGFuZGxlXzsKKyAgUGFnZU51bWJlclRvSGFuZGxlTWFwIHNhdmVkX3BhZ2VfbWFwXzsKKwogICBzdGQ6OnN0cmluZyBkYXRhX3N0cmluZ187CiAgIHN0ZDo6c3RyaW5nIHNhdmVkX2RvY3VtZW50X2ZpbGVfZGF0YV87CiAgIHN0ZDo6b2ZzdHJlYW0gZmlsZXN0cmVhbV87CmRpZmYgLS1naXQgYS90ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfY29uc3RhbnRzLmNwcCBiL3Rlc3RpbmcvZW1iZWRkZXJfdGVzdF9jb25zdGFudHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllOGNhZWUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfY29uc3RhbnRzLmNwcApAQCAtMCwwICsxLDY4IEBACisvLyBDb3B5cmlnaHQgMjAyMCBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRlICJ0ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfY29uc3RhbnRzLmgiCisKKyNpbmNsdWRlICJidWlsZC9idWlsZF9jb25maWcuaCIKKyNpbmNsdWRlICJjb3JlL2Z4Z2UvY2Z4X2RlZmF1bHRyZW5kZXJkZXZpY2UuaCIKKworbmFtZXNwYWNlIHBkZml1bSB7CisKK2NvbnN0IGNoYXIqIEFubm90YXRpb25TdGFtcFdpdGhBcENoZWNrc3VtKCkgeworICBpZiAoQ0ZYX0RlZmF1bHRSZW5kZXJEZXZpY2U6OlNraWFJc0RlZmF1bHRSZW5kZXJlcigpKQorICAgIHJldHVybiAiYTMxMzgxNDA2ZDBiOTUwNDllNDE4NzIwNzUwYjc4ZGQiOworI2lmIEJVSUxERkxBRyhJU19BUFBMRSkKKyAgcmV0dXJuICIwNTIxZWFhNTJmZTJhYTQzYWFmZDNlNDQ5NWY2M2YwYiI7CisjZWxzZQorICByZXR1cm4gIjVmMTlkZGFkOWQ0OGY1YjdiODdlZTdkOTJmNTc3ZGI2IjsKKyNlbmRpZgorfQorCitjb25zdCBjaGFyIGtCbGFua1BhZ2U2MTJCeTc5MkNoZWNrc3VtW10gPSAiMTk0MDU2OGM5YmEzM2JhYzVkMGIxZWU5NTU4Yzc2YjMiOworCitjb25zdCBjaGFyKiBCdWc4OTAzMjJDaGVja3N1bSgpIHsKKyAgaWYgKENGWF9EZWZhdWx0UmVuZGVyRGV2aWNlOjpTa2lhSXNEZWZhdWx0UmVuZGVyZXIoKSkKKyAgICByZXR1cm4gIjc5MzY4OTUzNmNmNjRmZTc5MmMyZjI0MTg4OGMwY2YzIjsKKyAgcmV0dXJuICI2YzY3NDY0MjE1NDQwOGU4NzdkODhjNmMwODJkNjdlOSI7Cit9CisKK2NvbnN0IGNoYXIqIEhlbGxvV29ybGRDaGVja3N1bSgpIHsKKyNpZiBCVUlMREZMQUcoSVNfQVBQTEUpCisgIGlmICghQ0ZYX0RlZmF1bHRSZW5kZXJEZXZpY2U6OlNraWFJc0RlZmF1bHRSZW5kZXJlcigpKQorICAgIHJldHVybiAiNmVlZjcyMzdmNzU5MWYwNzYxNmUyMzg0MjIwODY3MzciOworI2VuZGlmCisgIHJldHVybiAiYzFjNTQ4NDQyZTBlMGY5NDljNTU1MGQ4OWJmOGFlM2IiOworfQorCitjb25zdCBjaGFyKiBIZWxsb1dvcmxkUmVtb3ZlZENoZWNrc3VtKCkgeworI2lmIEJVSUxERkxBRyhJU19BUFBMRSkKKyAgaWYgKCFDRlhfRGVmYXVsdFJlbmRlckRldmljZTo6U2tpYUlzRGVmYXVsdFJlbmRlcmVyKCkpCisgICAgcmV0dXJuICI2ZTFjYWU0OGEyZTM1YzUyMWRlZTRjYTUwMmY0OGFmNiI7CisjZW5kaWYKKyAgcmV0dXJuICI0YTliODBmNjc1ZjdmM2JmMmRhMWIwMmYxMjQ0OWU0YiI7Cit9CisKK2NvbnN0IGNoYXIqIE1hbnlSZWN0YW5nbGVzQ2hlY2tzdW0oKSB7CisgIGlmIChDRlhfRGVmYXVsdFJlbmRlckRldmljZTo6U2tpYUlzRGVmYXVsdFJlbmRlcmVyKCkpCisgICAgcmV0dXJuICI0ZTdlMjgwYzE1OTcyMjJhZmNiMGVlM2JiOTBlYzExOSI7CisgIHJldHVybiAiYjAxNzBjNTc1YjY1ZWNiOTNlYmFmYWRhMGZmMGYwMzgiOworfQorCitjb25zdCBjaGFyKiBSZWN0YW5nbGVzQ2hlY2tzdW0oKSB7CisgIGlmIChDRlhfRGVmYXVsdFJlbmRlckRldmljZTo6U2tpYUlzRGVmYXVsdFJlbmRlcmVyKCkpCisgICAgcmV0dXJuICJiNGU0MTFhNmI1ZmZhNTlhNTBlZmVkZTJlZmVjZTU5NyI7CisgIHJldHVybiAiMGE5MGRlMzdmNTIxMjc2MTljM2RmYjY0MmI1ZmEyZmUiOworfQorCitjb25zdCBjaGFyKiBUZXh0Rm9ybUNoZWNrc3VtKCkgeworICBpZiAoQ0ZYX0RlZmF1bHRSZW5kZXJEZXZpY2U6OlNraWFJc0RlZmF1bHRSZW5kZXJlcigpKQorICAgIHJldHVybiAiZTZkMmViNzVmMThkNzczZjBkYWQ5MzhiMWJiMjJlMjMiOworI2lmIEJVSUxERkxBRyhJU19BUFBMRSkKKyAgcmV0dXJuICJmYTJiZjc1Njk0MmE5NTAxMDFmYzE0N2ZjNGVmM2Y4MiI7CisjZWxzZQorICByZXR1cm4gIjZmODZmZTFkYmVkNTk2NWQ5MWFlYzZlMGI4MjllMjlmIjsKKyNlbmRpZgorfQorCit9ICAvLyBuYW1lc3BhY2UgcGRmaXVtCmRpZmYgLS1naXQgYS90ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfY29uc3RhbnRzLmggYi90ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfY29uc3RhbnRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA2ODgwYgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZW1iZWRkZXJfdGVzdF9jb25zdGFudHMuaApAQCAtMCwwICsxLDM2IEBACisvLyBDb3B5cmlnaHQgMjAyMCBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpZm5kZWYgVEVTVElOR19FTUJFRERFUl9URVNUX0NPTlNUQU5UU19IXworI2RlZmluZSBURVNUSU5HX0VNQkVEREVSX1RFU1RfQ09OU1RBTlRTX0hfCisKK25hbWVzcGFjZSBwZGZpdW0geworCisvLyBNRDUgaGFzaCBmb3IgcmVuZGVyaW5nIGFubm90YXRpb25fc3RhbXBfd2l0aF9hcC5wZGYgd2l0aCBhbm5vdGF0aW9ucy4KK2NvbnN0IGNoYXIqIEFubm90YXRpb25TdGFtcFdpdGhBcENoZWNrc3VtKCk7CisKKy8vIE1ENSBoYXNoIGZvciByZW5kZXJpbmcgYSA2MTJ4NzkyIGJsYW5rIHBhZ2UuCitleHRlcm4gY29uc3QgY2hhciBrQmxhbmtQYWdlNjEyQnk3OTJDaGVja3N1bVtdOworCisvLyBNRDUgaGFzaCBmb3IgcmVuZGVyaW5nIGJ1Z184OTAzMjIucGRmLgorY29uc3QgY2hhciogQnVnODkwMzIyQ2hlY2tzdW0oKTsKKworLy8gTUQ1IGhhc2ggZm9yIHJlbmRlcmluZyBoZWxsb193b3JsZC5wZGYgb3IgYnVnXzQ1NTE5OS5wZGYuCitjb25zdCBjaGFyKiBIZWxsb1dvcmxkQ2hlY2tzdW0oKTsKKworLy8gTUQ1IGhhc2ggZm9yIHJlbmRlcmluZyBoZWxsb193b3JsZC5wZGYgYWZ0ZXIgcmVtb3ZpbmcgIkdvb2RieWUsIHdvcmxkISIuCitjb25zdCBjaGFyKiBIZWxsb1dvcmxkUmVtb3ZlZENoZWNrc3VtKCk7CisKKy8vIE1ENSBoYXNoIGZvciByZW5kZXJpbmcgbWFueV9yZWN0YW5nbGVzLnBkZi4KK2NvbnN0IGNoYXIqIE1hbnlSZWN0YW5nbGVzQ2hlY2tzdW0oKTsKKworLy8gTUQ1IGhhc2ggZm9yIHJlbmRlcmluZyByZWN0YW5nbGVzLnBkZi4KK2NvbnN0IGNoYXIqIFJlY3RhbmdsZXNDaGVja3N1bSgpOworCisvLyBNRDUgaGFzaCBmb3IgcmVuZGVyaW5nIHRleHRfZm9ybS5wZGYuCitjb25zdCBjaGFyKiBUZXh0Rm9ybUNoZWNrc3VtKCk7CisKK30gIC8vIG5hbWVzcGFjZSBwZGZpdW0KKworI2VuZGlmICAvLyBURVNUSU5HX0VNQkVEREVSX1RFU1RfQ09OU1RBTlRTX0hfCmRpZmYgLS1naXQgYS90ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfZW52aXJvbm1lbnQuY3BwIGIvdGVzdGluZy9lbWJlZGRlcl90ZXN0X2Vudmlyb25tZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2U0NTlhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9lbWJlZGRlcl90ZXN0X2Vudmlyb25tZW50LmNwcApAQCAtMCwwICsxLDkzIEBACisvLyBDb3B5cmlnaHQgMjAyMCBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRlICJ0ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfZW52aXJvbm1lbnQuaCIKKworI2luY2x1ZGUgPG9zdHJlYW0+CisKKyNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Z4X3N5c3RlbS5oIgorI2luY2x1ZGUgInB1YmxpYy9mcGRmdmlldy5oIgorI2luY2x1ZGUgInRlc3RpbmcvY29tbWFuZF9saW5lX2hlbHBlcnMuaCIKKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL2NoZWNrLmgiCisKKyNpZmRlZiBQREZfRU5BQkxFX1Y4CisjaW5jbHVkZSAidGVzdGluZy92OF90ZXN0X2Vudmlyb25tZW50LmgiCisjZW5kaWYgIC8vIFBERl9FTkFCTEVfVjgKKworbmFtZXNwYWNlIHsKKworRW1iZWRkZXJUZXN0RW52aXJvbm1lbnQqIGdfZW52aXJvbm1lbnQgPSBudWxscHRyOworCit9ICAvLyBuYW1lc3BhY2UKKworRW1iZWRkZXJUZXN0RW52aXJvbm1lbnQ6OkVtYmVkZGVyVGVzdEVudmlyb25tZW50KCkKKyAgICA6IHJlbmRlcmVyX3R5cGVfKEdldERlZmF1bHRSZW5kZXJlclR5cGUoKSkgeworICBEQ0hFQ0soIWdfZW52aXJvbm1lbnQpOworICBnX2Vudmlyb25tZW50ID0gdGhpczsKK30KKworRW1iZWRkZXJUZXN0RW52aXJvbm1lbnQ6On5FbWJlZGRlclRlc3RFbnZpcm9ubWVudCgpIHsKKyAgRENIRUNLKGdfZW52aXJvbm1lbnQpOworICBnX2Vudmlyb25tZW50ID0gbnVsbHB0cjsKK30KKworLy8gc3RhdGljCitFbWJlZGRlclRlc3RFbnZpcm9ubWVudCogRW1iZWRkZXJUZXN0RW52aXJvbm1lbnQ6OkdldEluc3RhbmNlKCkgeworICByZXR1cm4gZ19lbnZpcm9ubWVudDsKK30KKwordm9pZCBFbWJlZGRlclRlc3RFbnZpcm9ubWVudDo6U2V0VXAoKSB7CisgIEZQREZfTElCUkFSWV9DT05GSUcgY29uZmlnOworICBjb25maWcudmVyc2lvbiA9IDQ7CisgIGNvbmZpZy5tX3BVc2VyRm9udFBhdGhzID0gbnVsbHB0cjsKKyAgY29uZmlnLm1fdjhFbWJlZGRlclNsb3QgPSAwOworICBjb25maWcubV9wUGxhdGZvcm0gPSBudWxscHRyOworCisgIGNvbmZpZy5tX3BVc2VyRm9udFBhdGhzID0gdGVzdF9mb250c18uZm9udF9wYXRocygpOworCisjaWZkZWYgUERGX0VOQUJMRV9WOAorICBjb25maWcubV9wSXNvbGF0ZSA9IFY4VGVzdEVudmlyb25tZW50OjpHZXRJbnN0YW5jZSgpLT5pc29sYXRlKCk7CisgIGNvbmZpZy5tX3BQbGF0Zm9ybSA9IFY4VGVzdEVudmlyb25tZW50OjpHZXRJbnN0YW5jZSgpLT5wbGF0Zm9ybSgpOworI2Vsc2UgICAvLyBQREZfRU5BQkxFX1Y4CisgIGNvbmZpZy5tX3BJc29sYXRlID0gbnVsbHB0cjsKKyAgY29uZmlnLm1fcFBsYXRmb3JtID0gbnVsbHB0cjsKKyNlbmRpZiAgLy8gUERGX0VOQUJMRV9WOAorICBjb25maWcubV9SZW5kZXJlclR5cGUgPSByZW5kZXJlcl90eXBlXzsKKworICBGUERGX0luaXRMaWJyYXJ5V2l0aENvbmZpZygmY29uZmlnKTsKKworICB0ZXN0X2ZvbnRzXy5JbnN0YWxsRm9udE1hcHBlcigpOworfQorCit2b2lkIEVtYmVkZGVyVGVzdEVudmlyb25tZW50OjpUZWFyRG93bigpIHsKKyAgRlBERl9EZXN0cm95TGlicmFyeSgpOworfQorCit2b2lkIEVtYmVkZGVyVGVzdEVudmlyb25tZW50OjpBZGRGbGFncyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgZm9yIChpbnQgaSA9IDE7IGkgPCBhcmdjOyArK2kpCisgICAgQWRkRmxhZyhhcmd2W2ldKTsKK30KKwordm9pZCBFbWJlZGRlclRlc3RFbnZpcm9ubWVudDo6QWRkRmxhZyhjb25zdCBzdGQ6OnN0cmluZyYgZmxhZykgeworICBpZiAoZmxhZyA9PSAiLS13cml0ZS1wbmdzIikgeworICAgIHdyaXRlX3BuZ3NfID0gdHJ1ZTsKKyAgICByZXR1cm47CisgIH0KKyNpZiBkZWZpbmVkKF9TS0lBX1NVUFBPUlRfKQorICBzdGQ6OnN0cmluZyB2YWx1ZTsKKyAgaWYgKFBhcnNlU3dpdGNoS2V5VmFsdWUoZmxhZywgIi0tdXNlLXJlbmRlcmVyPSIsICZ2YWx1ZSkpIHsKKyAgICBpZiAodmFsdWUgPT0gImFnZyIpIHsKKyAgICAgIHJlbmRlcmVyX3R5cGVfID0gRlBERl9SRU5ERVJFUlRZUEVfQUdHOworICAgIH0gZWxzZSBpZiAodmFsdWUgPT0gInNraWEiKSB7CisgICAgICByZW5kZXJlcl90eXBlXyA9IEZQREZfUkVOREVSRVJUWVBFX1NLSUE7CisgICAgfSBlbHNlIHsKKyAgICAgIHN0ZDo6Y2VyciA8PCAiSW52YWxpZCAtLXVzZS1yZW5kZXJlciBhcmd1bWVudCwgdmFsdWUgbXVzdCBiZSBvbmUgb2YgYWdnICIKKyAgICAgICAgICAgICAgICAgICAib3Igc2tpYVxuIjsKKyAgICB9CisgICAgcmV0dXJuOworICB9CisjZW5kaWYgIC8vIGRlZmluZWQoX1NLSUFfU1VQUE9SVF8pCisKKyAgc3RkOjpjZXJyIDw8ICJVbmtub3duIGZsYWc6ICIgPDwgZmxhZyA8PCAiXG4iOworfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9lbWJlZGRlcl90ZXN0X2Vudmlyb25tZW50LmggYi90ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfZW52aXJvbm1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDRjNWFlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9lbWJlZGRlcl90ZXN0X2Vudmlyb25tZW50LmgKQEAgLTAsMCArMSwzOSBAQAorLy8gQ29weXJpZ2h0IDIwMjAgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaWZuZGVmIFRFU1RJTkdfRU1CRURERVJfVEVTVF9FTlZJUk9OTUVOVF9IXworI2RlZmluZSBURVNUSU5HX0VNQkVEREVSX1RFU1RfRU5WSVJPTk1FTlRfSF8KKworI2luY2x1ZGUgPHN0cmluZz4KKworI2luY2x1ZGUgInB1YmxpYy9mcGRmdmlldy5oIgorI2luY2x1ZGUgInRlc3RpbmcvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC5oIgorI2luY2x1ZGUgInRlc3RpbmcvdGVzdF9mb250cy5oIgorCitjbGFzcyBFbWJlZGRlclRlc3RFbnZpcm9ubWVudCA6IHB1YmxpYyB0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgcHVibGljOgorICBFbWJlZGRlclRlc3RFbnZpcm9ubWVudCgpOworICB+RW1iZWRkZXJUZXN0RW52aXJvbm1lbnQoKSBvdmVycmlkZTsKKworICAvLyBOb3RlOiBHZXRJbnN0YW5jZSgpIGRvZXMgbm90IGNyZWF0ZSBvbmUgaWYgaXQgZG9lcyBub3QgZXhpc3QsCisgIC8vIHNvIHRoZSBtYWluIHByb2dyYW0gbXVzdCBleHBsaWNpdGx5IGFkZCB0aGlzIGVudmlyb21lbnQuCisgIHN0YXRpYyBFbWJlZGRlclRlc3RFbnZpcm9ubWVudCogR2V0SW5zdGFuY2UoKTsKKworICAvLyB0ZXN0aW5nOjpFbnZpcm9ubWVudDoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlOworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGU7CisKKyAgdm9pZCBBZGRGbGFncyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpOworCisgIGJvb2wgd3JpdGVfcG5ncygpIGNvbnN0IHsgcmV0dXJuIHdyaXRlX3BuZ3NfOyB9CisKKyBwcml2YXRlOgorICB2b2lkIEFkZEZsYWcoY29uc3Qgc3RkOjpzdHJpbmcmIGZsYWcpOworCisgIEZQREZfUkVOREVSRVJfVFlQRSByZW5kZXJlcl90eXBlXzsKKyAgYm9vbCB3cml0ZV9wbmdzXyA9IGZhbHNlOworICBUZXN0Rm9udHMgdGVzdF9mb250c187Cit9OworCisjZW5kaWYgIC8vIFRFU1RJTkdfRU1CRURERVJfVEVTVF9FTlZJUk9OTUVOVF9IXwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9lbWJlZGRlcl90ZXN0X21haW4uY3BwIGIvdGVzdGluZy9lbWJlZGRlcl90ZXN0X21haW4uY3BwCmluZGV4IDM0ZGZiMDYuLjUzMDQ5YjYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZW1iZWRkZXJfdGVzdF9tYWluLmNwcAorKysgYi90ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfbWFpbi5jcHAKQEAgLTEsOTAgKzEsMzYgQEAKLS8vIENvcHlyaWdodCAyMDE4IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCi0jaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHN0cmluZz4KLQorI2luY2x1ZGUgImJ1aWxkL2J1aWxkX2NvbmZpZy5oIgogI2luY2x1ZGUgImNvcmUvZnhjcnQvZnhfbWVtb3J5LmgiCisjaW5jbHVkZSAidGVzdGluZy9lbWJlZGRlcl90ZXN0X2Vudmlyb25tZW50LmgiCiAjaW5jbHVkZSAidGVzdGluZy9nbW9jay9pbmNsdWRlL2dtb2NrL2dtb2NrLmgiCiAjaW5jbHVkZSAidGVzdGluZy9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LmgiCiAKICNpZmRlZiBQREZfRU5BQkxFX1Y4Ci0jaW5jbHVkZSAidGVzdGluZy92OF9pbml0aWFsaXplci5oIgotI2luY2x1ZGUgInY4L2luY2x1ZGUvdjgtcGxhdGZvcm0uaCIKLSNpbmNsdWRlICJ2OC9pbmNsdWRlL3Y4LmgiCi0jZW5kaWYgIC8vIFBERl9FTkFCTEVfdjgKLQotbmFtZXNwYWNlIHsKLQotY29uc3QgY2hhciogZ19leGVfcGF0aCA9IG51bGxwdHI7Ci0KLSNpZmRlZiBQREZfRU5BQkxFX1Y4Ci0jaWZkZWYgVjhfVVNFX0VYVEVSTkFMX1NUQVJUVVBfREFUQQotdjg6OlN0YXJ0dXBEYXRhKiBnX3Y4X3NuYXBzaG90ID0gbnVsbHB0cjsKLSNlbmRpZiAgLy8gVjhfVVNFX0VYVEVSTkFMX1NUQVJUVVBfREFUQQorI2luY2x1ZGUgInRlc3RpbmcvdjhfdGVzdF9lbnZpcm9ubWVudC5oIgogI2VuZGlmICAvLyBQREZfRU5BQkxFX1Y4CiAKLS8vIFRoZSBsb2FkaW5nIHRpbWUgb2YgdGhlIENGR0FTX0ZvbnRNZ3IgaXMgbGluZWFyIGluIHRoZSBudW1iZXIgb2YgdGltZXMgaXQgaXMKLS8vIGxvYWRlZC4gU28sIGlmIGEgdGVzdCBzdWl0ZSBoYXMgYSBsb3Qgb2YgdGVzdHMgdGhhdCBuZWVkIGEgZm9udCBtYW5hZ2VyIHRoZXkKLS8vIGNhbiBlbmQgdXAgZXhlY3V0aW5nIHZlcnksIHZlcnkgc2xvd2x5LgotY2xhc3MgRW52aXJvbm1lbnQgZmluYWwgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewotIHB1YmxpYzoKLSAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKLSNpZmRlZiBQREZfRU5BQkxFX1Y4Ci0jaWZkZWYgVjhfVVNFX0VYVEVSTkFMX1NUQVJUVVBfREFUQQotICAgIGlmIChnX3Y4X3NuYXBzaG90KSB7Ci0gICAgICBwbGF0Zm9ybV8gPSBJbml0aWFsaXplVjhGb3JQREZpdW1XaXRoU3RhcnR1cERhdGEoZ19leGVfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZygpLCBudWxscHRyKTsKLSAgICB9IGVsc2UgewotICAgICAgZ192OF9zbmFwc2hvdCA9IG5ldyB2ODo6U3RhcnR1cERhdGE7Ci0gICAgICBwbGF0Zm9ybV8gPSBJbml0aWFsaXplVjhGb3JQREZpdW1XaXRoU3RhcnR1cERhdGEoCi0gICAgICAgICAgZ19leGVfcGF0aCwgc3RkOjpzdHJpbmcoKSwgZ192OF9zbmFwc2hvdCk7Ci0gICAgfQotI2Vsc2UKLSAgICBwbGF0Zm9ybV8gPSBJbml0aWFsaXplVjhGb3JQREZpdW0oZ19leGVfcGF0aCk7Ci0jZW5kaWYgIC8vIFY4X1VTRV9FWFRFUk5BTF9TVEFSVFVQX0RBVEEKLSNlbmRpZiAgLy8gRlBERl9FTkFCTEVfVjgKLSAgfQotCi0gIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7Ci0jaWZkZWYgUERGX0VOQUJMRV9WOAotICAgIHY4OjpWODo6U2h1dGRvd25QbGF0Zm9ybSgpOwotI2VuZGlmICAvLyBQREZfRU5BQkxFX1Y4Ci0gIH0KLQotIHByaXZhdGU6Ci0jaWZkZWYgUERGX0VOQUJMRV9WOAotICBzdGQ6OnVuaXF1ZV9wdHI8djg6OlBsYXRmb3JtPiBwbGF0Zm9ybV87Ci0jZW5kaWYgIC8vIFBERl9FTkFCTEVfVjgKLX07Ci0KLUVudmlyb25tZW50KiBlbnZfID0gbnVsbHB0cjsKLQotfSAgLy8gbmFtZXNwYWNlCi0KLS8vIENhbid0IHVzZSBndGVzdC1wcm92aWRlZCBtYWluIHNpbmNlIHdlIG5lZWQgdG8gc3Rhc2ggdGhlIHBhdGggdG8gdGhlCi0vLyBleGVjdXRhYmxlIGluIG9yZGVyIHRvIGZpbmQgdGhlIGV4dGVybmFsIFY4IGJpbmFyeSBkYXRhIGZpbGVzLgorLy8gQ2FuJ3QgdXNlIGd0ZXN0LXByb3ZpZGVkIG1haW4gc2luY2Ugd2UgbmVlZCB0byBjcmVhdGUgb3VyIG93bgorLy8gdGVzdGluZyBlbnZpcm9ubWVudCB3aGljaCBuZWVkcyB0aGUgZXhlY3V0YWJsZSBwYXRoIGluIG9yZGVyIHRvCisvLyBmaW5kIHRoZSBleHRlcm5hbCBWOCBiaW5hcnkgZGF0YSBmaWxlcy4KIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgewotICBnX2V4ZV9wYXRoID0gYXJndlswXTsKKyAgRlhfSW5pdGlhbGl6ZU1lbW9yeUFsbG9jYXRvcnMoKTsKIAotICBGWE1FTV9Jbml0aWFsaXplUGFydGl0aW9uQWxsb2MoKTsKLQotICBlbnZfID0gbmV3IEVudmlyb25tZW50KCk7CisjaWZkZWYgUERGX0VOQUJMRV9WOAogICAvLyBUaGUgZW52IHdpbGwgYmUgZGVsZXRlZCBieSBndGVzdC4KLSAgQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KGVudl8pOworICBBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IFY4VGVzdEVudmlyb25tZW50KGFyZ3ZbMF0pKTsKKyNlbmRpZiAgLy8gUERGX0VOQUJMRV9WOAorCisgIC8vIFRoZSBlbnYgd2lsbCBiZSBkZWxldGVkIGJ5IGd0ZXN0LgorICBBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IEVtYmVkZGVyVGVzdEVudmlyb25tZW50KTsKIAogICB0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CiAgIHRlc3Rpbmc6OkluaXRHb29nbGVNb2NrKCZhcmdjLCBhcmd2KTsKIAotICBpbnQgcmV0X3ZhbCA9IFJVTl9BTExfVEVTVFMoKTsKKyAgLy8gQW55dGhpbmcgcmVtYWluaW5nIGluIGFyZ2MvYXJndiBpcyBhbiBlbWJlZGRlcl90ZXN0cyBmbGFnLgorICBFbWJlZGRlclRlc3RFbnZpcm9ubWVudDo6R2V0SW5zdGFuY2UoKS0+QWRkRmxhZ3MoYXJnYywgYXJndik7CiAKLSNpZmRlZiBQREZfRU5BQkxFX1Y4Ci0jaWZkZWYgVjhfVVNFX0VYVEVSTkFMX1NUQVJUVVBfREFUQQotICBpZiAoZ192OF9zbmFwc2hvdCkKLSAgICBmcmVlKGNvbnN0X2Nhc3Q8Y2hhcio+KGdfdjhfc25hcHNob3QtPmRhdGEpKTsKLSNlbmRpZiAgLy8gVjhfVVNFX0VYVEVSTkFMX1NUQVJUVVBfREFUQQotI2VuZGlmICAvLyBQREZfRU5BQkxFX1Y4Ci0KLSAgcmV0dXJuIHJldF92YWw7CisgIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7CiB9CmRpZmYgLS1naXQgYS90ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfbW9ja19kZWxlZ2F0ZS5oIGIvdGVzdGluZy9lbWJlZGRlcl90ZXN0X21vY2tfZGVsZWdhdGUuaAppbmRleCBjM2YyODIwLi43MzA5NTQxIDEwMDY0NAotLS0gYS90ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfbW9ja19kZWxlZ2F0ZS5oCisrKyBiL3Rlc3RpbmcvZW1iZWRkZXJfdGVzdF9tb2NrX2RlbGVnYXRlLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxNSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtOCw3ICs4LDcgQEAKICNpbmNsdWRlICJ0ZXN0aW5nL2VtYmVkZGVyX3Rlc3QuaCIKICNpbmNsdWRlICJ0ZXN0aW5nL2dtb2NrL2luY2x1ZGUvZ21vY2svZ21vY2suaCIKIAotY2xhc3MgRW1iZWRkZXJUZXN0TW9ja0RlbGVnYXRlIGZpbmFsIDogcHVibGljIEVtYmVkZGVyVGVzdDo6RGVsZWdhdGUgeworY2xhc3MgRW1iZWRkZXJUZXN0TW9ja0RlbGVnYXRlIDogcHVibGljIEVtYmVkZGVyVGVzdDo6RGVsZWdhdGUgewogIHB1YmxpYzoKICAgTU9DS19NRVRIT0QxKFVuc3VwcG9ydGVkSGFuZGxlciwgdm9pZChpbnQgdHlwZSkpOwogICBNT0NLX01FVEhPRDQoCkBAIC0xNiw2ICsxNiwyMSBAQAogICAgICAgaW50KEZQREZfV0lERVNUUklORyBtZXNzYWdlLCBGUERGX1dJREVTVFJJTkcgdGl0bGUsIGludCB0eXBlLCBpbnQgaWNvbikpOwogICBNT0NLX01FVEhPRDIoU2V0VGltZXIsIGludChpbnQgbXNlY3MsIFRpbWVyQ2FsbGJhY2sgZm4pKTsKICAgTU9DS19NRVRIT0QxKEtpbGxUaW1lciwgdm9pZChpbnQgbXNlY3MpKTsKKyAgTU9DS19NRVRIT0QxKERvVVJJQWN0aW9uLCB2b2lkKEZQREZfQllURVNUUklORyB1cmkpKTsKKyAgTU9DS19NRVRIT0Q1KERvR29Ub0FjdGlvbiwKKyAgICAgICAgICAgICAgIHZvaWQoRlBERl9GT1JNRklMTElORk8qIGluZm8sCisgICAgICAgICAgICAgICAgICAgIGludCBwYWdlX2luZGV4LAorICAgICAgICAgICAgICAgICAgICBpbnQgem9vbV9tb2RlLAorICAgICAgICAgICAgICAgICAgICBmbG9hdCogcG9zX2FycmF5LAorICAgICAgICAgICAgICAgICAgICBpbnQgYXJyYXlfc2l6ZSkpOworICBNT0NLX01FVEhPRDMoT25Gb2N1c0NoYW5nZSwKKyAgICAgICAgICAgICAgIHZvaWQoRlBERl9GT1JNRklMTElORk8qIGluZm8sCisgICAgICAgICAgICAgICAgICAgIEZQREZfQU5OT1RBVElPTiBhbm5vdCwKKyAgICAgICAgICAgICAgICAgICAgaW50IHBhZ2VfaW5kZXgpKTsKKyAgTU9DS19NRVRIT0QzKERvVVJJQWN0aW9uV2l0aEtleWJvYXJkTW9kaWZpZXIsCisgICAgICAgICAgICAgICB2b2lkKEZQREZfRk9STUZJTExJTkZPKiBpbmZvLAorICAgICAgICAgICAgICAgICAgICBGUERGX0JZVEVTVFJJTkcgdXJpLAorICAgICAgICAgICAgICAgICAgICBpbnQgbW9kaWZpZXJzKSk7CiB9OwogCiAjZW5kaWYgIC8vIFRFU1RJTkdfRU1CRURERVJfVEVTVF9NT0NLX0RFTEVHQVRFX0hfCmRpZmYgLS1naXQgYS90ZXN0aW5nL2VtYmVkZGVyX3Rlc3RfdGltZXJfaGFuZGxpbmdfZGVsZWdhdGUuaCBiL3Rlc3RpbmcvZW1iZWRkZXJfdGVzdF90aW1lcl9oYW5kbGluZ19kZWxlZ2F0ZS5oCmluZGV4IGEzMmFkMjAuLmU1MTEyNTQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZW1iZWRkZXJfdGVzdF90aW1lcl9oYW5kbGluZ19kZWxlZ2F0ZS5oCisrKyBiL3Rlc3RpbmcvZW1iZWRkZXJfdGVzdF90aW1lcl9oYW5kbGluZ19kZWxlZ2F0ZS5oCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNSBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTU3LDcgKzU3LDcgQEAKIAogICB2b2lkIEFkdmFuY2VUaW1lKGludCBpbmNyZW1lbnRfbXNlY3MpIHsKICAgICBmYWtlX2VsYXBzZWRfbXNlY3NfICs9IGluY3JlbWVudF9tc2VjczsKLSAgICB3aGlsZSAoMSkgeworICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICBhdXRvIGl0ZXIgPSBleHBpcnlfdG9fdGltZXJfbWFwXy5iZWdpbigpOwogICAgICAgaWYgKGl0ZXIgPT0gZXhwaXJ5X3RvX3RpbWVyX21hcF8uZW5kKCkpIHsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2V4dGVybmFsX2VuZ2luZV9lbWJlZGRlcl90ZXN0LmNwcCBiL3Rlc3RpbmcvZXh0ZXJuYWxfZW5naW5lX2VtYmVkZGVyX3Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzMTk4MWQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2V4dGVybmFsX2VuZ2luZV9lbWJlZGRlcl90ZXN0LmNwcApAQCAtMCwwICsxLDM3IEBACisvLyBDb3B5cmlnaHQgMjAyMCBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRlICJ0ZXN0aW5nL2V4dGVybmFsX2VuZ2luZV9lbWJlZGRlcl90ZXN0LmgiCisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlICJmeGpzL2NmeGpzX2VuZ2luZS5oIgorI2luY2x1ZGUgInRlc3RpbmcvdjhfdGVzdF9lbnZpcm9ubWVudC5oIgorI2luY2x1ZGUgInY4L2luY2x1ZGUvdjgtY29udGV4dC5oIgorI2luY2x1ZGUgInY4L2luY2x1ZGUvdjgtaXNvbGF0ZS5oIgorI2luY2x1ZGUgInY4L2luY2x1ZGUvdjgtbG9jYWwtaGFuZGxlLmgiCisKK0V4dGVybmFsRW5naW5lRW1iZWRkZXJUZXN0OjpFeHRlcm5hbEVuZ2luZUVtYmVkZGVyVGVzdCgpID0gZGVmYXVsdDsKKworRXh0ZXJuYWxFbmdpbmVFbWJlZGRlclRlc3Q6On5FeHRlcm5hbEVuZ2luZUVtYmVkZGVyVGVzdCgpID0gZGVmYXVsdDsKKwordm9pZCBFeHRlcm5hbEVuZ2luZUVtYmVkZGVyVGVzdDo6U2V0VXAoKSB7CisgIEVtYmVkZGVyVGVzdDo6U2V0VXAoKTsKKworICB2ODo6SXNvbGF0ZTo6U2NvcGUgaXNvbGF0ZV9zY29wZShpc29sYXRlKCkpOworICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlX3Njb3BlKGlzb2xhdGUoKSk7CisgIEZYSlNfUGVySXNvbGF0ZURhdGE6OlNldFVwKGlzb2xhdGUoKSk7CisgIG1fRW5naW5lID0gc3RkOjptYWtlX3VuaXF1ZTxDRlhKU19FbmdpbmU+KGlzb2xhdGUoKSk7CisgIG1fRW5naW5lLT5Jbml0aWFsaXplRW5naW5lKCk7Cit9CisKK3ZvaWQgRXh0ZXJuYWxFbmdpbmVFbWJlZGRlclRlc3Q6OlRlYXJEb3duKCkgeworICBtX0VuZ2luZS0+UmVsZWFzZUVuZ2luZSgpOworICBtX0VuZ2luZS5yZXNldCgpOworICBKU0VtYmVkZGVyVGVzdDo6VGVhckRvd24oKTsKK30KKwordjg6OkxvY2FsPHY4OjpDb250ZXh0PiBFeHRlcm5hbEVuZ2luZUVtYmVkZGVyVGVzdDo6R2V0VjhDb250ZXh0KCkgeworICByZXR1cm4gbV9FbmdpbmUtPkdldFY4Q29udGV4dCgpOworfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9leHRlcm5hbF9lbmdpbmVfZW1iZWRkZXJfdGVzdC5oIGIvdGVzdGluZy9leHRlcm5hbF9lbmdpbmVfZW1iZWRkZXJfdGVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1OGUxMjQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2V4dGVybmFsX2VuZ2luZV9lbWJlZGRlcl90ZXN0LmgKQEAgLTAsMCArMSwzNSBAQAorLy8gQ29weXJpZ2h0IDIwMjAgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaWZuZGVmIFRFU1RJTkdfRVhURVJOQUxfRU5HSU5FX0VNQkVEREVSX1RFU1RfSF8KKyNkZWZpbmUgVEVTVElOR19FWFRFUk5BTF9FTkdJTkVfRU1CRURERVJfVEVTVF9IXworCisjaW5jbHVkZSA8bWVtb3J5PgorCisjaW5jbHVkZSAidGVzdGluZy9qc19lbWJlZGRlcl90ZXN0LmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS92OC1jb250ZXh0LmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS92OC1sb2NhbC1oYW5kbGUuaCIKKworY2xhc3MgQ0ZYSlNfRW5naW5lOworCisvLyBUZXN0IGNsYXNzIHRoYXQgYWxsb3dzIGNyZWF0aW5nIGEgRlhKUyBqYXZhc2NyaXB0IGVuZ2luZSB3aXRob3V0CisvLyBmaXJzdCBoYXZpbmcgdG8gbG9hZCBhIGRvY3VtZW50IGFuZCBpbnN0YW50aWF0ZSBhIGZvcm0gZmlsbGVyCisvLyBhZ2FpbnN0IGl0LiBHZW5lcmFsbHksIG1vc3QgdGVzdHMgd2lsbCB3YW50IHRvIGRvIHRoZSBsYXR0ZXIuCitjbGFzcyBFeHRlcm5hbEVuZ2luZUVtYmVkZGVyVGVzdCA6IHB1YmxpYyBKU0VtYmVkZGVyVGVzdCB7CisgcHVibGljOgorICBFeHRlcm5hbEVuZ2luZUVtYmVkZGVyVGVzdCgpOworICB+RXh0ZXJuYWxFbmdpbmVFbWJlZGRlclRlc3QoKSBvdmVycmlkZTsKKworICAvLyBFbWJlZGRlclRlc3Q6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZTsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlOworCisgIENGWEpTX0VuZ2luZSogZW5naW5lKCkgY29uc3QgeyByZXR1cm4gbV9FbmdpbmUuZ2V0KCk7IH0KKyAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBHZXRWOENvbnRleHQoKTsKKworIHByaXZhdGU6CisgIHN0ZDo6dW5pcXVlX3B0cjxDRlhKU19FbmdpbmU+IG1fRW5naW5lOworfTsKKworI2VuZGlmICAvLyBURVNUSU5HX0VYVEVSTkFMX0VOR0lORV9FTUJFRERFUl9URVNUX0hfCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Zha2VfZmlsZV9hY2Nlc3MuY3BwIGIvdGVzdGluZy9mYWtlX2ZpbGVfYWNjZXNzLmNwcAppbmRleCA3MjNmNzcyLi40YmQ4ZmExIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Zha2VfZmlsZV9hY2Nlc3MuY3BwCisrKyBiL3Rlc3RpbmcvZmFrZV9maWxlX2FjY2Vzcy5jcHAKQEAgLTEsMTYgKzEsMTMgQEAKLS8vIENvcHlyaWdodCAyMDE3IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiAjaW5jbHVkZSAidGVzdGluZy9mYWtlX2ZpbGVfYWNjZXNzLmgiCiAKLSNpbmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8c2V0PgogI2luY2x1ZGUgPHV0aWxpdHk+Ci0jaW5jbHVkZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiY29yZS9meGNydC9meF9zeXN0ZW0uaCIKLSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL3B0cl91dGlsLmgiCisjaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9jaGVjay5oIgogCiBuYW1lc3BhY2UgewogCkBAIC03NiwxMyArNzMsMTMgQEAKIAogRmFrZUZpbGVBY2Nlc3M6OkZha2VGaWxlQWNjZXNzKEZQREZfRklMRUFDQ0VTUyogZmlsZV9hY2Nlc3MpCiAgICAgOiBmaWxlX2FjY2Vzc18oZmlsZV9hY2Nlc3MpLAotICAgICAgZmlsZV9hY2Nlc3Nfd3JhcHBlcl8ocGRmaXVtOjpNYWtlVW5pcXVlPEZpbGVBY2Nlc3NXcmFwcGVyPih0aGlzKSksCi0gICAgICBmaWxlX2F2YWlsXyhwZGZpdW06Ok1ha2VVbmlxdWU8RmlsZUF2YWlsSW1wbD4odGhpcykpLAotICAgICAgZG93bmxvYWRfaGludHNfKHBkZml1bTo6TWFrZVVuaXF1ZTxEb3dubG9hZEhpbnRzSW1wbD4odGhpcykpIHsKLSAgQVNTRVJUKGZpbGVfYWNjZXNzXyk7CisgICAgICBmaWxlX2FjY2Vzc193cmFwcGVyXyhzdGQ6Om1ha2VfdW5pcXVlPEZpbGVBY2Nlc3NXcmFwcGVyPih0aGlzKSksCisgICAgICBmaWxlX2F2YWlsXyhzdGQ6Om1ha2VfdW5pcXVlPEZpbGVBdmFpbEltcGw+KHRoaXMpKSwKKyAgICAgIGRvd25sb2FkX2hpbnRzXyhzdGQ6Om1ha2VfdW5pcXVlPERvd25sb2FkSGludHNJbXBsPih0aGlzKSkgeworICBEQ0hFQ0soZmlsZV9hY2Nlc3NfKTsKIH0KIAotRmFrZUZpbGVBY2Nlc3M6On5GYWtlRmlsZUFjY2VzcygpIHt9CitGYWtlRmlsZUFjY2Vzczo6fkZha2VGaWxlQWNjZXNzKCkgPSBkZWZhdWx0OwogCiBGUERGX0JPT0wgRmFrZUZpbGVBY2Nlc3M6OklzRGF0YUF2YWlsKHNpemVfdCBvZmZzZXQsIHNpemVfdCBzaXplKSBjb25zdCB7CiAgIHJldHVybiBhdmFpbGFibGVfZGF0YV8uQ29udGFpbnMoUmFuZ2VTZXQ6OlJhbmdlKG9mZnNldCwgb2Zmc2V0ICsgc2l6ZSkpOwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mYWtlX2ZpbGVfYWNjZXNzLmggYi90ZXN0aW5nL2Zha2VfZmlsZV9hY2Nlc3MuaAppbmRleCBjOGMwOGUzLi42YTBmM2NmIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Zha2VfZmlsZV9hY2Nlc3MuaAorKysgYi90ZXN0aW5nL2Zha2VfZmlsZV9hY2Nlc3MuaApAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAyMDE3IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2ZvbnRfcmVuYW1lci5jcHAgYi90ZXN0aW5nL2ZvbnRfcmVuYW1lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmEzYTgxYwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZm9udF9yZW5hbWVyLmNwcApAQCAtMCwwICsxLDkxIEBACisvLyBDb3B5cmlnaHQgMjAyMiBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRlICJ0ZXN0aW5nL2ZvbnRfcmVuYW1lci5oIgorCisjaW5jbHVkZSA8c3RyaW5nPgorCisjaW5jbHVkZSAidGVzdGluZy90ZXN0X2ZvbnRzLmgiCisKK25hbWVzcGFjZSB7CisKK0ZQREZfU1lTRk9OVElORk8qIEdldEltcGwoRlBERl9TWVNGT05USU5GTyogaW5mbykgeworICByZXR1cm4gc3RhdGljX2Nhc3Q8Rm9udFJlbmFtZXIqPihpbmZvKS0+aW1wbCgpOworfQorCit2b2lkIFJlbGVhc2VJbXBsKEZQREZfU1lTRk9OVElORk8qIGluZm8pIHsKKyAgRlBERl9TWVNGT05USU5GTyogaW1wbCA9IEdldEltcGwoaW5mbyk7CisgIGltcGwtPlJlbGVhc2UoaW1wbCk7Cit9CisKK3ZvaWQgRW51bUZvbnRzSW1wbChGUERGX1NZU0ZPTlRJTkZPKiBpbmZvLCB2b2lkKiBtYXBwZXIpIHsKKyAgRlBERl9TWVNGT05USU5GTyogaW1wbCA9IEdldEltcGwoaW5mbyk7CisgIGltcGwtPkVudW1Gb250cyhpbXBsLCBtYXBwZXIpOworfQorCit2b2lkKiBNYXBGb250SW1wbChGUERGX1NZU0ZPTlRJTkZPKiBpbmZvLAorICAgICAgICAgICAgICAgICAgaW50IHdlaWdodCwKKyAgICAgICAgICAgICAgICAgIEZQREZfQk9PTCBpdGFsaWMsCisgICAgICAgICAgICAgICAgICBpbnQgY2hhcnNldCwKKyAgICAgICAgICAgICAgICAgIGludCBwaXRjaF9mYW1pbHksCisgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBmYWNlLAorICAgICAgICAgICAgICAgICAgRlBERl9CT09MKiBleGFjdCkgeworICBzdGQ6OnN0cmluZyByZW5hbWVkX2ZhY2UgPSBUZXN0Rm9udHM6OlJlbmFtZUZvbnQoZmFjZSk7CisgIEZQREZfU1lTRk9OVElORk8qIGltcGwgPSBHZXRJbXBsKGluZm8pOworICByZXR1cm4gaW1wbC0+TWFwRm9udChpbXBsLCB3ZWlnaHQsIGl0YWxpYywgY2hhcnNldCwgcGl0Y2hfZmFtaWx5LAorICAgICAgICAgICAgICAgICAgICAgICByZW5hbWVkX2ZhY2UuY19zdHIoKSwgZXhhY3QpOworfQorCit2b2lkKiBHZXRGb250SW1wbChGUERGX1NZU0ZPTlRJTkZPKiBpbmZvLCBjb25zdCBjaGFyKiBmYWNlKSB7CisgIC8vIEFueSBub24tbnVsbCByZXR1cm4gd2lsbCBkby4KKyAgRlBERl9TWVNGT05USU5GTyogaW1wbCA9IEdldEltcGwoaW5mbyk7CisgIHN0ZDo6c3RyaW5nIHJlbmFtZWRfZmFjZSA9IFRlc3RGb250czo6UmVuYW1lRm9udChmYWNlKTsKKyAgcmV0dXJuIGltcGwtPkdldEZvbnQoaW1wbCwgcmVuYW1lZF9mYWNlLmNfc3RyKCkpOworfQorCit1bnNpZ25lZCBsb25nIEdldEZvbnREYXRhSW1wbChGUERGX1NZU0ZPTlRJTkZPKiBpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogZm9udCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB0YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIqIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYnVmX3NpemUpIHsKKyAgRlBERl9TWVNGT05USU5GTyogaW1wbCA9IEdldEltcGwoaW5mbyk7CisgIHJldHVybiBpbXBsLT5HZXRGb250RGF0YShpbXBsLCBmb250LCB0YWJsZSwgYnVmZmVyLCBidWZfc2l6ZSk7Cit9CisKK3Vuc2lnbmVkIGxvbmcgR2V0RmFjZU5hbWVJbXBsKEZQREZfU1lTRk9OVElORk8qIGluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBmb250LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciogYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBidWZfc2l6ZSkgeworICBGUERGX1NZU0ZPTlRJTkZPKiBpbXBsID0gR2V0SW1wbChpbmZvKTsKKyAgcmV0dXJuIGltcGwtPkdldEZhY2VOYW1lKGltcGwsIGZvbnQsIGJ1ZmZlciwgYnVmX3NpemUpOworfQorCitpbnQgR2V0Rm9udENoYXJzZXRJbXBsKEZQREZfU1lTRk9OVElORk8qIGluZm8sIHZvaWQqIGZvbnQpIHsKKyAgRlBERl9TWVNGT05USU5GTyogaW1wbCA9IEdldEltcGwoaW5mbyk7CisgIHJldHVybiBpbXBsLT5HZXRGb250Q2hhcnNldChpbXBsLCBmb250KTsKK30KKwordm9pZCBEZWxldGVGb250SW1wbChGUERGX1NZU0ZPTlRJTkZPKiBpbmZvLCB2b2lkKiBmb250KSB7CisgIEZQREZfU1lTRk9OVElORk8qIGltcGwgPSBHZXRJbXBsKGluZm8pOworICBpbXBsLT5EZWxldGVGb250KGltcGwsIGZvbnQpOworfQorCit9ICAvLyBuYW1lc3BhY2UKKworRm9udFJlbmFtZXI6OkZvbnRSZW5hbWVyKCkgOiBpbXBsXyhGUERGX0dldERlZmF1bHRTeXN0ZW1Gb250SW5mbygpKSB7CisgIHZlcnNpb24gPSAxOworICBSZWxlYXNlID0gUmVsZWFzZUltcGw7CisgIEVudW1Gb250cyA9IEVudW1Gb250c0ltcGw7CisgIE1hcEZvbnQgPSBNYXBGb250SW1wbDsKKyAgR2V0Rm9udCA9IEdldEZvbnRJbXBsOworICBHZXRGb250RGF0YSA9IEdldEZvbnREYXRhSW1wbDsKKyAgR2V0RmFjZU5hbWUgPSBHZXRGYWNlTmFtZUltcGw7CisgIEdldEZvbnRDaGFyc2V0ID0gR2V0Rm9udENoYXJzZXRJbXBsOworICBEZWxldGVGb250ID0gRGVsZXRlRm9udEltcGw7CisgIEZQREZfU2V0U3lzdGVtRm9udEluZm8odGhpcyk7Cit9CisKK0ZvbnRSZW5hbWVyOjp+Rm9udFJlbmFtZXIoKSB7CisgIEZQREZfRnJlZURlZmF1bHRTeXN0ZW1Gb250SW5mbyhpbXBsXy5FeHRyYWN0QXNEYW5nbGluZygpKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZm9udF9yZW5hbWVyLmggYi90ZXN0aW5nL2ZvbnRfcmVuYW1lci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjMzJjMzUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2ZvbnRfcmVuYW1lci5oCkBAIC0wLDAgKzEsMjIgQEAKKy8vIENvcHlyaWdodCAyMDIyIFRoZSBQREZpdW0gQXV0aG9ycworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2lmbmRlZiBURVNUSU5HX0ZPTlRfUkVOQU1FUl9IXworI2RlZmluZSBURVNUSU5HX0ZPTlRfUkVOQU1FUl9IXworCisjaW5jbHVkZSAiY29yZS9meGNydC91bm93bmVkX3B0ci5oIgorI2luY2x1ZGUgInB1YmxpYy9mcGRmX3N5c2ZvbnRpbmZvLmgiCisKK2NsYXNzIEZvbnRSZW5hbWVyIGZpbmFsIDogcHVibGljIEZQREZfU1lTRk9OVElORk8geworIHB1YmxpYzoKKyAgRm9udFJlbmFtZXIoKTsKKyAgfkZvbnRSZW5hbWVyKCk7CisKKyAgRlBERl9TWVNGT05USU5GTyogaW1wbCgpIHsgcmV0dXJuIGltcGxfOyB9CisKKyBwcml2YXRlOgorICBVbm93bmVkUHRyPEZQREZfU1lTRk9OVElORk8+IGltcGxfOworfTsKKworI2VuZGlmICAvLyBURVNUSU5HX0ZPTlRfUkVOQU1FUl9IXwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mcmVlX2RlbGV0ZXIuaCBiL3Rlc3RpbmcvZnJlZV9kZWxldGVyLmgKaW5kZXggNThmNDBkYS4uZDE4MzA1MCAxMDA2NDQKLS0tIGEvdGVzdGluZy9mcmVlX2RlbGV0ZXIuaAorKysgYi90ZXN0aW5nL2ZyZWVfZGVsZXRlci5oCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTkgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnV6emVycy9CVUlMRC5nbiBiL3Rlc3RpbmcvZnV6emVycy9CVUlMRC5nbgppbmRleCAwM2UwNjEwLi4zNTYyNGNiIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvQlVJTEQuZ24KKysrIGIvdGVzdGluZy9mdXp6ZXJzL0JVSUxELmduCkBAIC0xLDE2ICsxLDE2IEBACi0jIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IDIwMTYgVGhlIFBERml1bSBBdXRob3JzCiAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAoraW1wb3J0KCIvL2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkiKQogaW1wb3J0KCIuLi8uLi9wZGZpdW0uZ25pIikKIAogY29uZmlnKCJmdXp6ZXJfY29uZmlnIikgewotICBjb25maWdzID0gWyAiLi4vLi46cGRmaXVtX2NvcmVfY29uZmlnIiBdCi0KLSAgZGVmaW5lcyA9IFsKLSAgICAiUE5HX1BSRUZJWCIsCi0gICAgIlBOR19VU0VfUkVBRF9NQUNST1MiLAorICBjb25maWdzID0gWworICAgICIuLi8uLjpwZGZpdW1fc3RyaWN0X2NvbmZpZyIsCisgICAgIi4uLy4uOnBkZml1bV9ub3Nob3J0ZW5fY29uZmlnIiwKICAgXQorICBkZWZpbmVzID0gW10KICAgaW5jbHVkZV9kaXJzID0gWyAiLi4vLi4iIF0KIH0KIApAQCAtNDMsOSArNDMsOSBAQAogICAgICAgInBkZl9jZnhfYmFyY29kZV9mdXp6ZXIiLAogICAgICAgInBkZl9jb2RlY19qcGVnX2Z1enplciIsCiAgICAgICAicGRmX2Nzc19mdXp6ZXIiLAotICAgICAgInBkZl9mbTJqc19mdXp6ZXIiLAogICAgICAgInBkZl9mb3JtY2FsY19jb250ZXh0X2Z1enplciIsCiAgICAgICAicGRmX2Zvcm1jYWxjX2Z1enplciIsCisgICAgICAicGRmX2Zvcm1jYWxjX3RyYW5zbGF0ZV9mdXp6ZXIiLAogICAgICAgInBkZml1bV94ZmFfZnV6emVyIiwKICAgICAgICJwZGZpdW1feGZhX2xwbV9mdXp6ZXIiLAogICAgIF0KQEAgLTY4LDQ1ICs2OCw5NiBAQAogfQogaWYgKGlzX2NsYW5nKSB7CiAgICMgRnV6emVycyB0aGF0IHVzZSBGdXp6ZWREYXRhUHJvdmlkZXIgY2FuIG9ubHkgYmUgYnVpbHQgd2l0aCBDbGFuZy4KLSAgZnV6emVyX2xpc3QgKz0gWyAicGRmX25hbWV0cmVlX2Z1enplciIgXQorICBmdXp6ZXJfbGlzdCArPSBbCisgICAgInBkZl9jcGRmX3RvdW5pY29kZW1hcF9mdXp6ZXIiLAorICAgICJwZGZfbmFtZXRyZWVfZnV6emVyIiwKKyAgXQorICBpZiAocGRmX2VuYWJsZV94ZmEpIHsKKyAgICBmdXp6ZXJfbGlzdCArPSBbCisgICAgICAicGRmX3hmYV9mZHBfZnV6emVyIiwKKyAgICAgICJwZGZfeGZhX3Jhd19mdXp6ZXIiLAorICAgICAgInBkZl94ZmFfeGRwX2ZkcF9mdXp6ZXIiLAorICAgIF0KKyAgfQogfQogCisjIE5vdGUgdGhhdCB0aGlzIG9ubHkgY29tcGlsZXMgYWxsIHRoZSBmdXp6ZXJzLCB0byBwcmV2ZW50IGNvbXBpbGUgYnJlYWthZ2VzLgorIyBJdCBkb2VzIG5vdCBsaW5rIGFuZCBjcmVhdGUgZnV6emVyIGV4ZWN1dGFibGVzLiBUaGF0IGlzIGRvbmUgaW4gQ2hyb21pdW0uCiBncm91cCgiZnV6emVycyIpIHsKICAgdGVzdG9ubHkgPSB0cnVlCiAgIGRlcHMgPSBbXQogICBmb3JlYWNoKGZ1enplciwgZnV6emVyX2xpc3QpIHsKICAgICBkZXBzICs9IFsgIjoke2Z1enplcn1fc3JjIiBdCiAgIH0KKworICBpZiAoaXNfY29tcG9uZW50X2J1aWxkKSB7CisgICAgZGVwcyArPSBbICI6ZnV6emVyX2ltcGxzIiBdCisgIH0KK30KKworc291cmNlX3NldCgiZnV6emVyX3BkZl90ZW1wbGF0ZXMiKSB7CisgIHNvdXJjZXMgPSBbICJwZGZfZnV6emVyX3RlbXBsYXRlcy5oIiBdCiB9CiAKIHNvdXJjZV9zZXQoImZ1enplcl9pbml0IikgewogICB0ZXN0b25seSA9IHRydWUKICAgc291cmNlcyA9IFsgInBkZl9mdXp6ZXJfaW5pdC5jYyIgXQogICBpbmNsdWRlX2RpcnMgPSBbICIuLi8uLiIgXQotICBkZXBzID0gWyAiLi4vLi4vOnBkZml1bV9wdWJsaWNfaGVhZGVycyIgXQorICBkZXBzID0gWworICAgICIuLi8uLi86cGRmaXVtX3B1YmxpY19oZWFkZXJzIiwKKyAgICAiLi4vLi4vZnBkZnNkayIsCisgIF0KK30KKworaWYgKHBkZl9lbmFibGVfeGZhKSB7CisgIGFzc2VydChwZGZfZW5hYmxlX3Y4KQorICBzb3VyY2Vfc2V0KCJmdXp6ZXJfeGZhX3Byb2Nlc3Nfc3RhdGUiKSB7CisgICAgdGVzdG9ubHkgPSAhaXNfY29tcG9uZW50X2J1aWxkCisgICAgc291cmNlcyA9IFsKKyAgICAgICJ4ZmFfcHJvY2Vzc19zdGF0ZS5jYyIsCisgICAgICAieGZhX3Byb2Nlc3Nfc3RhdGUuaCIsCisgICAgXQorICAgIGNvbmZpZ3MgKz0gWyAiOmZ1enplcl9jb25maWciIF0KKyAgICBkZXBzID0gWworICAgICAgIi4uLy4uL2Z4anM6Z2MiLAorICAgICAgIi8vdjgiLAorICAgIF0KKyAgfQogfQogCiBzb3VyY2Vfc2V0KCJmdXp6ZXJfaW5pdF9wdWJsaWMiKSB7CiAgIHRlc3Rvbmx5ID0gdHJ1ZQogICBzb3VyY2VzID0gWyAicGRmX2Z1enplcl9pbml0X3B1YmxpYy5jYyIgXQogICBpbmNsdWRlX2RpcnMgPSBbICIuLi8uLiIgXQotICBkZXBzID0gWyAiLi4vLi4vOnBkZml1bV9wdWJsaWNfaGVhZGVycyIgXQorICBkZXBzID0gWworICAgICI6ZnV6emVyX3V0aWxzIiwKKyAgICAiLi4vLi4vOnBkZml1bV9wdWJsaWNfaGVhZGVycyIsCisgICAgIi4uLy4uL2ZwZGZzZGsiLAorICBdCiAgIGlmIChwZGZfZW5hYmxlX3Y4KSB7CiAgICAgY29uZmlncyArPSBbICIvL3Y4OmV4dGVybmFsX3N0YXJ0dXBfZGF0YSIgXQogICAgIGRlcHMgKz0gWwogICAgICAgIi4uLzp0ZXN0X3N1cHBvcnQiLAorICAgICAgIi4uLy4uL2Z4anMiLAogICAgICAgIi8vdjgiLAogICAgICAgIi8vdjg6djhfbGlicGxhdGZvcm0iLAogICAgIF0KKyAgICBpZiAocGRmX2VuYWJsZV94ZmEpIHsKKyAgICAgIGRlcHMgKz0gWyAiOmZ1enplcl94ZmFfcHJvY2Vzc19zdGF0ZSIgXQorICAgIH0KICAgfQogfQogCiBpZiAoaXNfY29tcG9uZW50X2J1aWxkKSB7CiAgIGdyb3VwKCJmdXp6ZXJfaW1wbHMiKSB7CisgICAgdGVzdG9ubHkgPSB0cnVlCiAgICAgZGVwcyA9IFtdCiAgICAgZm9yZWFjaChmdXp6ZXIsIGZ1enplcl9saXN0KSB7CiAgICAgICBkZXBzICs9IFsgIjoke2Z1enplcn1faW1wbCIgXQogICAgIH0KKyAgICBpZiAocGRmX2VuYWJsZV94ZmEpIHsKKyAgICAgIGRlcHMgKz0gWyAiOmZ1enplcl94ZmFfcHJvY2Vzc19zdGF0ZSIgXQorICAgIH0KICAgfQogfQogCkBAIC0xMTksNiArMTcwLDcgQEAKICAgY29uZmlncyArPSBbICI6ZnV6emVyX2NvbmZpZyIgXQogICBkZXBzID0gWwogICAgICIuLi8uLi86cGRmaXVtX3B1YmxpY19oZWFkZXJzIiwKKyAgICAiLi4vLi4vZnBkZnNkayIsCiAgICAgIi4uLy4uL3RoaXJkX3BhcnR5OnBkZml1bV9iYXNlIiwKICAgXQogfQpAQCAtMTM3LDE4ICsxODksMjAgQEAKIH0KIAogdGVtcGxhdGUoInBkZml1bV9mdXp6ZXIiKSB7Ci0gIGlmIChkZWZpbmVkKGludm9rZXIucHVibGljX2Z1enplcikgJiYgaW52b2tlci5wdWJsaWNfZnV6emVyKSB7CisgIGlzX3B1YmxpYyA9IGRlZmluZWQoaW52b2tlci5wdWJsaWNfZnV6emVyKSAmJiBpbnZva2VyLnB1YmxpY19mdXp6ZXIKKyAgaWYgKGlzX3B1YmxpYykgewogICAgIGluaXRfZGVwID0gIjpmdXp6ZXJfaW5pdF9wdWJsaWMiCiAgIH0gZWxzZSB7CiAgICAgaW5pdF9kZXAgPSAiOmZ1enplcl9pbml0IgogICB9CiAgIGlmIChpc19jb21wb25lbnRfYnVpbGQpIHsKICAgICAjIEluIGNvbXBvbmVudCBidWlsZHMsIGZ1enplcnMgYXJlIHNwbGl0IGludG8gIl9pbXBsIiBhbmQgIl9zcmMiIHRhcmdldHMuCi0gICAgIyBUaGUgIl9pbXBsIiB0YXJnZXQgZXhwb3J0cyB0aGUgZnV6emVyIGltcGxlbWVudGF0aW9uIGFuZCBnZXRzIHN0YXRpY2FsbHkKLSAgICAjIGxpbmtlZCBpbnRvIHRoZSBQREZpdW0gc2hhcmVkIGxpYnJhcnkuICBUaGUgIl9zcmMiIHRhcmdldCBpcyBhIHRoaW4KLSAgICAjIHdyYXBwZXIgdGhhdCBpbXBvcnRzIHRoZSBmdXp6ZXIgZnJvbSBQREZpdW07IHRoaXMgZ2V0cyBsaW5rZWQgaW50byB0aGUKLSAgICAjIHJlYWwgZnV6emVyIGV4ZWN1dGFibGUuICBJbiBzdGF0aWMgYnVpbGRzLCB0aGVyZSdzIG9ubHkgYSBzaW5nbGUgIl9zcmMiCi0gICAgIyB0YXJnZXQgdGhhdCBjb250YWlucyB0aGUgaW1wbGVtZW50YXRpb24gYW5kIHN0YXRpY2FsbHkgbGlua3MgaW4gUERGaXVtLgorICAgICMgVGhlICJfaW1wbCIgdGFyZ2V0IGV4cG9ydHMgdGhlIGZ1enplciBpbXBsZW1lbnRhdGlvbi4gVGhlICJfc3JjIiB0YXJnZXQKKyAgICAjIGlzIGEgdGhpbiB3cmFwcGVyIHRoYXQgaW1wb3J0cyB0aGUgZnV6emVyIGZyb20gUERGaXVtOyB0aGlzIGdldHMgbGlua2VkCisgICAgIyBpbnRvIHRoZSByZWFsIGZ1enplciBleGVjdXRhYmxlLiBUaGUgcmVhbCBmdXp6ZXIgdGFyZ2V0IGhhcyB0byBkZXBlbmQgb24KKyAgICAjIGJvdGggdGhlICJfaW1wbCIgYW5kICJfc3JjIiB0YXJnZXRzLgorICAgICMgSW4gc3RhdGljIGJ1aWxkcywgdGhlcmUncyBvbmx5IGEgc2luZ2xlICJfc3JjIiB0YXJnZXQgdGhhdCBjb250YWlucyB0aGUKKyAgICAjIGltcGxlbWVudGF0aW9uIGFuZCBzdGF0aWNhbGx5IGxpbmtzIGluIFBERml1bS4KIAogICAgIGltcGxfbmFtZSA9IHRhcmdldF9uYW1lICsgIl9pbXBsIgogICAgIHRlbXBsYXRlX3RhcmdldF9uYW1lID0gdGFyZ2V0X25hbWUKQEAgLTE1Niw3ICsyMTAsNyBAQAogICAgICAgdGVzdG9ubHkgPSB0cnVlCiAgICAgICBzb3VyY2VzID0gWyAiY29tcG9uZW50X2Z1enplcl90ZW1wbGF0ZS5jYyIgXQogICAgICAgZGVwcyA9IFsKLSAgICAgICAgIi4uLy4uLzpwZGZpdW0iLAorICAgICAgICAiLi4vLi4vOnBkZml1bV9wdWJsaWNfaGVhZGVycyIsCiAgICAgICAgIGluaXRfZGVwLAogICAgICAgXQogICAgICAgY29uZmlncyArPSBbICI6ZnV6emVyX2NvbmZpZyIgXQpAQCAtMTY2LDE2ICsyMjAsMTQgQEAKICAgICBpbXBsX25hbWUgPSB0YXJnZXRfbmFtZSArICJfc3JjIgogICB9CiAgIHNvdXJjZV9zZXQoaW1wbF9uYW1lKSB7CisgICAgdGVzdG9ubHkgPSB0cnVlCiAgICAgc291cmNlcyA9IGludm9rZXIuc291cmNlcworICAgIGRlZmluZXMgPSBbXQogICAgIGRlcHMgPSBbXQogICAgIGlmIChkZWZpbmVkKGludm9rZXIuZGVwcykpIHsKICAgICAgIGRlcHMgKz0gaW52b2tlci5kZXBzCiAgICAgfQotICAgIGNvbmZpZ3MgLT0gWyAiLy9idWlsZC9jb25maWcvY29tcGlsZXI6Y2hyb21pdW1fY29kZSIgXQotICAgIGNvbmZpZ3MgKz0gWwotICAgICAgIi8vYnVpbGQvY29uZmlnL2NvbXBpbGVyOm5vX2Nocm9taXVtX2NvZGUiLAotICAgICAgIjpmdXp6ZXJfY29uZmlnIiwKLSAgICBdCisgICAgY29uZmlncyArPSBbICI6ZnV6emVyX2NvbmZpZyIgXQogICAgIGlmIChpc19jb21wb25lbnRfYnVpbGQpIHsKICAgICAgICMgfGV4cG9ydHwgc2hvdWxkIGJlIGNvbnNpc3RlbnQgd2l0aCBGUERGX0VYUE9SVCBJbiBwdWJsaWMvZnBkZnZpZXcuaC4KICAgICAgIGlmIChpc193aW4pIHsKQEAgLTE4Myw3ICsyMzUsNyBAQAogICAgICAgfSBlbHNlIHsKICAgICAgICAgZXhwb3J0ID0gIl9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoXCJkZWZhdWx0XCIpKSkiCiAgICAgICB9Ci0gICAgICBkZWZpbmVzID0gWyAiTExWTUZ1enplclRlc3RPbmVJbnB1dD0ke2V4cG9ydH0gJHt0ZW1wbGF0ZV90YXJnZXRfbmFtZX0iIF0KKyAgICAgIGRlZmluZXMgKz0gWyAiTExWTUZ1enplclRlc3RPbmVJbnB1dD0ke2V4cG9ydH0gJHt0ZW1wbGF0ZV90YXJnZXRfbmFtZX0iIF0KICAgICAgIGRlcHMgKz0gWyAiLi4vLi4vOnBkZml1bV9wdWJsaWNfaGVhZGVycyIgXQogICAgIH0gZWxzZSB7CiAgICAgICB0ZXN0b25seSA9IHRydWUKQEAgLTE5Miw2ICsyNDQsMTIgQEAKICAgICAgICAgaW5pdF9kZXAsCiAgICAgICBdCiAgICAgfQorICAgIGlmIChpc19wdWJsaWMgJiYgcGRmX2VuYWJsZV94ZmEpIHsKKyAgICAgIGRlcHMgKz0gWyAiOmZ1enplcl94ZmFfcHJvY2Vzc19zdGF0ZSIgXQorICAgIH0KKyAgICBpZiAoYnVpbGRfd2l0aF9jaHJvbWl1bSkgeworICAgICAgZGVmaW5lcyArPSBbICJCVUlMRF9XSVRIX0NIUk9NSVVNIiBdCisgICAgfQogICB9CiB9CiAKQEAgLTIwMCw2ICsyNTgsNyBAQAogICAgIHNvdXJjZXMgPSBbICJwZGZfY2pzX3V0aWxfZnV6emVyLmNjIiBdCiAgICAgZGVwcyA9IFsKICAgICAgICIuLi8uLi9jb3JlL2Z4Y3J0IiwKKyAgICAgICIuLi8uLi9mcGRmc2RrIiwKICAgICAgICIuLi8uLi9meGpzIiwKICAgICBdCiAgIH0KQEAgLTIwNyw2ICsyNjYsNyBAQAogICAgIHNvdXJjZXMgPSBbICJwZGZfZnhfZGF0ZV9oZWxwZXJzX2Z1enplci5jYyIgXQogICAgIGRlcHMgPSBbCiAgICAgICAiLi4vLi4vY29yZS9meGNydCIsCisgICAgICAiLi4vLi4vZnBkZnNkayIsCiAgICAgICAiLi4vLi4vZnhqcyIsCiAgICAgXQogICB9CkBAIC0yMTgsNyArMjc4LDcgQEAKICAgICAgICAgIi4uLy4uLzpmcmVldHlwZV9jb21tb24iLAogICAgICAgICAiLi4vLi4vY29yZS9meGNydCIsCiAgICAgICAgICIuLi8uLi9jb3JlL2Z4Z2UiLAotICAgICAgICAiLi4vLi4veGZhL2ZnYXMiLAorICAgICAgICAiLi4vLi4veGZhL2ZnYXMvZm9udCIsCiAgICAgICAgICIuLi8uLi94ZmEvZmdhcy9sYXlvdXQiLAogICAgICAgICAiLy90aGlyZF9wYXJ0eS9pY3U6aWN1dWMiLAogICAgICAgXQpAQCAtMjI3LDEwICsyODcsMTUgQEAKICAgICBwZGZpdW1fZnV6emVyKCJwZGZfY2ZnYXNfc3RyaW5nZm9ybWF0dGVyX2Z1enplciIpIHsKICAgICAgIHNvdXJjZXMgPSBbICJwZGZfY2ZnYXNfc3RyaW5nZm9ybWF0dGVyX2Z1enplci5jYyIgXQogICAgICAgZGVwcyA9IFsKKyAgICAgICAgIjpmdXp6ZXJfdXRpbHMiLAogICAgICAgICAiLi4vLi4vY29yZS9meGNydCIsCi0gICAgICAgICIuLi8uLi94ZmEvZmdhcyIsCisgICAgICAgICIuLi8uLi9mcGRmc2RrIiwKKyAgICAgICAgIi4uLy4uL2Z4anM6Z2MiLAorICAgICAgICAiLi4vLi4veGZhL2ZnYXMvY3J0IiwKKyAgICAgICAgIi4uLy4uL3hmYS9meGZhIiwKICAgICAgICAgIi4uLy4uL3hmYS9meGZhL3BhcnNlciIsCiAgICAgICBdCisgICAgICBwdWJsaWNfZnV6emVyID0gdHJ1ZQogICAgIH0KIAogICAgIHBkZml1bV9mdXp6ZXIoInBkZl9jZnhfYmFyY29kZV9mdXp6ZXIiKSB7CkBAIC0zMzEsMTIgKzM5NiwxNSBAQAogICAgICAgXQogICAgIH0KIAotICAgIHBkZml1bV9mdXp6ZXIoInBkZl9mbTJqc19mdXp6ZXIiKSB7Ci0gICAgICBzb3VyY2VzID0gWyAicGRmX2ZtMmpzX2Z1enplci5jYyIgXQorICAgIHBkZml1bV9mdXp6ZXIoInBkZl9mb3JtY2FsY190cmFuc2xhdGVfZnV6emVyIikgeworICAgICAgc291cmNlcyA9IFsgInBkZl9mb3JtY2FsY190cmFuc2xhdGVfZnV6emVyLmNjIiBdCiAgICAgICBkZXBzID0gWworICAgICAgICAiOmZ1enplcl91dGlscyIsCiAgICAgICAgICIuLi8uLi9jb3JlL2Z4Y3J0IiwKKyAgICAgICAgIi4uLy4uL2ZwZGZzZGsiLAogICAgICAgICAiLi4vLi4vZnhqcyIsCiAgICAgICBdCisgICAgICBwdWJsaWNfZnV6emVyID0gdHJ1ZQogICAgIH0KIAogICAgIHBkZml1bV9mdXp6ZXIoInBkZl9mb3JtY2FsY19jb250ZXh0X2Z1enplciIpIHsKQEAgLTM1Niw5ICs0MjQsMTIgQEAKICAgICBwZGZpdW1fZnV6emVyKCJwZGZfZm9ybWNhbGNfZnV6emVyIikgewogICAgICAgc291cmNlcyA9IFsgInBkZl9mb3JtY2FsY19mdXp6ZXIuY2MiIF0KICAgICAgIGRlcHMgPSBbCisgICAgICAgICI6ZnV6emVyX3V0aWxzIiwKICAgICAgICAgIi4uLy4uL2NvcmUvZnhjcnQiLAotICAgICAgICAiLi4vLi4veGZhL2Z4ZmEvZm0yanMiLAorICAgICAgICAiLi4vLi4vZnhqczpnYyIsCisgICAgICAgICIuLi8uLi94ZmEvZnhmYS9mb3JtY2FsYyIsCiAgICAgICBdCisgICAgICBwdWJsaWNfZnV6emVyID0gdHJ1ZQogICAgIH0KIAogICAgIHBkZml1bV9mdXp6ZXIoInBkZml1bV94ZmFfZnV6emVyIikgewpAQCAtMzg1LDYgKzQ1NiwxNSBAQAogfQogCiBpZiAoaXNfY2xhbmcpIHsKKyAgcGRmaXVtX2Z1enplcigicGRmX2NwZGZfdG91bmljb2RlbWFwX2Z1enplciIpIHsKKyAgICBzb3VyY2VzID0gWyAicGRmX2NwZGZfdG91bmljb2RlbWFwX2Z1enplci5jYyIgXQorICAgIGRlcHMgPSBbCisgICAgICAiLi4vLi4vY29yZS9mcGRmYXBpL2ZvbnQiLAorICAgICAgIi4uLy4uL2NvcmUvZnBkZmFwaS9wYXJzZXIiLAorICAgICAgIi4uLy4uL2NvcmUvZnhjcnQiLAorICAgIF0KKyAgfQorCiAgIHBkZml1bV9mdXp6ZXIoInBkZl9uYW1ldHJlZV9mdXp6ZXIiKSB7CiAgICAgc291cmNlcyA9IFsgInBkZl9uYW1ldHJlZV9mdXp6ZXIuY2MiIF0KICAgICBkZXBzID0gWwpAQCAtMzk0LDYgKzQ3NCwzNCBAQAogICAgICAgIi4uLy4uL3RoaXJkX3BhcnR5OnBkZml1bV9iYXNlIiwKICAgICBdCiAgIH0KKyAgaWYgKHBkZl9lbmFibGVfeGZhKSB7CisgICAgcGRmaXVtX2Z1enplcigicGRmX3hmYV9mZHBfZnV6emVyIikgeworICAgICAgc291cmNlcyA9IFsgInBkZl94ZmFfZmRwX2Z1enplci5jYyIgXQorICAgICAgZGVwcyA9IFsKKyAgICAgICAgIjpmdXp6ZXJfaGVscGVyIiwKKyAgICAgICAgIjpmdXp6ZXJfcGRmX3RlbXBsYXRlcyIsCisgICAgICAgICIuLi8uLi90aGlyZF9wYXJ0eTpwZGZpdW1fYmFzZSIsCisgICAgICBdCisgICAgICBwdWJsaWNfZnV6emVyID0gdHJ1ZQorICAgIH0KKyAgICBwZGZpdW1fZnV6emVyKCJwZGZfeGZhX3Jhd19mdXp6ZXIiKSB7CisgICAgICBzb3VyY2VzID0gWyAicGRmX3hmYV9yYXdfZnV6emVyLmNjIiBdCisgICAgICBkZXBzID0gWworICAgICAgICAiOmZ1enplcl9oZWxwZXIiLAorICAgICAgICAiOmZ1enplcl9wZGZfdGVtcGxhdGVzIiwKKyAgICAgICAgIi4uLy4uL3RoaXJkX3BhcnR5OnBkZml1bV9iYXNlIiwKKyAgICAgIF0KKyAgICAgIHB1YmxpY19mdXp6ZXIgPSB0cnVlCisgICAgfQorICAgIHBkZml1bV9mdXp6ZXIoInBkZl94ZmFfeGRwX2ZkcF9mdXp6ZXIiKSB7CisgICAgICBzb3VyY2VzID0gWyAicGRmX3hmYV94ZHBfZmRwX2Z1enplci5jYyIgXQorICAgICAgZGVwcyA9IFsKKyAgICAgICAgIjpmdXp6ZXJfaGVscGVyIiwKKyAgICAgICAgIjpmdXp6ZXJfcGRmX3RlbXBsYXRlcyIsCisgICAgICBdCisgICAgICBwdWJsaWNfZnV6emVyID0gdHJ1ZQorICAgIH0KKyAgfQogfQogCiBwZGZpdW1fZnV6emVyKCJwZGZfY21hcF9mdXp6ZXIiKSB7CkBAIC00MDEsNiArNTA5LDcgQEAKICAgZGVwcyA9IFsKICAgICAiLi4vLi4vOmZyZWV0eXBlX2NvbW1vbiIsCiAgICAgIi4uLy4uL2NvcmUvZnBkZmFwaS9mb250IiwKKyAgICAiLi4vLi4vY29yZS9meGNydCIsCiAgICAgIi4uLy4uL3RoaXJkX3BhcnR5OnBkZml1bV9iYXNlIiwKICAgXQogfQpAQCAtNDg1LDYgKzU5NCw3IEBACiAgIHNvdXJjZXMgPSBbICJwZGZfc2NhbmxpbmVjb21wb3NpdG9yX2Z1enplci5jYyIgXQogICBkZXBzID0gWwogICAgICI6ZnV6emVyX3V0aWxzIiwKKyAgICAiLi4vLi4vY29yZS9meGNydCIsCiAgICAgIi4uLy4uL2NvcmUvZnhnZSIsCiAgICAgIi4uLy4uL3RoaXJkX3BhcnR5OnBkZml1bV9iYXNlIiwKICAgXQpAQCAtNTEwLDUgKzYyMCwxMSBAQAogcGRmaXVtX2Z1enplcigicGRmaXVtX2Z1enplciIpIHsKICAgc291cmNlcyA9IFsgInBkZml1bV9mdXp6ZXIuY2MiIF0KICAgZGVwcyA9IFsgIjpmdXp6ZXJfaGVscGVyIiBdCisgIGlmIChidWlsZF93aXRoX2Nocm9taXVtKSB7CisgICAgZGVwcyArPSBbCisgICAgICAiLy9iYXNlIiwKKyAgICAgICIvL2Jhc2UvdGVzdDp0ZXN0X3N1cHBvcnQiLAorICAgIF0KKyAgfQogICBwdWJsaWNfZnV6emVyID0gdHJ1ZQogfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL0RFUFMgYi90ZXN0aW5nL2Z1enplcnMvREVQUwppbmRleCBmZTllYWY2Li5kNTc3MDQ0IDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvREVQUworKysgYi90ZXN0aW5nL2Z1enplcnMvREVQUwpAQCAtMSw0ICsxLDcgQEAKIGluY2x1ZGVfcnVsZXMgPSBbCiAgICcrZnhiYXJjb2RlJywKICAgJyt4ZmEnLAorCisgICMgT25seSB1c2VkIHdoZW4gdGhlIGZ1enplciBpcyBlbWJlZGRlZCBpbiBDaHJvbWl1bS4KKyAgJytiYXNlJywKIF0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnV6emVycy9jb21wb25lbnRfZnV6emVyX3RlbXBsYXRlLmNjIGIvdGVzdGluZy9mdXp6ZXJzL2NvbXBvbmVudF9mdXp6ZXJfdGVtcGxhdGUuY2MKaW5kZXggODk4ODNmNS4uNmY2NWJjMSAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdXp6ZXJzL2NvbXBvbmVudF9mdXp6ZXJfdGVtcGxhdGUuY2MKKysrIGIvdGVzdGluZy9mdXp6ZXJzL2NvbXBvbmVudF9mdXp6ZXJfdGVtcGxhdGUuY2MKQEAgLTEsOSArMSw5IEBACi0vLyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKLSNpbmNsdWRlIDxjc3RkZGVmPgotI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CiAKICNpbmNsdWRlICJwdWJsaWMvZnBkZnZpZXcuaCIKIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9iaWRpX2Z1enplci5jYyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfYmlkaV9mdXp6ZXIuY2MKaW5kZXggNjE0ZGY1Mi4uYzBjYTc3NiAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9iaWRpX2Z1enplci5jYworKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2JpZGlfZnV6emVyLmNjCkBAIC0xLDI4ICsxLDMwIEBACi0vLyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKICNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPG1lbW9yeT4KIAorI2luY2x1ZGUgImNvcmUvZnhjcnQvZnhfY29kZXBhZ2UuaCIKICNpbmNsdWRlICJjb3JlL2Z4Y3J0L3dpZGVzdHJpbmcuaCIKICNpbmNsdWRlICJjb3JlL2Z4Z2UvY2Z4X2ZvbnQuaCIKICNpbmNsdWRlICJjb3JlL2Z4Z2UvZnhfZm9udC5oIgotI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2UvcHRyX3V0aWwuaCIKLSNpbmNsdWRlICJ4ZmEvZmdhcy9mb250L2NmZ2FzX2ZvbnRtZ3IuaCIKICNpbmNsdWRlICJ4ZmEvZmdhcy9mb250L2NmZ2FzX2dlZm9udC5oIgotI2luY2x1ZGUgInhmYS9mZ2FzL2xheW91dC9jZnhfY2hhci5oIgotI2luY2x1ZGUgInhmYS9mZ2FzL2xheW91dC9jZnhfcnRmYnJlYWsuaCIKKyNpbmNsdWRlICJ4ZmEvZmdhcy9sYXlvdXQvY2ZnYXNfY2hhci5oIgorI2luY2x1ZGUgInhmYS9mZ2FzL2xheW91dC9jZmdhc19ydGZicmVhay5oIgogCiBleHRlcm4gIkMiIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7Ci0gIGF1dG8gZm9udG1nciA9IHBkZml1bTo6TWFrZVVuaXF1ZTxDRkdBU19Gb250TWdyPigpOworICBpZiAoc2l6ZSA+IDgxOTIpCisgICAgcmV0dXJuIDA7CiAKLSAgYXV0byBmb250ID0gcGRmaXVtOjpNYWtlVW5pcXVlPENGWF9Gb250PigpOwotICBmb250LT5Mb2FkU3Vic3QoIkFyaWFsIiwgdHJ1ZSwgMCwgRlhGT05UX0ZXX05PUk1BTCwgMCwgMCwgMCk7CisgIGF1dG8gZm9udCA9IHN0ZDo6bWFrZV91bmlxdWU8Q0ZYX0ZvbnQ+KCk7CisgIGZvbnQtPkxvYWRTdWJzdCgiQXJpYWwiLCB0cnVlLCAwLCBGWEZPTlRfRldfTk9STUFMLCAwLCBGWF9Db2RlUGFnZTo6a0RlZkFOU0ksCisgICAgICAgICAgICAgICAgICAwKTsKICAgYXNzZXJ0KGZvbnQpOwogCi0gIENGWF9SVEZCcmVhayBydGZfYnJlYWsoRlhfTEFZT1VUU1RZTEVfRXhwYW5kVGFiKTsKKyAgQ0ZHQVNfUlRGQnJlYWsgcnRmX2JyZWFrKENGR0FTX0JyZWFrOjpMYXlvdXRTdHlsZTo6a0V4cGFuZFRhYik7CiAgIHJ0Zl9icmVhay5TZXRMaW5lQnJlYWtUb2xlcmFuY2UoMSk7Ci0gIHJ0Zl9icmVhay5TZXRGb250KENGR0FTX0dFRm9udDo6TG9hZEZvbnQoc3RkOjptb3ZlKGZvbnQpLCBmb250bWdyLmdldCgpKSk7CisgIHJ0Zl9icmVhay5TZXRGb250KENGR0FTX0dFRm9udDo6TG9hZEZvbnQoc3RkOjptb3ZlKGZvbnQpKSk7CiAgIHJ0Zl9icmVhay5TZXRGb250U2l6ZSgxMik7CiAKICAgV2lkZVN0cmluZyBpbnB1dCA9CkBAIC0zMSw4ICszMyw4IEBACiAgIGZvciAod2NoYXJfdCBjaCA6IGlucHV0KQogICAgIHJ0Zl9icmVhay5BcHBlbmRDaGFyKGNoKTsKIAotICBzdGQ6OnZlY3RvcjxDRlhfQ2hhcj4gY2hhcnMgPQorICBzdGQ6OnZlY3RvcjxDRkdBU19DaGFyPiBjaGFycyA9CiAgICAgICBydGZfYnJlYWsuR2V0Q3VycmVudExpbmVGb3JUZXN0aW5nKCktPm1fTGluZUNoYXJzOwotICBDRlhfQ2hhcjo6QmlkaUxpbmUoJmNoYXJzLCBjaGFycy5zaXplKCkpOworICBDRkdBU19DaGFyOjpCaWRpTGluZSgmY2hhcnMsIGNoYXJzLnNpemUoKSk7CiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9jZmdhc19zdHJpbmdmb3JtYXR0ZXJfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jZmdhc19zdHJpbmdmb3JtYXR0ZXJfZnV6emVyLmNjCmluZGV4IGI2YTY2NjMuLjEyZjYyMDYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfY2ZnYXNfc3RyaW5nZm9ybWF0dGVyX2Z1enplci5jYworKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2NmZ2FzX3N0cmluZ2Zvcm1hdHRlcl9mdXp6ZXIuY2MKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE5IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtNiwxNyArNiwyNSBAQAogCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAKLSNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Z4X21lbW9yeS5oIgorI2luY2x1ZGUgPGl0ZXJhdG9yPgorCisjaW5jbHVkZSAiY29yZS9meGNydC9jZnhfZGF0ZXRpbWUuaCIKICNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Z4X3N0cmluZy5oIgotI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2UvcHRyX3V0aWwuaCIKKyNpbmNsdWRlICJwdWJsaWMvZnBkZnZpZXcuaCIKKyNpbmNsdWRlICJ0ZXN0aW5nL2Z1enplcnMvcGRmaXVtX2Z1enplcl91dGlsLmgiCisjaW5jbHVkZSAidGVzdGluZy9mdXp6ZXJzL3hmYV9wcm9jZXNzX3N0YXRlLmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS9jcHBnYy9oZWFwLmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS9jcHBnYy9wZXJzaXN0ZW50LmgiCiAjaW5jbHVkZSAieGZhL2Z4ZmEvcGFyc2VyL2N4ZmFfbG9jYWxlbWdyLmgiCiAKIG5hbWVzcGFjZSB7CiAKIGNvbnN0IHdjaGFyX3QqIGNvbnN0IGtMb2NhbGVzW10gPSB7TCJlbiIsIEwiZnIiLCBMImpwIiwgTCJ6aCJ9OwotY29uc3QgRlhfREFURVRJTUVUWVBFIGtUeXBlc1tdID0ge0ZYX0RBVEVUSU1FVFlQRV9EYXRlLCBGWF9EQVRFVElNRVRZUEVfVGltZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGWF9EQVRFVElNRVRZUEVfRGF0ZVRpbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlhfREFURVRJTUVUWVBFX1RpbWVEYXRlfTsKK2NvbnN0IENGR0FTX1N0cmluZ0Zvcm1hdHRlcjo6RGF0ZVRpbWVUeXBlIGtUeXBlc1tdID0geworICAgIENGR0FTX1N0cmluZ0Zvcm1hdHRlcjo6RGF0ZVRpbWVUeXBlOjprRGF0ZSwKKyAgICBDRkdBU19TdHJpbmdGb3JtYXR0ZXI6OkRhdGVUaW1lVHlwZTo6a1RpbWUsCisgICAgQ0ZHQVNfU3RyaW5nRm9ybWF0dGVyOjpEYXRlVGltZVR5cGU6OmtEYXRlVGltZSwKKyAgICBDRkdBU19TdHJpbmdGb3JtYXR0ZXI6OkRhdGVUaW1lVHlwZTo6a1RpbWVEYXRlfTsKIAogfSAgLy8gbmFtZXNwYWNlCiAKQEAgLTI0LDE2ICszMiwxMiBAQAogICBpZiAoc2l6ZSA8IDUgfHwgc2l6ZSA+IDEyOCkgIC8vIEJpZyBzdHJpbmdzIGFyZSB1bmxpa2VseSB0byBoZWxwLgogICAgIHJldHVybiAwOwogCi0gIC8vIFN0YXRpYyBmb3Igc3BlZWQuCi0gIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1hGQV9Mb2NhbGVNZ3I+PiBtZ3JzOwotICBpZiAobWdycy5lbXB0eSgpKSB7Ci0gICAgZm9yIChjb25zdCBhdXRvKiBsb2NhbGUgOiBrTG9jYWxlcykKLSAgICAgIG1ncnMucHVzaF9iYWNrKHBkZml1bTo6TWFrZVVuaXF1ZTxDWEZBX0xvY2FsZU1ncj4obnVsbHB0ciwgbG9jYWxlKSk7Ci0gIH0KKyAgYXV0byogc3RhdGUgPSBzdGF0aWNfY2FzdDxYRkFQcm9jZXNzU3RhdGUqPihGUERGX0dldEZ1enplclBlclByb2Nlc3NTdGF0ZSgpKTsKKyAgY3BwZ2M6OkhlYXAqIGhlYXAgPSBzdGF0ZS0+R2V0SGVhcCgpOwogCiAgIHVpbnQ4X3QgdGVzdF9zZWxlY3RvciA9IGRhdGFbMF0gJSAxMDsKLSAgdWludDhfdCBsb2NhbGVfc2VsZWN0b3IgPSBkYXRhWzFdICUgRlhfQXJyYXlTaXplKGtMb2NhbGVzKTsKLSAgdWludDhfdCB0eXBlX3NlbGVjdG9yID0gZGF0YVsyXSAlIEZYX0FycmF5U2l6ZShrVHlwZXMpOworICB1aW50OF90IGxvY2FsZV9zZWxlY3RvciA9IGRhdGFbMV0gJSBzdGQ6OnNpemUoa0xvY2FsZXMpOworICB1aW50OF90IHR5cGVfc2VsZWN0b3IgPSBkYXRhWzJdICUgc3RkOjpzaXplKGtUeXBlcyk7CiAgIGRhdGEgKz0gMzsKICAgc2l6ZSAtPSAzOwogCkBAIC00NCw4ICs0OCw3IEBACiAgIFdpZGVTdHJpbmcgdmFsdWUgPQogICAgICAgV2lkZVN0cmluZzo6RnJvbUxhdGluMShCeXRlU3RyaW5nVmlldyhkYXRhICsgcGF0dGVybl9sZW4sIHZhbHVlX2xlbikpOwogCi0gIGF1dG8gZm10ID0gcGRmaXVtOjpNYWtlVW5pcXVlPENGR0FTX1N0cmluZ0Zvcm1hdHRlcj4oCi0gICAgICBtZ3JzW2xvY2FsZV9zZWxlY3Rvcl0uZ2V0KCksIHBhdHRlcm4pOworICBhdXRvIGZtdCA9IHN0ZDo6bWFrZV91bmlxdWU8Q0ZHQVNfU3RyaW5nRm9ybWF0dGVyPihwYXR0ZXJuKTsKIAogICBXaWRlU3RyaW5nIHJlc3VsdDsKICAgQ0ZYX0RhdGVUaW1lIGR0OwpAQCAtNTMsMzMgKzU2LDU1IEBACiAgICAgY2FzZSAwOgogICAgICAgZm10LT5Gb3JtYXRUZXh0KHZhbHVlLCAmcmVzdWx0KTsKICAgICAgIGJyZWFrOwotICAgIGNhc2UgMToKLSAgICAgIGZtdC0+Rm9ybWF0TnVtKHZhbHVlLCAmcmVzdWx0KTsKKyAgICBjYXNlIDE6IHsKKyAgICAgIGF1dG8qIG1nciA9IGNwcGdjOjpNYWtlR2FyYmFnZUNvbGxlY3RlZDxDWEZBX0xvY2FsZU1ncj4oCisgICAgICAgICAgaGVhcC0+R2V0QWxsb2NhdGlvbkhhbmRsZSgpLCBoZWFwLCBudWxscHRyLAorICAgICAgICAgIGtMb2NhbGVzW2xvY2FsZV9zZWxlY3Rvcl0pOworICAgICAgZm10LT5Gb3JtYXROdW0obWdyLCB2YWx1ZSwgJnJlc3VsdCk7CiAgICAgICBicmVhazsKLSAgICBjYXNlIDI6Ci0gICAgICBmbXQtPkZvcm1hdERhdGVUaW1lKHZhbHVlLCBrVHlwZXNbdHlwZV9zZWxlY3Rvcl0sICZyZXN1bHQpOworICAgIH0KKyAgICBjYXNlIDI6IHsKKyAgICAgIGF1dG8qIG1nciA9IGNwcGdjOjpNYWtlR2FyYmFnZUNvbGxlY3RlZDxDWEZBX0xvY2FsZU1ncj4oCisgICAgICAgICAgaGVhcC0+R2V0QWxsb2NhdGlvbkhhbmRsZSgpLCBoZWFwLCBudWxscHRyLAorICAgICAgICAgIGtMb2NhbGVzW2xvY2FsZV9zZWxlY3Rvcl0pOworICAgICAgZm10LT5Gb3JtYXREYXRlVGltZShtZ3IsIHZhbHVlLCBrVHlwZXNbdHlwZV9zZWxlY3Rvcl0sICZyZXN1bHQpOwogICAgICAgYnJlYWs7Ci0gICAgY2FzZSAzOgorICAgIH0KKyAgICBjYXNlIDM6IHsKICAgICAgIGZtdC0+Rm9ybWF0TnVsbCgmcmVzdWx0KTsKICAgICAgIGJyZWFrOwotICAgIGNhc2UgNDoKKyAgICB9CisgICAgY2FzZSA0OiB7CiAgICAgICBmbXQtPkZvcm1hdFplcm8oJnJlc3VsdCk7CiAgICAgICBicmVhazsKLSAgICBjYXNlIDU6CisgICAgfQorICAgIGNhc2UgNTogewogICAgICAgZm10LT5QYXJzZVRleHQodmFsdWUsICZyZXN1bHQpOwogICAgICAgYnJlYWs7Ci0gICAgY2FzZSA2OgotICAgICAgZm10LT5QYXJzZU51bSh2YWx1ZSwgJnJlc3VsdCk7CisgICAgfQorICAgIGNhc2UgNjogeworICAgICAgYXV0byogbWdyID0gY3BwZ2M6Ok1ha2VHYXJiYWdlQ29sbGVjdGVkPENYRkFfTG9jYWxlTWdyPigKKyAgICAgICAgICBoZWFwLT5HZXRBbGxvY2F0aW9uSGFuZGxlKCksIGhlYXAsIG51bGxwdHIsCisgICAgICAgICAga0xvY2FsZXNbbG9jYWxlX3NlbGVjdG9yXSk7CisgICAgICBmbXQtPlBhcnNlTnVtKG1nciwgdmFsdWUsICZyZXN1bHQpOwogICAgICAgYnJlYWs7Ci0gICAgY2FzZSA3OgotICAgICAgZm10LT5QYXJzZURhdGVUaW1lKHZhbHVlLCBrVHlwZXNbdHlwZV9zZWxlY3Rvcl0sICZkdCk7CisgICAgfQorICAgIGNhc2UgNzogeworICAgICAgYXV0byogbWdyID0gY3BwZ2M6Ok1ha2VHYXJiYWdlQ29sbGVjdGVkPENYRkFfTG9jYWxlTWdyPigKKyAgICAgICAgICBoZWFwLT5HZXRBbGxvY2F0aW9uSGFuZGxlKCksIGhlYXAsIG51bGxwdHIsCisgICAgICAgICAga0xvY2FsZXNbbG9jYWxlX3NlbGVjdG9yXSk7CisgICAgICBmbXQtPlBhcnNlRGF0ZVRpbWUobWdyLCB2YWx1ZSwga1R5cGVzW3R5cGVfc2VsZWN0b3JdLCAmZHQpOwogICAgICAgYnJlYWs7Ci0gICAgY2FzZSA4OgorICAgIH0KKyAgICBjYXNlIDg6IHsKICAgICAgIGZtdC0+UGFyc2VOdWxsKHZhbHVlKTsKICAgICAgIGJyZWFrOwotICAgIGNhc2UgOToKKyAgICB9CisgICAgY2FzZSA5OiB7CiAgICAgICBmbXQtPlBhcnNlWmVybyh2YWx1ZSk7CiAgICAgICBicmVhazsKKyAgICB9CiAgIH0KKyAgc3RhdGUtPkZvcmNlR0NBbmRQdW1wKCk7CiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9jZnhfYmFyY29kZV9mdXp6ZXIuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2NmeF9iYXJjb2RlX2Z1enplci5jYwppbmRleCA3YjMxYjJiLi4zNWFmZWM5IDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvcGRmX2NmeF9iYXJjb2RlX2Z1enplci5jYworKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2NmeF9iYXJjb2RlX2Z1enplci5jYwpAQCAtMSw5ICsxLDcgQEAKLS8vIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAotI2luY2x1ZGUgPG1lbW9yeT4KLQogI2luY2x1ZGUgImNvcmUvZnhjcnQvZnhfc3RyaW5nLmgiCiAjaW5jbHVkZSAiZnhiYXJjb2RlL2NmeF9iYXJjb2RlLmgiCiAKQEAgLTExLDcgKzksOCBAQAogICBpZiAoc2l6ZSA8IDIgKiBzaXplb2YodWludDE2X3QpKQogICAgIHJldHVybiAwOwogCi0gIEJDX1RZUEUgdHlwZSA9IHN0YXRpY19jYXN0PEJDX1RZUEU+KGRhdGFbMF0gJSAoQkNfTEFTVCArIDEpKTsKKyAgQkNfVFlQRSB0eXBlID0KKyAgICAgIHN0YXRpY19jYXN0PEJDX1RZUEU+KGRhdGFbMF0gJSAoc3RhdGljX2Nhc3Q8aW50PihCQ19UWVBFOjprTGFzdCkgKyAxKSk7CiAKICAgLy8gT25seSB1c2VkIG9uZSBieXRlLCBidXQgYWxpZ24gd2l0aCB1aW50MTZfdCBmb3Igc3RyaW5nIGJlbG93LgogICBkYXRhICs9IHNpemVvZih1aW50MTZfdCk7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX2Nqc191dGlsX2Z1enplci5jYyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfY2pzX3V0aWxfZnV6emVyLmNjCmluZGV4IDVjY2I2NWIuLjM4ODVjN2IgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfY2pzX3V0aWxfZnV6emVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfY2pzX3V0aWxfZnV6emVyLmNjCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX2NtYXBfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jbWFwX2Z1enplci5jYwppbmRleCAxODBhNmE3Li5kNGY5YzcwIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvcGRmX2NtYXBfZnV6emVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfY21hcF9mdXp6ZXIuY2MKQEAgLTEsMTAgKzEsMTEgQEAKLS8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAotI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8c3RkaW50Lmg+CiAKICNpbmNsdWRlICJjb3JlL2ZwZGZhcGkvZm9udC9jcGRmX2NtYXAuaCIKKyNpbmNsdWRlICJjb3JlL2Z4Y3J0L3JldGFpbl9wdHIuaCIKICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL3NwYW4uaCIKIAogZXh0ZXJuICJDIiBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgewpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19hODVfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19hODVfZnV6emVyLmNjCmluZGV4IGY5YWUxZmUuLjJiMTYxNGQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfY29kZWNfYTg1X2Z1enplci5jYworKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX2E4NV9mdXp6ZXIuY2MKQEAgLTEsMTYgKzEsMTIgQEAKLS8vIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogI2luY2x1ZGUgPGNzdGRpbnQ+Ci0jaW5jbHVkZSA8bWVtb3J5PgogCiAjaW5jbHVkZSAiY29yZS9meGNvZGVjL2Jhc2ljL2Jhc2ljbW9kdWxlLmgiCi0jaW5jbHVkZSAiY29yZS9meGNydC9meF9tZW1vcnlfd3JhcHBlcnMuaCIKIAogZXh0ZXJuICJDIiBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgewotICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdCwgRnhGcmVlRGVsZXRlcj4gZGVzdF9idWY7Ci0gIHVpbnQzMl90IGRlc3Rfc2l6ZSA9IDA7Ci0gIEJhc2ljTW9kdWxlOjpBODVFbmNvZGUoe2RhdGEsIHNpemV9LCAmZGVzdF9idWYsICZkZXN0X3NpemUpOworICBCYXNpY01vZHVsZTo6QTg1RW5jb2RlKHtkYXRhLCBzaXplfSk7CiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19ibXBfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19ibXBfZnV6emVyLmNjCmluZGV4IDcxZjkxNTAuLjFiYzAyM2EgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfY29kZWNfYm1wX2Z1enplci5jYworKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX2JtcF9mdXp6ZXIuY2MKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxNiBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNiBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnV6emVycy9wZGZfY29kZWNfZmF4X2Z1enplci5jYyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfY29kZWNfZmF4X2Z1enplci5jYwppbmRleCBkMGMyOTg0Li43OTNkMThlIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX2ZheF9mdXp6ZXIuY2MKKysrIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19mYXhfZnV6emVyLmNjCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTYgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTYgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCkBAIC0zOCw3ICszOCw3IEBACiAKICAgaWYgKGRlY29kZXIpIHsKICAgICBpbnQgbGluZSA9IDA7Ci0gICAgd2hpbGUgKGRlY29kZXItPkdldFNjYW5saW5lKGxpbmUpKQorICAgIHdoaWxlICghZGVjb2Rlci0+R2V0U2NhbmxpbmUobGluZSkuZW1wdHkoKSkKICAgICAgIGxpbmUrKzsKICAgfQogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX2dpZl9mdXp6ZXIuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX2dpZl9mdXp6ZXIuY2MKaW5kZXggNjkxMjllNy4uNGFkYmFkNyAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19naWZfZnV6emVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfY29kZWNfZ2lmX2Z1enplci5jYwpAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19pY2NfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19pY2NfZnV6emVyLmNjCmluZGV4IGNhMDI3MzMxLi40ZGI3OWQyIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX2ljY19mdXp6ZXIuY2MKKysrIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19pY2NfZnV6emVyLmNjCkBAIC0xLDIzICsxLDIxIEBACi0vLyBDb3B5cmlnaHQgMjAxNiBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNiBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKICNpbmNsdWRlIDxjc3RkaW50PgogCi0jaW5jbHVkZSAiY29yZS9meGNvZGVjL2ljYy9pY2Ntb2R1bGUuaCIKKyNpbmNsdWRlICJjb3JlL2Z4Y29kZWMvaWNjL2ljY190cmFuc2Zvcm0uaCIKICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL3NwYW4uaCIKIAogZXh0ZXJuICJDIiBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgewotICBzdGQ6OnVuaXF1ZV9wdHI8Q0xjbXNDbW0+IHRyYW5zZm9ybSA9Ci0gICAgICBJY2NNb2R1bGU6OkNyZWF0ZVRyYW5zZm9ybVNSR0IocGRmaXVtOjptYWtlX3NwYW4oZGF0YSwgc2l6ZSkpOworICBzdGQ6OnVuaXF1ZV9wdHI8Znhjb2RlYzo6SWNjVHJhbnNmb3JtPiB0cmFuc2Zvcm0gPQorICAgICAgZnhjb2RlYzo6SWNjVHJhbnNmb3JtOjpDcmVhdGVUcmFuc2Zvcm1TUkdCKHBkZml1bTo6bWFrZV9zcGFuKGRhdGEsIHNpemUpKTsKKyAgaWYgKCF0cmFuc2Zvcm0pCisgICAgcmV0dXJuIDA7CiAKLSAgaWYgKHRyYW5zZm9ybSkgewotICAgIGZsb2F0IHNyY1s0XTsKLSAgICBmbG9hdCBkc3RbNF07Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspCi0gICAgICBzcmNbaV0gPSAwLjVmOwotICAgIEljY01vZHVsZTo6VHJhbnNsYXRlKHRyYW5zZm9ybS5nZXQoKSwgdHJhbnNmb3JtLT5jb21wb25lbnRzKCksIHNyYywgZHN0KTsKLSAgfQotCisgIGNvbnN0IGZsb2F0IHNyY1s0XSA9IHswLjVmLCAwLjVmLCAwLjVmLCAwLjVmfTsKKyAgZmxvYXQgZHN0WzRdOworICB0cmFuc2Zvcm0tPlRyYW5zbGF0ZShwZGZpdW06Om1ha2Vfc3BhbihzcmMpLmZpcnN0KHRyYW5zZm9ybS0+Y29tcG9uZW50cygpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgcGRmaXVtOjptYWtlX3NwYW4oZHN0KSk7CiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19qYmlnMl9mdXp6ZXIuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX2piaWcyX2Z1enplci5jYwppbmRleCAyODc4ZDdjLi41OWVkYTc2IDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX2piaWcyX2Z1enplci5jYworKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX2piaWcyX2Z1enplci5jYwpAQCAtMSwxNyArMSwxNiBAQAotLy8gQ29weXJpZ2h0IDIwMTYgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTYgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCi0jaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KIAogI2luY2x1ZGUgImNvcmUvZnhjb2RlYy9qYmlnMi9KQmlnMl9Db250ZXh0LmgiCiAjaW5jbHVkZSAiY29yZS9meGNvZGVjL2piaWcyL0pCaWcyX0RvY3VtZW50Q29udGV4dC5oIgotI2luY2x1ZGUgImNvcmUvZnhjb2RlYy9qYmlnMi9qYmlnMm1vZHVsZS5oIgorI2luY2x1ZGUgImNvcmUvZnhjb2RlYy9qYmlnMi9qYmlnMl9kZWNvZGVyLmgiCiAjaW5jbHVkZSAiY29yZS9meGNydC9meF9zYWZlX3R5cGVzLmgiCiAjaW5jbHVkZSAiY29yZS9meGdlL2RpYi9jZnhfZGliaXRtYXAuaCIKLSNpbmNsdWRlICJjb3JlL2Z4Z2UvZnhfZGliLmgiCisjaW5jbHVkZSAiY29yZS9meGdlL2RpYi9meF9kaWIuaCIKICNpbmNsdWRlICJ0ZXN0aW5nL2Z1enplcnMvcGRmaXVtX2Z1enplcl91dGlsLmgiCi0jaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9wdHJfdXRpbC5oIgogCiBleHRlcm4gIkMiIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7CiAgIGNvbnN0IHNpemVfdCBrUGFyYW1ldGVyU2l6ZSA9IDg7CkBAIC0zMiwxNyArMzEsMTYgQEAKICAgICByZXR1cm4gMDsKIAogICBhdXRvIGJpdG1hcCA9IHBkZml1bTo6TWFrZVJldGFpbjxDRlhfRElCaXRtYXA+KCk7Ci0gIGlmICghYml0bWFwLT5DcmVhdGUod2lkdGgsIGhlaWdodCwgRlhESUJfMWJwcFJnYikpCisgIGlmICghYml0bWFwLT5DcmVhdGUod2lkdGgsIGhlaWdodCwgRlhESUJfRm9ybWF0OjprMWJwcFJnYikpCiAgICAgcmV0dXJuIDA7CiAKLSAgSmJpZzJNb2R1bGUgbW9kdWxlOworICBKQmlnMl9Eb2N1bWVudENvbnRleHQgZG9jdW1lbnRfY29udGV4dDsKICAgSmJpZzJDb250ZXh0IGpiaWcyX2NvbnRleHQ7Ci0gIHN0ZDo6dW5pcXVlX3B0cjxKQmlnMl9Eb2N1bWVudENvbnRleHQ+IGRvY3VtZW50X2NvbnRleHQ7Ci0gIEZYQ09ERUNfU1RBVFVTIHN0YXR1cyA9IG1vZHVsZS5TdGFydERlY29kZSgKKyAgRlhDT0RFQ19TVEFUVVMgc3RhdHVzID0gSmJpZzJEZWNvZGVyOjpTdGFydERlY29kZSgKICAgICAgICZqYmlnMl9jb250ZXh0LCAmZG9jdW1lbnRfY29udGV4dCwgd2lkdGgsIGhlaWdodCwge2RhdGEsIHNpemV9LCAxLCB7fSwgMCwKICAgICAgIGJpdG1hcC0+R2V0QnVmZmVyKCksIGJpdG1hcC0+R2V0UGl0Y2goKSwgbnVsbHB0cik7CiAKLSAgd2hpbGUgKHN0YXR1cyA9PSBGWENPREVDX1NUQVRVU19ERUNPREVfVE9CRUNPTlRJTlVFKQotICAgIHN0YXR1cyA9IG1vZHVsZS5Db250aW51ZURlY29kZSgmamJpZzJfY29udGV4dCwgbnVsbHB0cik7CisgIHdoaWxlIChzdGF0dXMgPT0gRlhDT0RFQ19TVEFUVVM6OmtEZWNvZGVUb0JlQ29udGludWVkKQorICAgIHN0YXR1cyA9IEpiaWcyRGVjb2Rlcjo6Q29udGludWVEZWNvZGUoJmpiaWcyX2NvbnRleHQsIG51bGxwdHIpOwogICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnV6emVycy9wZGZfY29kZWNfanBlZ19mdXp6ZXIuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX2pwZWdfZnV6emVyLmNjCmluZGV4IGVhYTA4ODkuLmE5ZjcyMTYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfY29kZWNfanBlZ19mdXp6ZXIuY2MKKysrIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19qcGVnX2Z1enplci5jYwpAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19wbmdfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19wbmdfZnV6emVyLmNjCmluZGV4IDYxYTY1NzQuLjE0ZDliZDMgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfY29kZWNfcG5nX2Z1enplci5jYworKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX3BuZ19mdXp6ZXIuY2MKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxNiBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNiBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnV6emVycy9wZGZfY29kZWNfcmxlX2Z1enplci5jYyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfY29kZWNfcmxlX2Z1enplci5jYwppbmRleCA3YjQwYjAxLi43MGNlNWQ0IDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX3JsZV9mdXp6ZXIuY2MKKysrIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY19ybGVfZnV6emVyLmNjCkBAIC0xLDE2ICsxLDEyIEBACi0vLyBDb3B5cmlnaHQgMjAxNyBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKICNpbmNsdWRlIDxjc3RkaW50PgotI2luY2x1ZGUgPG1lbW9yeT4KIAogI2luY2x1ZGUgImNvcmUvZnhjb2RlYy9iYXNpYy9iYXNpY21vZHVsZS5oIgotI2luY2x1ZGUgImNvcmUvZnhjcnQvZnhfbWVtb3J5X3dyYXBwZXJzLmgiCiAKIGV4dGVybiAiQyIgaW50IExMVk1GdXp6ZXJUZXN0T25lSW5wdXQoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpIHsKLSAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3QsIEZ4RnJlZURlbGV0ZXI+IGRlc3RfYnVmOwotICB1aW50MzJfdCBkZXN0X3NpemUgPSAwOwotICBCYXNpY01vZHVsZTo6UnVuTGVuZ3RoRW5jb2RlKHtkYXRhLCBzaXplfSwgJmRlc3RfYnVmLCAmZGVzdF9zaXplKTsKKyAgQmFzaWNNb2R1bGU6OlJ1bkxlbmd0aEVuY29kZSh7ZGF0YSwgc2l6ZX0pOwogICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnV6emVycy9wZGZfY29kZWNfdGlmZl9mdXp6ZXIuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2NvZGVjX3RpZmZfZnV6emVyLmNjCmluZGV4IDE4N2MzMTEuLjY1NjZiNmIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfY29kZWNfdGlmZl9mdXp6ZXIuY2MKKysrIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jb2RlY190aWZmX2Z1enplci5jYwpAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9jcGRmX3RvdW5pY29kZW1hcF9mdXp6ZXIuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2NwZGZfdG91bmljb2RlbWFwX2Z1enplci5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjE4NTY0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jcGRmX3RvdW5pY29kZW1hcF9mdXp6ZXIuY2MKQEAgLTAsMCArMSwzOCBAQAorLy8gQ29weXJpZ2h0IDIwMjEgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaW5jbHVkZSA8ZnV6emVyL0Z1enplZERhdGFQcm92aWRlci5oPgorCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSAiY29yZS9mcGRmYXBpL2ZvbnQvY3BkZl90b3VuaWNvZGVtYXAuaCIKKyNpbmNsdWRlICJjb3JlL2ZwZGZhcGkvcGFyc2VyL2NwZGZfc3RyZWFtLmgiCisjaW5jbHVkZSAiY29yZS9meGNydC9yZXRhaW5fcHRyLmgiCisKK2V4dGVybiAiQyIgaW50IExMVk1GdXp6ZXJUZXN0T25lSW5wdXQoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpIHsKKyAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qga1BhcmFtZXRlclNpemUgPSBzaXplb2YodWludDMyX3QpICsgc2l6ZW9mKHdjaGFyX3QpOworICBpZiAoc2l6ZSA8PSBrUGFyYW1ldGVyU2l6ZSkKKyAgICByZXR1cm4gMDsKKworICAvLyBMaW1pdCBkYXRhIHNpemUgdG8gcHJldmVudCBmdXp6ZXIgdGltZW91dC4KKyAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qga01heERhdGFTaXplID0gMjU2ICogMTAyNDsKKyAgaWYgKHNpemUgPiBrUGFyYW1ldGVyU2l6ZSArIGtNYXhEYXRhU2l6ZSkKKyAgICByZXR1cm4gMDsKKworICBGdXp6ZWREYXRhUHJvdmlkZXIgZGF0YV9wcm92aWRlcihkYXRhLCBzaXplKTsKKyAgdWludDMyX3QgY2hhcmNvZGVfdG9fbG9va3VwID0gZGF0YV9wcm92aWRlci5Db25zdW1lSW50ZWdyYWw8dWludDMyX3Q+KCk7CisgIHdjaGFyX3QgY2hhcl9mb3JfcmV2ZXJzZV9sb29rdXAgPSBkYXRhX3Byb3ZpZGVyLkNvbnN1bWVJbnRlZ3JhbDx3Y2hhcl90PigpOworCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHJlbWFpbmluZyA9CisgICAgICBkYXRhX3Byb3ZpZGVyLkNvbnN1bWVSZW1haW5pbmdCeXRlczx1aW50OF90PigpOworICBhdXRvIHN0cmVhbSA9IHBkZml1bTo6TWFrZVJldGFpbjxDUERGX1N0cmVhbT4oKTsKKyAgc3RyZWFtLT5TZXREYXRhKHJlbWFpbmluZyk7CisKKyAgYXV0byB0b191bmljb2RlX21hcCA9IHN0ZDo6bWFrZV91bmlxdWU8Q1BERl9Ub1VuaWNvZGVNYXA+KHN0ZDo6bW92ZShzdHJlYW0pKTsKKyAgdG9fdW5pY29kZV9tYXAtPkxvb2t1cChjaGFyY29kZV90b19sb29rdXApOworICB0b191bmljb2RlX21hcC0+UmV2ZXJzZUxvb2t1cChjaGFyX2Zvcl9yZXZlcnNlX2xvb2t1cCk7CisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9jc3NfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9jc3NfZnV6emVyLmNjCmluZGV4IDVmMTQ3MWQuLmYxMTcwNWMgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfY3NzX2Z1enplci5jYworKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2Nzc19mdXp6ZXIuY2MKQEAgLTEsOSArMSw3IEBACi0vLyBDb3B5cmlnaHQgMjAxNiBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNiBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKLSNpbmNsdWRlIDxtZW1vcnk+Ci0KICNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Nzcy9jZnhfY3NzLmgiCiAjaW5jbHVkZSAiY29yZS9meGNydC9jc3MvY2Z4X2Nzc3N5bnRheHBhcnNlci5oIgogI2luY2x1ZGUgImNvcmUvZnhjcnQvZnhfc3RyaW5nLmgiCkBAIC0xNiwxMSArMTQsMTEgQEAKICAgaWYgKGlucHV0LklzRW1wdHkoKSkKICAgICByZXR1cm4gMDsKIAotICBDRlhfQ1NTU3ludGF4UGFyc2VyIHBhcnNlcihpbnB1dC5jX3N0cigpLCBpbnB1dC5HZXRMZW5ndGgoKSk7Ci0gIENGWF9DU1NTeW50YXhTdGF0dXMgc3RhdHVzOworICBDRlhfQ1NTU3ludGF4UGFyc2VyIHBhcnNlcihpbnB1dC5Bc1N0cmluZ1ZpZXcoKSk7CisgIENGWF9DU1NTeW50YXhQYXJzZXI6OlN0YXR1cyBzdGF0dXM7CiAgIGRvIHsKICAgICBzdGF0dXMgPSBwYXJzZXIuRG9TeW50YXhQYXJzZSgpOwotICB9IHdoaWxlIChzdGF0dXMgIT0gQ0ZYX0NTU1N5bnRheFN0YXR1czo6RXJyb3IgJiYKLSAgICAgICAgICAgc3RhdHVzICE9IENGWF9DU1NTeW50YXhTdGF0dXM6OkVPUyk7CisgIH0gd2hpbGUgKHN0YXR1cyAhPSBDRlhfQ1NTU3ludGF4UGFyc2VyOjpTdGF0dXM6OmtFcnJvciAmJgorICAgICAgICAgICBzdGF0dXMgIT0gQ0ZYX0NTU1N5bnRheFBhcnNlcjo6U3RhdHVzOjprRU9TKTsKICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX2ZtMmpzX2Z1enplci5jYyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfZm0yanNfZnV6emVyLmNjCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2N2RhYTQ2Li4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfZm0yanNfZnV6emVyLmNjCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTYgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotI2luY2x1ZGUgPGNzdGRkZWY+Ci0jaW5jbHVkZSA8Y3N0ZGludD4KLQotI2luY2x1ZGUgImNvcmUvZnhjcnQvY2Z4X3dpZGV0ZXh0YnVmLmgiCi0jaW5jbHVkZSAiY29yZS9meGNydC9meF9zYWZlX3R5cGVzLmgiCi0jaW5jbHVkZSAiY29yZS9meGNydC9meF9zdHJpbmcuaCIKLSNpbmNsdWRlICJmeGpzL3hmYS9jZnhqc2VfZm9ybWNhbGNfY29udGV4dC5oIgotCi1leHRlcm4gIkMiIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7Ci0gIEZYX1NBRkVfU0laRV9UIHNhZmVfc2l6ZSA9IHNpemU7Ci0gIGlmICghc2FmZV9zaXplLklzVmFsaWQoKSkKLSAgICByZXR1cm4gMDsKLQotICBDRlhfV2lkZVRleHRCdWYganM7Ci0gIFdpZGVTdHJpbmcgaW5wdXQgPQotICAgICAgV2lkZVN0cmluZzo6RnJvbVVURjgoQnl0ZVN0cmluZ1ZpZXcoZGF0YSwgc2FmZV9zaXplLlZhbHVlT3JEaWUoKSkpOwotICBDRlhKU0VfRm9ybUNhbGNDb250ZXh0OjpUcmFuc2xhdGUoaW5wdXQuQXNTdHJpbmdWaWV3KCksICZqcyk7Ci0gIHJldHVybiAwOwotfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9mb250X2Z1enplci5jYyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfZm9udF9mdXp6ZXIuY2MKaW5kZXggN2M1OTYzMC4uYTAyMDUyYSAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9mb250X2Z1enplci5jYworKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2ZvbnRfZnV6emVyLmNjCkBAIC0xLDE2ICsxLDE1IEBACi0vLyBDb3B5cmlnaHQgMjAxNyBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKLSNpbmNsdWRlIDxjc3RyaW5nPgotI2luY2x1ZGUgPG1lbW9yeT4KLQogI2luY2x1ZGUgInB1YmxpYy9jcHAvZnBkZl9zY29wZXJzLmgiCiAjaW5jbHVkZSAicHVibGljL2ZwZGZfZWRpdC5oIgogI2luY2x1ZGUgInB1YmxpYy9mcGRmdmlldy5oIgogCitzdGF0aWMgY29uc3RleHByIHNpemVfdCBrTWF4RnV6ekJ5dGVzID0gMTAyNCAqIDEwMjQgKiAxMDI0OyAgLy8gMSBHQi4KKwogZXh0ZXJuICJDIiBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgewotICBpZiAoc2l6ZSA8IDIpCisgIGlmIChzaXplIDwgMiB8fCBzaXplID4ga01heEZ1enpCeXRlcykKICAgICByZXR1cm4gMDsKIAogICBTY29wZWRGUERGRG9jdW1lbnQgZG9jKEZQREZfQ3JlYXRlTmV3RG9jdW1lbnQoKSk7CkBAIC0xOSw3ICsxOCw4IEBACiAgIEZQREZfQk9PTCBjaWQgPSBkYXRhWzFdOwogICBkYXRhICs9IDI7CiAgIHNpemUgLT0gMjsKLSAgU2NvcGVkRlBERkZvbnQgZm9udChGUERGVGV4dF9Mb2FkRm9udChkb2MuZ2V0KCksIGRhdGEsIHNpemUsIGZvbnRfdHlwZSwgY2lkKSk7CisgIFNjb3BlZEZQREZGb250IGZvbnQoRlBERlRleHRfTG9hZEZvbnQoCisgICAgICBkb2MuZ2V0KCksIGRhdGEsIHN0YXRpY19jYXN0PHVpbnQzMl90PihzaXplKSwgZm9udF90eXBlLCBjaWQpKTsKICAgaWYgKCFmb250KQogICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX2Zvcm1jYWxjX2NvbnRleHRfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9mb3JtY2FsY19jb250ZXh0X2Z1enplci5jYwppbmRleCBlMmQ3M2E4Li42MzhkMDg2IDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvcGRmX2Zvcm1jYWxjX2NvbnRleHRfZnV6emVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfZm9ybWNhbGNfY29udGV4dF9mdXp6ZXIuY2MKQEAgLTEsOSArMSwxMSBAQAotLy8gQ29weXJpZ2h0IDIwMTkgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTkgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAKKyNpbmNsdWRlIDxtZW1vcnk+CisKICNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Z4X3N0cmluZy5oIgogI2luY2x1ZGUgImZwZGZzZGsvY3BkZnNka19oZWxwZXJzLmgiCiAjaW5jbHVkZSAiZnBkZnNkay9mcGRmeGZhL2NwZGZ4ZmFfY29udGV4dC5oIgpAQCAtMTEsNyArMTMsNiBAQAogI2luY2x1ZGUgImZ4anMveGZhL2NmeGpzZV92YWx1ZS5oIgogI2luY2x1ZGUgInB1YmxpYy9mcGRmX2Zvcm1maWxsLmgiCiAjaW5jbHVkZSAidGVzdGluZy9mdXp6ZXJzL3BkZml1bV9mdXp6ZXJfaGVscGVyLmgiCi0jaW5jbHVkZSAidjgvaW5jbHVkZS92OC5oIgogI2luY2x1ZGUgInhmYS9meGZhL2N4ZmFfZXZlbnRwYXJhbS5oIgogCiBuYW1lc3BhY2UgewpAQCAtNTIyLDE1ICs1MjMsMTQgQEAKIAogICAgIENYRkFfRXZlbnRQYXJhbSBwYXJhbXM7CiAgICAgcGFyYW1zLm1fYkNhbmNlbEFjdGlvbiA9IGZhbHNlOwotICAgIHNjcmlwdF9jb250ZXh0LT5TZXRFdmVudFBhcmFtKCZwYXJhbXMpOworICAgIENGWEpTRV9FbmdpbmU6OkV2ZW50UGFyYW1TY29wZSBwYXJhbV9zY29wZShzY3JpcHRfY29udGV4dCwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhcmFtcyk7CiAgICAgQnl0ZVN0cmluZ1ZpZXcgZGF0YV92aWV3KGRhdGFfLCBzaXplXyk7CiAKLSAgICBhdXRvIHZhbHVlID0gcGRmaXVtOjpNYWtlVW5pcXVlPENGWEpTRV9WYWx1ZT4oc2NyaXB0X2NvbnRleHQtPkdldElzb2xhdGUoKSk7CisgICAgYXV0byB2YWx1ZSA9IHN0ZDo6bWFrZV91bmlxdWU8Q0ZYSlNFX1ZhbHVlPigpOwogICAgIHNjcmlwdF9jb250ZXh0LT5SdW5TY3JpcHQoQ1hGQV9TY3JpcHQ6OlR5cGU6OkZvcm1jYWxjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2lkZVN0cmluZzo6RnJvbVVURjgoZGF0YV92aWV3KS5Bc1N0cmluZ1ZpZXcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmdldCgpLCB4ZmFfZG9jdW1lbnQtPkdldFJvb3QoKSk7Ci0KLSAgICBzY3JpcHRfY29udGV4dC0+U2V0RXZlbnRQYXJhbShudWxscHRyKTsKICAgfQogCiAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnV6emVycy9wZGZfZm9ybWNhbGNfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9mb3JtY2FsY19mdXp6ZXIuY2MKaW5kZXggMDhlMjJiYi4uZDhhMmE4OSAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9mb3JtY2FsY19mdXp6ZXIuY2MKKysrIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9mb3JtY2FsY19mdXp6ZXIuY2MKQEAgLTEsMTYgKzEsMTggQEAKLS8vIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAotI2luY2x1ZGUgImNvcmUvZnhjcnQvY2Z4X3dpZGV0ZXh0YnVmLmgiCiAjaW5jbHVkZSAiY29yZS9meGNydC9meF9zdHJpbmcuaCIKLSNpbmNsdWRlICJ4ZmEvZnhmYS9mbTJqcy9jeGZhX2ZtcGFyc2VyLmgiCisjaW5jbHVkZSAidGVzdGluZy9mdXp6ZXJzL3BkZml1bV9mdXp6ZXJfdXRpbC5oIgorI2luY2x1ZGUgInRlc3RpbmcvZnV6emVycy94ZmFfcHJvY2Vzc19zdGF0ZS5oIgorI2luY2x1ZGUgInhmYS9meGZhL2Zvcm1jYWxjL2N4ZmFfZm1wYXJzZXIuaCIKIAogZXh0ZXJuICJDIiBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgeworICBhdXRvKiBzdGF0ZSA9IHN0YXRpY19jYXN0PFhGQVByb2Nlc3NTdGF0ZSo+KEZQREZfR2V0RnV6emVyUGVyUHJvY2Vzc1N0YXRlKCkpOwogICBXaWRlU3RyaW5nIGlucHV0ID0gV2lkZVN0cmluZzo6RnJvbVVURjgoQnl0ZVN0cmluZ1ZpZXcoZGF0YSwgc2l6ZSkpOwotCi0gIENYRkFfRk1QYXJzZXIgcGFyc2VyKGlucHV0LkFzU3RyaW5nVmlldygpKTsKKyAgQ1hGQV9GTUxleGVyIGxleGVyKGlucHV0LkFzU3RyaW5nVmlldygpKTsKKyAgQ1hGQV9GTVBhcnNlciBwYXJzZXIoc3RhdGUtPkdldEhlYXAoKSwgJmxleGVyKTsKICAgcGFyc2VyLlBhcnNlKCk7Ci0KKyAgc3RhdGUtPkZvcmNlR0NBbmRQdW1wKCk7CiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9mb3JtY2FsY190cmFuc2xhdGVfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9mb3JtY2FsY190cmFuc2xhdGVfZnV6emVyLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyYjgxODgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2Zvcm1jYWxjX3RyYW5zbGF0ZV9mdXp6ZXIuY2MKQEAgLTAsMCArMSwyMCBAQAorLy8gQ29weXJpZ2h0IDIwMTYgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Z4X3NhZmVfdHlwZXMuaCIKKyNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Z4X3N0cmluZy5oIgorI2luY2x1ZGUgImZ4anMveGZhL2NmeGpzZV9mb3JtY2FsY19jb250ZXh0LmgiCisjaW5jbHVkZSAidGVzdGluZy9mdXp6ZXJzL3BkZml1bV9mdXp6ZXJfdXRpbC5oIgorI2luY2x1ZGUgInRlc3RpbmcvZnV6emVycy94ZmFfcHJvY2Vzc19zdGF0ZS5oIgorCitleHRlcm4gIkMiIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7CisgIGF1dG8qIHN0YXRlID0gc3RhdGljX2Nhc3Q8WEZBUHJvY2Vzc1N0YXRlKj4oRlBERl9HZXRGdXp6ZXJQZXJQcm9jZXNzU3RhdGUoKSk7CisgIFdpZGVTdHJpbmcgaW5wdXQgPSBXaWRlU3RyaW5nOjpGcm9tVVRGOChCeXRlU3RyaW5nVmlldyhkYXRhLCBzaXplKSk7CisgIENGWEpTRV9Gb3JtQ2FsY0NvbnRleHQ6OlRyYW5zbGF0ZShzdGF0ZS0+R2V0SGVhcCgpLCBpbnB1dC5Bc1N0cmluZ1ZpZXcoKSk7CisgIHN0YXRlLT5Gb3JjZUdDQW5kUHVtcCgpOworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnV6emVycy9wZGZfZnV6emVyX2luaXQuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2Z1enplcl9pbml0LmNjCmluZGV4IDk1NGVlZDAuLjlhNzVkZDIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfZnV6emVyX2luaXQuY2MKKysrIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9mdXp6ZXJfaW5pdC5jYwpAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9mdXp6ZXJfaW5pdF9wdWJsaWMuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2Z1enplcl9pbml0X3B1YmxpYy5jYwppbmRleCA1ZWNlMGJjLi4zMjI3ZDQ3IDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvcGRmX2Z1enplcl9pbml0X3B1YmxpYy5jYworKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2Z1enplcl9pbml0X3B1YmxpYy5jYwpAQCAtMSwyNCArMSwzMyBAQAotLy8gQ29weXJpZ2h0IDIwMTkgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTkgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCi0jaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSAidGVzdGluZy9mdXp6ZXJzL3BkZl9mdXp6ZXJfaW5pdF9wdWJsaWMuaCIKIAotI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxzdHJpbmcuaD4gIC8vIEZvciBtZW1zZXQoKQogCi0jaW5jbHVkZSAicHVibGljL2ZwZGZfZXh0LmgiCisjaW5jbHVkZSA8c3RyaW5nPgorCisjaW5jbHVkZSAidGVzdGluZy9mdXp6ZXJzL3BkZml1bV9mdXp6ZXJfdXRpbC5oIgogCiAjaWZkZWYgUERGX0VOQUJMRV9WOAogI2luY2x1ZGUgInRlc3RpbmcvZnJlZV9kZWxldGVyLmgiCiAjaW5jbHVkZSAidGVzdGluZy92OF9pbml0aWFsaXplci5oIgogI2luY2x1ZGUgInY4L2luY2x1ZGUvdjgtcGxhdGZvcm0uaCIKLSNpbmNsdWRlICJ2OC9pbmNsdWRlL3Y4LmgiCi0jZW5kaWYKKyNpZmRlZiBQREZfRU5BQkxFX1hGQQorI2luY2x1ZGUgInRlc3RpbmcvZnV6emVycy94ZmFfcHJvY2Vzc19zdGF0ZS5oIgorI2luY2x1ZGUgInY4L2luY2x1ZGUvdjgtYXJyYXktYnVmZmVyLmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS92OC1pc29sYXRlLmgiCisjZW5kaWYgIC8vIFBERl9FTkFCTEVfWEZBCisjZW5kaWYgIC8vIFBERl9FTkFCTEVfVjgKIAogI2lmZGVmIF9XSU4zMgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQogI2luY2x1ZGUgPG1hY2gtby9keWxkLmg+CisjZWxpZiBkZWZpbmVkKF9fRnVjaHNpYV9fKQorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2Vsc2UgIC8vIExpbnV4CiAjaW5jbHVkZSA8bGludXgvbGltaXRzLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CkBAIC0yNiwxMCArMzUsMTMgQEAKIAogbmFtZXNwYWNlIHsKIAorLy8gcGRmX2Z1enplcl9pbml0LmNjIGFuZCBwZGZfZnV6emVyX2luaXRfcHVibGljLmNjIGFyZSBtdXR1YWxseSBleGNsdXNpdmUKKy8vIGFuZCBzaG91bGQgbm90IGJlIGJ1aWx0IHRvZ2V0aGVyLgorUERGRnV6emVySW5pdFB1YmxpYyogZ19pbnN0YW5jZSA9IG5ldyBQREZGdXp6ZXJJbml0UHVibGljKCk7CisKICNpZmRlZiBQREZfRU5BQkxFX1Y4CiBzdGQ6OnN0cmluZyBQcm9ncmFtUGF0aCgpIHsKICAgc3RkOjpzdHJpbmcgcmVzdWx0OwotCiAjaWZkZWYgX1dJTjMyCiAgIGNoYXIgcGF0aFtNQVhfUEFUSF07CiAgIERXT1JEIGxlbiA9IEdldE1vZHVsZUZpbGVOYW1lQShudWxscHRyLCBwYXRoLCBNQVhfUEFUSCk7CkBAIC01Niw0MSArNjgsNDUgQEAKIAogfSAgLy8gbmFtZXNwYWNlCiAKLS8vIEluaXRpYWxpemUgdGhlIGxpYnJhcnkgb25jZSBmb3IgYWxsIHJ1bnMgb2YgdGhlIGZ1enplci4KLXN0cnVjdCBUZXN0Q2FzZSB7Ci0gIFRlc3RDYXNlKCkgeworUERGRnV6emVySW5pdFB1YmxpYzo6UERGRnV6emVySW5pdFB1YmxpYygpIHsKICNpZmRlZiBQREZfRU5BQkxFX1Y4CiAjaWZkZWYgVjhfVVNFX0VYVEVSTkFMX1NUQVJUVVBfREFUQQotICAgIHBsYXRmb3JtID0gSW5pdGlhbGl6ZVY4Rm9yUERGaXVtV2l0aFN0YXJ0dXBEYXRhKAotICAgICAgICBQcm9ncmFtUGF0aCgpLCBzdGQ6OnN0cmluZygpLCAmc25hcHNob3RfYmxvYik7Ci0jZWxzZQotICAgIHBsYXRmb3JtID0gSW5pdGlhbGl6ZVY4Rm9yUERGaXVtKFByb2dyYW1QYXRoKCkpOworICBwbGF0Zm9ybV8gPSBJbml0aWFsaXplVjhGb3JQREZpdW1XaXRoU3RhcnR1cERhdGEoCisgICAgICBQcm9ncmFtUGF0aCgpLCBzdGQ6OnN0cmluZygpLCBzdGQ6OnN0cmluZygpLCAmc25hcHNob3RfYmxvYl8pOworI2Vsc2UgICAvLyBWOF9VU0VfRVhURVJOQUxfU1RBUlRVUF9EQVRBCisgIHBsYXRmb3JtXyA9IEluaXRpYWxpemVWOEZvclBERml1bShQcm9ncmFtUGF0aCgpLCBzdGQ6OnN0cmluZygpKTsKICNlbmRpZiAgLy8gVjhfVVNFX0VYVEVSTkFMX1NUQVJUVVBfREFUQQorI2lmZGVmIFBERl9FTkFCTEVfWEZBCisgIGFsbG9jYXRvcl8ucmVzZXQodjg6OkFycmF5QnVmZmVyOjpBbGxvY2F0b3I6Ok5ld0RlZmF1bHRBbGxvY2F0b3IoKSk7CisgIHY4OjpJc29sYXRlOjpDcmVhdGVQYXJhbXMgY3JlYXRlX3BhcmFtczsKKyAgY3JlYXRlX3BhcmFtcy5hcnJheV9idWZmZXJfYWxsb2NhdG9yID0gYWxsb2NhdG9yXy5nZXQoKTsKKyAgaXNvbGF0ZV8ucmVzZXQodjg6Oklzb2xhdGU6Ok5ldyhjcmVhdGVfcGFyYW1zKSk7CisjZW5kaWYgIC8vIFBERl9FTkFCTEVfWEZBCiAjZW5kaWYgIC8vIFBERl9FTkFCTEVfVjgKLQotICAgIG1lbXNldCgmY29uZmlnLCAnXDAnLCBzaXplb2YoY29uZmlnKSk7Ci0gICAgY29uZmlnLnZlcnNpb24gPSAyOwotICAgIGNvbmZpZy5tX3BVc2VyRm9udFBhdGhzID0gbnVsbHB0cjsKLSAgICBjb25maWcubV9wSXNvbGF0ZSA9IG51bGxwdHI7Ci0gICAgY29uZmlnLm1fdjhFbWJlZGRlclNsb3QgPSAwOwotICAgIEZQREZfSW5pdExpYnJhcnlXaXRoQ29uZmlnKCZjb25maWcpOwotCi0gICAgbWVtc2V0KCZ1bnN1cHBvcnRfaW5mbywgJ1wwJywgc2l6ZW9mKHVuc3VwcG9ydF9pbmZvKSk7Ci0gICAgdW5zdXBwb3J0X2luZm8udmVyc2lvbiA9IDE7Ci0gICAgdW5zdXBwb3J0X2luZm8uRlNES19VblN1cHBvcnRfSGFuZGxlciA9IFtdKFVOU1VQUE9SVF9JTkZPKiwgaW50KSB7fTsKLSAgICBGU0RLX1NldFVuU3BPYmpQcm9jZXNzSGFuZGxlcigmdW5zdXBwb3J0X2luZm8pOwotICB9Ci0KKyAgbWVtc2V0KCZjb25maWdfLCAnXDAnLCBzaXplb2YoY29uZmlnXykpOworICBjb25maWdfLnZlcnNpb24gPSAzOworICBjb25maWdfLm1fcFVzZXJGb250UGF0aHMgPSBudWxscHRyOworICBjb25maWdfLm1fcFBsYXRmb3JtID0gbnVsbHB0cjsKKyAgY29uZmlnXy5tX3BJc29sYXRlID0gbnVsbHB0cjsKKyAgY29uZmlnXy5tX3Y4RW1iZWRkZXJTbG90ID0gMDsKICNpZmRlZiBQREZfRU5BQkxFX1Y4Ci0gIHN0ZDo6dW5pcXVlX3B0cjx2ODo6UGxhdGZvcm0+IHBsYXRmb3JtOwotICB2ODo6U3RhcnR1cERhdGEgc25hcHNob3RfYmxvYjsKKyAgY29uZmlnXy5tX3BQbGF0Zm9ybSA9IHBsYXRmb3JtXy5nZXQoKTsKKyAgY29uZmlnXy5tX3BJc29sYXRlID0gaXNvbGF0ZV8uZ2V0KCk7CisjZW5kaWYgIC8vIFBERl9FTkFCTEVfVjgKKyAgRlBERl9Jbml0TGlicmFyeVdpdGhDb25maWcoJmNvbmZpZ18pOworCisgIG1lbXNldCgmdW5zdXBwb3J0X2luZm9fLCAnXDAnLCBzaXplb2YodW5zdXBwb3J0X2luZm9fKSk7CisgIHVuc3VwcG9ydF9pbmZvXy52ZXJzaW9uID0gMTsKKyAgdW5zdXBwb3J0X2luZm9fLkZTREtfVW5TdXBwb3J0X0hhbmRsZXIgPSBbXShVTlNVUFBPUlRfSU5GTyosIGludCkge307CisgIEZTREtfU2V0VW5TcE9ialByb2Nlc3NIYW5kbGVyKCZ1bnN1cHBvcnRfaW5mb18pOworCisjaWZkZWYgUERGX0VOQUJMRV9YRkEKKyAgeGZhX3Byb2Nlc3Nfc3RhdGVfID0KKyAgICAgIHN0ZDo6bWFrZV91bmlxdWU8WEZBUHJvY2Vzc1N0YXRlPihwbGF0Zm9ybV8uZ2V0KCksIGlzb2xhdGVfLmdldCgpKTsKKyAgRlBERl9TZXRGdXp6ZXJQZXJQcm9jZXNzU3RhdGUoeGZhX3Byb2Nlc3Nfc3RhdGVfLmdldCgpKTsKICNlbmRpZgorfQogCi0gIEZQREZfTElCUkFSWV9DT05GSUcgY29uZmlnOwotICBVTlNVUFBPUlRfSU5GTyB1bnN1cHBvcnRfaW5mbzsKLX07Ci0KLS8vIHBkZl9mdXp6ZXJfaW5pdC5jYyBhbmQgcGRmaXVtX2Z1enplcl9pbml0X3B1YmxpYy5jYyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlCi0vLyBhbmQgc2hvdWxkIG5vdCBiZSBidWlsdCB0b2dldGhlci4gVGhleSBkZWxpYmVyYXRlbHkgaGF2ZSB0aGUgc2FtZSBnbG9iYWwKLS8vIHZhcmlhYmxlLgotc3RhdGljIFRlc3RDYXNlKiBnX3Rlc3RfY2FzZSA9IG5ldyBUZXN0Q2FzZSgpOworUERGRnV6emVySW5pdFB1YmxpYzo6flBERkZ1enplckluaXRQdWJsaWMoKSB7CisgIEZQREZfU2V0RnV6emVyUGVyUHJvY2Vzc1N0YXRlKG51bGxwdHIpOworfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9mdXp6ZXJfaW5pdF9wdWJsaWMuaCBiL3Rlc3RpbmcvZnV6emVycy9wZGZfZnV6emVyX2luaXRfcHVibGljLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGI3ZjQ2ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfZnV6emVyX2luaXRfcHVibGljLmgKQEAgLTAsMCArMSw1MCBAQAorLy8gQ29weXJpZ2h0IDIwMjAgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaWZuZGVmIFRFU1RJTkdfRlVaWkVSU19QREZfRlVaWkVSX0lOSVRfUFVCTElDX0hfCisjZGVmaW5lIFRFU1RJTkdfRlVaWkVSU19QREZfRlVaWkVSX0lOSVRfUFVCTElDX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlICJwdWJsaWMvZnBkZl9leHQuaCIKKyNpbmNsdWRlICJwdWJsaWMvZnBkZnZpZXcuaCIKKworI2lmZGVmIFBERl9FTkFCTEVfVjgKKyNpbmNsdWRlICJmeGpzL2NmeF92OC5oIgorI2luY2x1ZGUgInY4L2luY2x1ZGUvdjgtYXJyYXktYnVmZmVyLmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS92OC1zbmFwc2hvdC5oIgorI2VuZGlmICAvLyBQREZfRU5BQkxFX1Y4CisKK2NsYXNzIFhGQVByb2Nlc3NTdGF0ZTsKKworI2lmZGVmIFBERl9FTkFCTEVfVjgKK25hbWVzcGFjZSB2OCB7CitjbGFzcyBJc29sYXRlOworY2xhc3MgUGxhdGZvcm07Cit9ICAvLyBuYW1lc3BhY2UgdjgKKyNlbmRpZiAgLy8gUERGX0VOQUJMRV9WOAorCisvLyBJbml0aWFsaXplcyB0aGUgbGlicmFyeSBvbmNlIGZvciBhbGwgcnVucyBvZiB0aGUgZnV6emVyLgorY2xhc3MgUERGRnV6emVySW5pdFB1YmxpYyB7CisgcHVibGljOgorICBQREZGdXp6ZXJJbml0UHVibGljKCk7CisgIH5QREZGdXp6ZXJJbml0UHVibGljKCk7CisKKyBwcml2YXRlOgorICBGUERGX0xJQlJBUllfQ09ORklHIGNvbmZpZ187CisgIFVOU1VQUE9SVF9JTkZPIHVuc3VwcG9ydF9pbmZvXzsKKyNpZmRlZiBQREZfRU5BQkxFX1Y4CisjaWZkZWYgVjhfVVNFX0VYVEVSTkFMX1NUQVJUVVBfREFUQQorICB2ODo6U3RhcnR1cERhdGEgc25hcHNob3RfYmxvYl87CisjZW5kaWYgIC8vIFY4X1VTRV9FWFRFUk5BTF9TVEFSVFVQX0RBVEEKKyAgc3RkOjp1bmlxdWVfcHRyPHY4OjpQbGF0Zm9ybT4gcGxhdGZvcm1fOworICBzdGQ6OnVuaXF1ZV9wdHI8djg6OkFycmF5QnVmZmVyOjpBbGxvY2F0b3I+IGFsbG9jYXRvcl87CisgIHN0ZDo6dW5pcXVlX3B0cjx2ODo6SXNvbGF0ZSwgQ0ZYX1Y4SXNvbGF0ZURlbGV0ZXI+IGlzb2xhdGVfOworI2lmZGVmIFBERl9FTkFCTEVfWEZBCisgIHN0ZDo6dW5pcXVlX3B0cjxYRkFQcm9jZXNzU3RhdGU+IHhmYV9wcm9jZXNzX3N0YXRlXzsKKyNlbmRpZiAgLy8gUERGX0VOQUJMRV9YRkEKKyNlbmRpZiAgLy8gUERGX0VOQUJMRV9WOAorfTsKKworI2VuZGlmICAvLyBURVNUSU5HX0ZVWlpFUlNfUERGX0ZVWlpFUl9JTklUX1BVQkxJQ19IXwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9mdXp6ZXJfdGVtcGxhdGVzLmggYi90ZXN0aW5nL2Z1enplcnMvcGRmX2Z1enplcl90ZW1wbGF0ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmU0ZWE4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9mdXp6ZXJfdGVtcGxhdGVzLmgKQEAgLTAsMCArMSw1MiBAQAorLy8gQ29weXJpZ2h0IDIwMjEgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvLyBGaWxlIGZvciBob2xkaW5nIHN0cmluZ3MgcmVwcmVzZW50aW5nIFBERiB0ZW1wbGF0ZXMgdGhhdCBhcmUgdXNlZCBieSBmdXp6ZXJzLgorCisjaWZuZGVmIFRFU1RJTkdfRlVaWkVSU19QREZfRlVaWkVSX1RFTVBMQVRFU19IXworI2RlZmluZSBURVNUSU5HX0ZVWlpFUlNfUERGX0ZVWlpFUl9URU1QTEFURVNfSF8KKworY29uc3RleHByIGNoYXIga1NpbXBsZVBkZlRlbXBsYXRlW10gPSBSIiglUERGLTEuNworMSAwIG9iagorPDwvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgL0Fjcm9Gb3JtIDw8L1hGQSAzMCAwIFI+PiAvTmVlZHNSZW5kZXJpbmcgdHJ1ZT4+CitlbmRvYmoKKzIgMCBvYmoKKzw8L1R5cGUgL1BhZ2VzIC9LaWRzIFszIDAgUl0gL0NvdW50IDE+PgorZW5kb2JqCiszIDAgb2JqCis8PC9UeXBlIC9QYWdlIC9QYXJlbnQgMiAwIFIgL01lZGlhQm94IFswIDAgMyAzXT4+CitlbmRvYmoKKzMwIDAgb2JqCis8PC9MZW5ndGggJDE+Pgorc3RyZWFtCiskMgorZW5kc3RyZWFtCitlbmRvYmoKK3RyYWlsZXIKKzw8L1Jvb3QgMSAwIFIgL1NpemUgMzE+PgorJSVFT0YpIjsKKworLy8gV2UgZGVmaW5lIHRoZSBieXRlcyBvZiB0aGUgaGVhZGVyIGV4cGxpY2l0bHkgdG8gbWFrZSB0aGUgdmFsdWVzIG1vcmUgcmVhZGFibGUKK2NvbnN0ZXhwciB1aW50OF90IGtTaW1wbGVQZGZIZWFkZXJbXSA9IHsweDI1LCAweDUwLCAweDQ0LCAweDQ2LCAweDJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzEsIDB4MmUsIDB4MzcsIDB4MGEsIDB4MjUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhhMCwgMHhmMiwgMHhhNCwgMHhmNCwgMHgwYX07CisKK2NvbnN0ZXhwciBjaGFyIGtDYXRhbG9nW10gPSBSIiIoPDwvQWNyb0Zvcm0gMiAwIFIgL0V4dGVuc2lvbnMKKyAgPDwvQURCRSA8PC9CYXNlVmVyc2lvbiAvMS43IC9FeHRlbnNpb25MZXZlbCA4Pj4+PiAvTmVlZHNSZW5kZXJpbmcgdHJ1ZQorICAvUGFnZXMgMyAwIFIgL1R5cGUgL0NhdGFsb2c+PikiIjsKKworY29uc3RleHByIGNoYXIga1NpbXBsZVhmYU9ialdyYXBwZXJbXSA9IFIiIig8PC9YRkEKKyAgWyhwcmVhbWJsZSkgNSAwIFIgKCQxKSA2IDAgUiAoJDIpIDcgMCBSICgkMykgOCAwIFIKKyAgKHBvc3RhbWJsZSkgOSAwIFJdPj4pIiI7CisKK2NvbnN0ZXhwciBjaGFyIGtTaW1wbGVQYWdlc09ialtdID0gIjw8L0NvdW50IDEgL0tpZHMgWzQgMCBSXSAvVHlwZSAvUGFnZXM+PiI7Citjb25zdGV4cHIgY2hhciBrU2ltcGxlUGFnZU9ialtdID0KKyAgICAiPDwvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSAvUGFyZW50IDMgMCBSIC9UeXBlIC9QYWdlPj4iOworY29uc3RleHByIGNoYXIga1NpbXBsZVByZWFtYmxlW10gPQorICAgIFIiIig8eGRwOnhkcCB4bWxuczp4ZHA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGRwLyIgCit0aW1lU3RhbXA9IjIwMjEtMTItMTRUMTQ6MTQ6MTRaIiAKK3V1aWQ9IjExMTExMTExLTFhYjEtMTFiMS1hYTFhLTFhYWFhYWFhMTFhMSI+KSIiOworY29uc3RleHByIGNoYXIga1NpbXBsZVBvc3RhbWJsZVtdID0gIjwveGRwOnhkcD4iOworCisjZW5kaWYgIC8vIFRFU1RJTkdfRlVaWkVSU19QREZfRlVaWkVSX1RFTVBMQVRFU19IXwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9meF9kYXRlX2hlbHBlcnNfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9meF9kYXRlX2hlbHBlcnNfZnV6emVyLmNjCmluZGV4IGUzMWRlY2MuLmQ5OGZmZmQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfZnhfZGF0ZV9oZWxwZXJzX2Z1enplci5jYworKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2Z4X2RhdGVfaGVscGVyc19mdXp6ZXIuY2MKQEAgLTEsOSArMSw3IEBACi0vLyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKLSNpbmNsdWRlIDxzdHJpbmc+Ci0KICNpbmNsdWRlICJjb3JlL2Z4Y3J0L3dpZGVzdHJpbmcuaCIKICNpbmNsdWRlICJmeGpzL2Z4X2RhdGVfaGVscGVycy5oIgogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX2hpbnRfdGFibGVfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9oaW50X3RhYmxlX2Z1enplci5jYwppbmRleCAxNTQwMDc0Li4zNzQzYjFhIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvcGRmX2hpbnRfdGFibGVfZnV6emVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfaGludF90YWJsZV9mdXp6ZXIuY2MKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxNiBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNiBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTExLDcgKzExLDYgQEAKICNpbmNsdWRlICJjb3JlL2ZwZGZhcGkvcGFyc2VyL2NwZGZfbGluZWFyaXplZF9oZWFkZXIuaCIKICNpbmNsdWRlICJjb3JlL2ZwZGZhcGkvcGFyc2VyL2NwZGZfbnVtYmVyLmgiCiAjaW5jbHVkZSAiY29yZS9meGNydC9jZnhfYml0c3RyZWFtLmgiCi0jaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9wdHJfdXRpbC5oIgogI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2Uvc3Bhbi5oIgogCiBpbnQzMl90IEdldERhdGEoY29uc3QgaW50MzJfdCoqIGRhdGEzMiwgY29uc3QgdWludDhfdCoqIGRhdGEsIHNpemVfdCogc2l6ZSkgewpAQCAtMjgsNyArMjcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgIGludCBzaGFyZWRfaGludF90YWJsZV9vZmZzZXQpCiAgICAgICA6IENQREZfSGludFRhYmxlcyhudWxscHRyLCBwTGluZWFyaXplZCksCiAgICAgICAgIHNoYXJlZF9oaW50X3RhYmxlX29mZnNldF8oc2hhcmVkX2hpbnRfdGFibGVfb2Zmc2V0KSB7fQotICB+SGludFRhYmxlRm9yRnV6emluZygpIHt9CisgIH5IaW50VGFibGVGb3JGdXp6aW5nKCkgPSBkZWZhdWx0OwogCiAgIHZvaWQgRnV6eihjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgewogICAgIGlmIChzaGFyZWRfaGludF90YWJsZV9vZmZzZXRfIDw9IDApCkBAIC03Niw5ICs3NSw5IEBACiAKICAgYXV0byBoaW50X2luZm8gPSBwZGZpdW06Ok1ha2VSZXRhaW48Q1BERl9BcnJheT4oKTsKICAgLy8gQWRkIHByaW1hcnkgaGludCBzdHJlYW0gb2Zmc2V0Ci0gIGhpbnRfaW5mby0+QWRkTmV3PENQREZfTnVtYmVyPihHZXREYXRhKCZkYXRhMzIsICZkYXRhLCAmc2l6ZSkpOworICBoaW50X2luZm8tPkFwcGVuZE5ldzxDUERGX051bWJlcj4oR2V0RGF0YSgmZGF0YTMyLCAmZGF0YSwgJnNpemUpKTsKICAgLy8gQWRkIHByaW1hcnkgaGludCBzdHJlYW0gc2l6ZQotICBoaW50X2luZm8tPkFkZE5ldzxDUERGX051bWJlcj4oR2V0RGF0YSgmZGF0YTMyLCAmZGF0YSwgJnNpemUpKTsKKyAgaGludF9pbmZvLT5BcHBlbmROZXc8Q1BERl9OdW1iZXI+KEdldERhdGEoJmRhdGEzMiwgJmRhdGEsICZzaXplKSk7CiAgIC8vIFNldCBoaW50IHN0cmVhbSBpbmZvLgogICBsaW5lYXJpemVkX2RpY3QtPlNldEZvcigiSCIsIHN0ZDo6bW92ZShoaW50X2luZm8pKTsKIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9qcHhfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9qcHhfZnV6emVyLmNjCmluZGV4IDM5ODZhZTIuLjMwMjFkNzYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfanB4X2Z1enplci5jYworKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2pweF9mdXp6ZXIuY2MKQEAgLTEsMTcgKzEsMTUgQEAKLS8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogI2luY2x1ZGUgPGNzdGRpbnQ+CiAjaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUgPHZlY3Rvcj4KIAogI2luY2x1ZGUgImNvcmUvZnBkZmFwaS9wYWdlL2NwZGZfY29sb3JzcGFjZS5oIgogI2luY2x1ZGUgImNvcmUvZnhjb2RlYy9qcHgvY2pweF9kZWNvZGVyLmgiCi0jaW5jbHVkZSAiY29yZS9meGNvZGVjL2pweC9qcHhtb2R1bGUuaCIKICNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Z4X3NhZmVfdHlwZXMuaCIKICNpbmNsdWRlICJjb3JlL2Z4Z2UvZGliL2NmeF9kaWJpdG1hcC5oIgotI2luY2x1ZGUgImNvcmUvZnhnZS9meF9kaWIuaCIKKyNpbmNsdWRlICJjb3JlL2Z4Z2UvZGliL2Z4X2RpYi5oIgogCiBuYW1lc3BhY2UgewogCkBAIC0yMSwxOSArMTksMTkgQEAKICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBrTWVtTGltaXRCeXRlcyA9IDEwMjQgKiAxMDI0ICogMTAyNDsgIC8vIDEgR0IuCiAgIEZYX1NBRkVfVUlOVDMyIG1lbSA9IGltYWdlX2luZm8ud2lkdGg7CiAgIG1lbSAqPSBpbWFnZV9pbmZvLmhlaWdodDsKLSAgbWVtICo9IGltYWdlX2luZm8uY29tcG9uZW50czsKKyAgbWVtICo9IGltYWdlX2luZm8uY2hhbm5lbHM7CiAgIHJldHVybiBtZW0uSXNWYWxpZCgpICYmIG1lbS5WYWx1ZU9yRGllKCkgPD0ga01lbUxpbWl0Qnl0ZXM7CiB9CiAKIH0gIC8vIG5hbWVzcGFjZQogCiBleHRlcm4gIkMiIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7Ci0gIGlmIChzaXplIDwgMSkKKyAgaWYgKHNpemUgPCAyKQogICAgIHJldHVybiAwOwogCi0gIHN0ZDo6dW5pcXVlX3B0cjxDSlBYX0RlY29kZXI+IGRlY29kZXIgPSBKcHhNb2R1bGU6OkNyZWF0ZURlY29kZXIoCi0gICAgICB7ZGF0YSArIDEsIHNpemUgLSAxfSwKLSAgICAgIHN0YXRpY19jYXN0PENKUFhfRGVjb2Rlcjo6Q29sb3JTcGFjZU9wdGlvbj4oZGF0YVswXSAlIDMpKTsKKyAgc3RkOjp1bmlxdWVfcHRyPENKUFhfRGVjb2Rlcj4gZGVjb2RlciA9IENKUFhfRGVjb2Rlcjo6Q3JlYXRlKAorICAgICAge2RhdGEgKyAyLCBzaXplIC0gMn0sCisgICAgICBzdGF0aWNfY2FzdDxDSlBYX0RlY29kZXI6OkNvbG9yU3BhY2VPcHRpb24+KGRhdGFbMF0gJSAzKSwgZGF0YVsxXSk7CiAgIGlmICghZGVjb2RlcikKICAgICByZXR1cm4gMDsKIApAQCAtNTIsMTUgKzUwLDE1IEBACiAgICAgcmV0dXJuIDA7CiAKICAgRlhESUJfRm9ybWF0IGZvcm1hdDsKLSAgaWYgKGltYWdlX2luZm8uY29tcG9uZW50cyA9PSAxKSB7Ci0gICAgZm9ybWF0ID0gRlhESUJfOGJwcFJnYjsKLSAgfSBlbHNlIGlmIChpbWFnZV9pbmZvLmNvbXBvbmVudHMgPD0gMykgewotICAgIGZvcm1hdCA9IEZYRElCX1JnYjsKLSAgfSBlbHNlIGlmIChpbWFnZV9pbmZvLmNvbXBvbmVudHMgPT0gNCkgewotICAgIGZvcm1hdCA9IEZYRElCX1JnYjMyOworICBpZiAoaW1hZ2VfaW5mby5jaGFubmVscyA9PSAxKSB7CisgICAgZm9ybWF0ID0gRlhESUJfRm9ybWF0OjprOGJwcFJnYjsKKyAgfSBlbHNlIGlmIChpbWFnZV9pbmZvLmNoYW5uZWxzIDw9IDMpIHsKKyAgICBmb3JtYXQgPSBGWERJQl9Gb3JtYXQ6OmtSZ2I7CisgIH0gZWxzZSBpZiAoaW1hZ2VfaW5mby5jaGFubmVscyA9PSA0KSB7CisgICAgZm9ybWF0ID0gRlhESUJfRm9ybWF0OjprUmdiMzI7CiAgIH0gZWxzZSB7Ci0gICAgaW1hZ2VfaW5mby53aWR0aCA9IChpbWFnZV9pbmZvLndpZHRoICogaW1hZ2VfaW5mby5jb21wb25lbnRzICsgMikgLyAzOwotICAgIGZvcm1hdCA9IEZYRElCX1JnYjsKKyAgICBpbWFnZV9pbmZvLndpZHRoID0gKGltYWdlX2luZm8ud2lkdGggKiBpbWFnZV9pbmZvLmNoYW5uZWxzICsgMikgLyAzOworICAgIGZvcm1hdCA9IEZYRElCX0Zvcm1hdDo6a1JnYjsKICAgfQogICBhdXRvIGJpdG1hcCA9IHBkZml1bTo6TWFrZVJldGFpbjxDRlhfRElCaXRtYXA+KCk7CiAgIGlmICghYml0bWFwLT5DcmVhdGUoaW1hZ2VfaW5mby53aWR0aCwgaW1hZ2VfaW5mby5oZWlnaHQsIGZvcm1hdCkpCkBAIC03MSw4ICs2OSw4IEBACiAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGJpdG1hcC0+R2V0SGVpZ2h0KCkpKQogICAgIHJldHVybiAwOwogCi0gIGRlY29kZXItPkRlY29kZShiaXRtYXAtPkdldEJ1ZmZlcigpLCBiaXRtYXAtPkdldFBpdGNoKCksCi0gICAgICAgICAgICAgICAgICAvKnN3YXBfcmdiPSovZmFsc2UpOworICBkZWNvZGVyLT5EZWNvZGUoYml0bWFwLT5HZXRCdWZmZXIoKSwgYml0bWFwLT5HZXRQaXRjaCgpLCAvKnN3YXBfcmdiPSovZmFsc2UsCisgICAgICAgICAgICAgICAgICBHZXRDb21wc0Zyb21Gb3JtYXQoZm9ybWF0KSk7CiAKICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX2x6d19mdXp6ZXIuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmX2x6d19mdXp6ZXIuY2MKaW5kZXggZTRkOTkzZS4uMzhkNzkyOSAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9sendfZnV6emVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfbHp3X2Z1enplci5jYwpAQCAtMSwxMCArMSwxMyBAQAotLy8gQ29weXJpZ2h0IDIwMTcgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKICNpbmNsdWRlIDx2ZWN0b3I+CiAKLSNpbmNsdWRlICJjb3JlL2Z4Y29kZWMvZ2lmL2NmeF9sendkZWNvbXByZXNzb3IuaCIKKyNpbmNsdWRlICJjb3JlL2Z4Y29kZWMvZ2lmL2x6d19kZWNvbXByZXNzb3IuaCIKICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL251bWVyaWNzL3NhZmVfY29udmVyc2lvbnMuaCIKIAogLy8gQmV0d2VlbiAyeCBhbmQgNXggaXMgYSBzdGFuZGFyZCByYW5nZSBmb3IgTFpXIGFjY29yZGluZyB0byBhIHF1aWNrCkBAIC0xMiwxMiArMTUsMTQgQEAKIGNvbnN0ZXhwciB1aW50MzJfdCBrTWluQ29tcHJlc3Npb25SYXRpbyA9IDI7CiBjb25zdGV4cHIgdWludDMyX3Qga01heENvbXByZXNzaW9uUmF0aW8gPSAxMDsKIAorc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qga01heEZ1enpCeXRlcyA9IDEwMjQgKiAxMDI0ICogMTAyNDsgIC8vIDEgR0IuCisKIHZvaWQgTFpXRnV6eihjb25zdCB1aW50OF90KiBzcmNfYnVmLAotICAgICAgICAgICAgIHNpemVfdCBzcmNfc2l6ZSwKKyAgICAgICAgICAgICB1aW50MzJfdCBzcmNfc2l6ZSwKICAgICAgICAgICAgICB1aW50OF90IGNvbG9yX2V4cCwKICAgICAgICAgICAgICB1aW50OF90IGNvZGVfZXhwKSB7Ci0gIHN0ZDo6dW5pcXVlX3B0cjxDRlhfTFpXRGVjb21wcmVzc29yPiBkZWNvbXByZXNzb3IgPQotICAgICAgQ0ZYX0xaV0RlY29tcHJlc3Nvcjo6Q3JlYXRlKGNvbG9yX2V4cCwgY29kZV9leHApOworICBzdGQ6OnVuaXF1ZV9wdHI8TFpXRGVjb21wcmVzc29yPiBkZWNvbXByZXNzb3IgPQorICAgICAgTFpXRGVjb21wcmVzc29yOjpDcmVhdGUoY29sb3JfZXhwLCBjb2RlX2V4cCk7CiAgIGlmICghZGVjb21wcmVzc29yKQogICAgIHJldHVybjsKIApAQCAtMjcsOCArMzIsOSBAQAogICAgIC8vIFRoaXMgY2FzdCBzaG91bGQgYmUgc2FmZSBzaW5jZSB0aGUgY2FsbGVyIGlzIGNoZWNraW5nIGZvciBvdmVyZmxvdyBvbgogICAgIC8vIHRoZSBpbml0aWFsIGRhdGEuCiAgICAgdWludDMyX3QgZGVzdF9zaXplID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRlc3RfYnVmLnNpemUoKSk7Ci0gICAgaWYgKENGWF9HaWZEZWNvZGVTdGF0dXM6Okluc3VmZmljaWVudERlc3RTaXplICE9Ci0gICAgICAgIGRlY29tcHJlc3Nvci0+RGVjb2RlKHNyY19idWYsIHNyY19zaXplLCBkZXN0X2J1Zi5kYXRhKCksICZkZXN0X3NpemUpKSB7CisgICAgZGVjb21wcmVzc29yLT5TZXRTb3VyY2Uoc3JjX2J1Ziwgc3JjX3NpemUpOworICAgIGlmIChMWldEZWNvbXByZXNzb3I6OlN0YXR1czo6a0luc3VmZmljaWVudERlc3RTaXplICE9CisgICAgICAgIGRlY29tcHJlc3Nvci0+RGVjb2RlKGRlc3RfYnVmLmRhdGEoKSwgJmRlc3Rfc2l6ZSkpIHsKICAgICAgIHJldHVybjsKICAgICB9CiAgIH0KQEAgLTM2LDcgKzQyLDcgQEAKIAogZXh0ZXJuICJDIiBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgewogICAvLyBOZWVkIGF0IGxlYXN0IDMgYnl0ZXMgdG8gZG8gYW55dGhpbmcuCi0gIGlmIChzaXplIDwgMykKKyAgaWYgKHNpemUgPCAzIHx8IHNpemUgPiBrTWF4RnV6ekJ5dGVzKQogICAgIHJldHVybiAwOwogCiAgIC8vIE5vcm1hbGx5IHRoZSBHSUYgd291bGQgcHJvdmlkZSB0aGUgY29kZSBhbmQgY29sb3Igc2l6ZXMsIGluc3RlYWQsIGdvaW5nCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX25hbWV0cmVlX2Z1enplci5jYyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfbmFtZXRyZWVfZnV6emVyLmNjCmluZGV4IDlhMzcwMjQuLmJjMTQxZWQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfbmFtZXRyZWVfZnV6emVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfbmFtZXRyZWVfZnV6emVyLmNjCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTkgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTkgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCkBAIC01NCwyMiArNTQsMjMgQEAKIAogICBDUERGX1N0cmVhbVBhcnNlciBwYXJzZXIocmVtYWluaW5nKTsKICAgYXV0byBkaWN0ID0gcGRmaXVtOjpNYWtlUmV0YWluPENQREZfRGljdGlvbmFyeT4oKTsKLSAgQ1BERl9OYW1lVHJlZSBuYW1lX3RyZWUoZGljdC5HZXQoKSk7CisgIHN0ZDo6dW5pcXVlX3B0cjxDUERGX05hbWVUcmVlPiBuYW1lX3RyZWUgPQorICAgICAgQ1BERl9OYW1lVHJlZTo6Q3JlYXRlRm9yVGVzdGluZyhkaWN0LkdldCgpKTsKICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogcGFyYW1zLm5hbWVzKSB7CiAgICAgUmV0YWluUHRyPENQREZfT2JqZWN0PiBvYmogPSBwYXJzZXIuUmVhZE5leHRPYmplY3QoCiAgICAgICAgIC8qYkFsbG93TmVzdGVkQXJyYXkqLyB0cnVlLCAvKmJJbkFycmF5PSovZmFsc2UsIC8qZHdSZWN1cnNpb25MZXZlbD0qLzApOwogICAgIGlmICghb2JqKQogICAgICAgYnJlYWs7CiAKLSAgICBuYW1lX3RyZWUuQWRkVmFsdWVBbmROYW1lKHN0ZDo6bW92ZShvYmopLCBuYW1lKTsKKyAgICBuYW1lX3RyZWUtPkFkZFZhbHVlQW5kTmFtZShzdGQ6Om1vdmUob2JqKSwgbmFtZSk7CiAgIH0KIAogICBpZiAocGFyYW1zLmRlbGV0ZV9iYWNrd2FyZHMpIHsKICAgICBmb3IgKHNpemVfdCBpID0gcGFyYW1zLmNvdW50OyBpID4gMDsgLS1pKQotICAgICAgbmFtZV90cmVlLkRlbGV0ZVZhbHVlQW5kTmFtZShpKTsKKyAgICAgIG5hbWVfdHJlZS0+RGVsZXRlVmFsdWVBbmROYW1lKGkpOwogICB9IGVsc2UgewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFyYW1zLmNvdW50OyArK2kpCi0gICAgICBuYW1lX3RyZWUuRGVsZXRlVmFsdWVBbmROYW1lKDApOworICAgICAgbmFtZV90cmVlLT5EZWxldGVWYWx1ZUFuZE5hbWUoMCk7CiAgIH0KICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX3BzZW5naW5lX2Z1enplci5jYyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfcHNlbmdpbmVfZnV6emVyLmNjCmluZGV4IGQ3MjA4OGQuLjVjYzJhNzYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZfcHNlbmdpbmVfZnV6emVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfcHNlbmdpbmVfZnV6emVyLmNjCkBAIC0xLDggKzEsOCBAQAotLy8gQ29weXJpZ2h0IDIwMTYgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTYgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCi0jaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KIAogI2luY2x1ZGUgImNvcmUvZnBkZmFwaS9wYWdlL2NwZGZfcHNlbmdpbmUuaCIKICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL3NwYW4uaCIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnV6emVycy9wZGZfc2NhbmxpbmVjb21wb3NpdG9yX2Z1enplci5jYyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfc2NhbmxpbmVjb21wb3NpdG9yX2Z1enplci5jYwppbmRleCA0YjIwMDY4Li45YzZlNDM0IDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvcGRmX3NjYW5saW5lY29tcG9zaXRvcl9mdXp6ZXIuY2MKKysrIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl9zY2FubGluZWNvbXBvc2l0b3JfZnV6emVyLmNjCkBAIC0xLDIwICsxLDM2IEBACi0vLyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKKyNpbmNsdWRlIDxpdGVyYXRvcj4KKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Z4X3NhZmVfdHlwZXMuaCIKICNpbmNsdWRlICJjb3JlL2Z4Z2UvY2Z4X2NsaXByZ24uaCIKICNpbmNsdWRlICJjb3JlL2Z4Z2UvZGliL2NmeF9kaWJpdG1hcC5oIgotI2luY2x1ZGUgImNvcmUvZnhnZS9meF9kaWIuaCIKKyNpbmNsdWRlICJjb3JlL2Z4Z2UvZGliL2Z4X2RpYi5oIgogI2luY2x1ZGUgInRlc3RpbmcvZnV6emVycy9wZGZpdW1fZnV6emVyX3V0aWwuaCIKLSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL3B0cl91dGlsLmgiCiAKIG5hbWVzcGFjZSB7CiAKKy8vIFNvbWUgdW51c2VkIGZvcm1hdHMgd2VyZSByZW1vdmVkLCBhbmQgdGhlaXIgc2xvdHMgaGF2ZSBiZWVuIGZpbGxlZCBpbgorLy8gYEZYRElCX0Zvcm1hdDo6a0ludmFsaWRgIHRvIGtlZXAgdGhlIGZ1enplciBpbnB1dCBzdGFibGUuCiBjb25zdGV4cHIgRlhESUJfRm9ybWF0IGtGb3JtYXRbXSA9IHsKLSAgICBGWERJQl9JbnZhbGlkLCBGWERJQl8xYnBwUmdiLCAgIEZYRElCXzhicHBSZ2IsICBGWERJQl9SZ2IsCi0gICAgRlhESUJfUmdiMzIsICAgRlhESUJfMWJwcE1hc2ssICBGWERJQl84YnBwTWFzaywgRlhESUJfOGJwcFJnYmEsCi0gICAgRlhESUJfUmdiYSwgICAgRlhESUJfQXJnYiwgICAgICBGWERJQl8xYnBwQ215aywgRlhESUJfOGJwcENteWssCi0gICAgRlhESUJfQ215aywgICAgRlhESUJfOGJwcENteWthLCBGWERJQl9DbXlrYX07CisgICAgRlhESUJfRm9ybWF0OjprSW52YWxpZCwKKyAgICBGWERJQl9Gb3JtYXQ6OmsxYnBwUmdiLAorICAgIEZYRElCX0Zvcm1hdDo6azhicHBSZ2IsCisgICAgRlhESUJfRm9ybWF0OjprUmdiLAorICAgIEZYRElCX0Zvcm1hdDo6a1JnYjMyLAorICAgIEZYRElCX0Zvcm1hdDo6azFicHBNYXNrLAorICAgIEZYRElCX0Zvcm1hdDo6azhicHBNYXNrLAorICAgIEZYRElCX0Zvcm1hdDo6a0ludmFsaWQgLyogV2FzIEZYRElCX0Zvcm1hdDo6azhicHBSZ2JhICovLAorICAgIEZYRElCX0Zvcm1hdDo6a0ludmFsaWQgLyogV2FzIEZYRElCX0Zvcm1hdDo6a1JnYmEgKi8sCisgICAgRlhESUJfRm9ybWF0OjprQXJnYiwKKyAgICBGWERJQl9Gb3JtYXQ6OmtJbnZhbGlkIC8qIFdhcyBGWERJQl9Gb3JtYXQ6OmsxYnBwQ215ayAqLywKKyAgICBGWERJQl9Gb3JtYXQ6OmtJbnZhbGlkIC8qIFdhcyBGWERJQl9Gb3JtYXQ6Oms4YnBwQ215ayAqLywKKyAgICBGWERJQl9Gb3JtYXQ6OmtJbnZhbGlkIC8qIFdhcyBGWERJQl9Gb3JtYXQ6OmtDbXlrICovLAorICAgIEZYRElCX0Zvcm1hdDo6a0ludmFsaWQgLyogV2FzIEZYRElCX0Zvcm1hdDo6azhicHBDbXlrYSAqLywKKyAgICBGWERJQl9Gb3JtYXQ6OmtJbnZhbGlkIC8qIFdhcyBGWERJQl9Gb3JtYXQ6OmtDbXlrYSAqL307CiAKIH0gIC8vIG5hbWVzcGFjZQogCkBAIC0zMywyNyArNDksMzUgQEAKIAogICBCbGVuZE1vZGUgYmxlbmRfbW9kZSA9IHN0YXRpY19jYXN0PEJsZW5kTW9kZT4oCiAgICAgICBkYXRhWzI4XSAlIChzdGF0aWNfY2FzdDxpbnQ+KEJsZW5kTW9kZTo6a0xhc3QpICsgMSkpOwotICBGWERJQl9Gb3JtYXQgZGVzdF9mb3JtYXQgPSBrRm9ybWF0W2RhdGFbMjldICUgRlhfQXJyYXlTaXplKGtGb3JtYXQpXTsKLSAgRlhESUJfRm9ybWF0IHNyY19mb3JtYXQgPSBrRm9ybWF0W2RhdGFbMzBdICUgRlhfQXJyYXlTaXplKGtGb3JtYXQpXTsKKyAgRlhESUJfRm9ybWF0IGRlc3RfZm9ybWF0ID0ga0Zvcm1hdFtkYXRhWzI5XSAlIHN0ZDo6c2l6ZShrRm9ybWF0KV07CisgIEZYRElCX0Zvcm1hdCBzcmNfZm9ybWF0ID0ga0Zvcm1hdFtkYXRhWzMwXSAlIHN0ZDo6c2l6ZShrRm9ybWF0KV07CiAgIGJvb2wgaXNfY2xpcCA9ICEoZGF0YVszMV0gJSAyKTsKICAgYm9vbCBpc19yZ2JfYnl0ZV9vcmRlciA9ICEoZGF0YVszMl0gJSAyKTsKICAgc2l6ZSAtPSBrUGFyYW1ldGVyU2l6ZTsKICAgZGF0YSArPSBrUGFyYW1ldGVyU2l6ZTsKIAorICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IGtNZW1MaW1pdCA9IDUxMjAwMDAwMDsgIC8vIDUxMiBNQgorICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IGtDb21wb25lbnRzID0gNDsKKyAgRlhfU0FGRV9VSU5UMzIgbWVtID0gd2lkdGg7CisgIG1lbSAqPSBoZWlnaHQ7CisgIG1lbSAqPSBrQ29tcG9uZW50czsKKyAgaWYgKCFtZW0uSXNWYWxpZCgpIHx8IG1lbS5WYWx1ZU9yRGllKCkgPiBrTWVtTGltaXQpCisgICAgcmV0dXJuIDA7CisKICAgYXV0byBzcmNfYml0bWFwID0gcGRmaXVtOjpNYWtlUmV0YWluPENGWF9ESUJpdG1hcD4oKTsKICAgYXV0byBkZXN0X2JpdG1hcCA9IHBkZml1bTo6TWFrZVJldGFpbjxDRlhfRElCaXRtYXA+KCk7CiAgIGlmICghc3JjX2JpdG1hcC0+Q3JlYXRlKHdpZHRoLCBoZWlnaHQsIHNyY19mb3JtYXQpIHx8CiAgICAgICAhZGVzdF9iaXRtYXAtPkNyZWF0ZSh3aWR0aCwgaGVpZ2h0LCBkZXN0X2Zvcm1hdCkpIHsKICAgICByZXR1cm4gMDsKICAgfQotICBpZiAoIXNyY19iaXRtYXAtPkdldEJ1ZmZlcigpIHx8ICFkZXN0X2JpdG1hcC0+R2V0QnVmZmVyKCkpIHsKKyAgaWYgKHNyY19iaXRtYXAtPkdldEJ1ZmZlcigpLmVtcHR5KCkgfHwgZGVzdF9iaXRtYXAtPkdldEJ1ZmZlcigpLmVtcHR5KCkpIHsKICAgICByZXR1cm4gMDsKICAgfQogCiAgIHN0ZDo6dW5pcXVlX3B0cjxDRlhfQ2xpcFJnbj4gY2xpcF9yZ247CiAgIGlmIChpc19jbGlwKQotICAgIGNsaXBfcmduID0gcGRmaXVtOjpNYWtlVW5pcXVlPENGWF9DbGlwUmduPih3aWR0aCwgaGVpZ2h0KTsKLSAgaWYgKHNyY19iaXRtYXAtPklzQWxwaGFNYXNrKCkpIHsKKyAgICBjbGlwX3JnbiA9IHN0ZDo6bWFrZV91bmlxdWU8Q0ZYX0NsaXBSZ24+KHdpZHRoLCBoZWlnaHQpOworICBpZiAoc3JjX2JpdG1hcC0+SXNNYXNrRm9ybWF0KCkpIHsKICAgICBkZXN0X2JpdG1hcC0+Q29tcG9zaXRlTWFzayhkZXN0X2xlZnQsIGRlc3RfdG9wLCB3aWR0aCwgaGVpZ2h0LCBzcmNfYml0bWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ2IsIHNyY19sZWZ0LCBzcmNfdG9wLCBibGVuZF9tb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfcmduLmdldCgpLCBpc19yZ2JfYnl0ZV9vcmRlcik7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX3N0cmVhbXBhcnNlcl9mdXp6ZXIuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmX3N0cmVhbXBhcnNlcl9mdXp6ZXIuY2MKaW5kZXggMmJiZGE1ZS4uZTNiZDc4NyAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdXp6ZXJzL3BkZl9zdHJlYW1wYXJzZXJfZnV6emVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfc3RyZWFtcGFyc2VyX2Z1enplci5jYwpAQCAtMSw5ICsxLDggQEAKLS8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAotI2luY2x1ZGUgPGNzdGRpbnQ+Ci0jaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHN0ZGludC5oPgogCiAjaW5jbHVkZSAiY29yZS9mcGRmYXBpL3BhZ2UvY3BkZl9zdHJlYW1wYXJzZXIuaCIKICNpbmNsdWRlICJjb3JlL2ZwZGZhcGkvcGFyc2VyL2NwZGZfb2JqZWN0LmgiCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX3hmYV9mZHBfZnV6emVyLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl94ZmFfZmRwX2Z1enplci5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDM4Yzg5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9mdXp6ZXJzL3BkZl94ZmFfZmRwX2Z1enplci5jYwpAQCAtMCwwICsxLDkxNCBAQAorLy8gQ29weXJpZ2h0IDIwMjEgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaW5jbHVkZSA8ZnV6emVyL0Z1enplZERhdGFQcm92aWRlci5oPgorCisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgInB1YmxpYy9mcGRmX2Zvcm1maWxsLmgiCisjaW5jbHVkZSAidGVzdGluZy9mdXp6ZXJzL3BkZl9mdXp6ZXJfdGVtcGxhdGVzLmgiCisjaW5jbHVkZSAidGVzdGluZy9mdXp6ZXJzL3BkZml1bV9mdXp6ZXJfaGVscGVyLmgiCisjaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9jb250YWluZXJzL2FkYXB0ZXJzLmgiCisKK2NsYXNzIFBERml1bVhGQUZ1enplciA6IHB1YmxpYyBQREZpdW1GdXp6ZXJIZWxwZXIgeworIHB1YmxpYzoKKyAgUERGaXVtWEZBRnV6emVyKCkgPSBkZWZhdWx0OworICB+UERGaXVtWEZBRnV6emVyKCkgb3ZlcnJpZGUgPSBkZWZhdWx0OworCisgIGludCBHZXRGb3JtQ2FsbGJhY2tWZXJzaW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMjsgfQorCisgIHZvaWQgU2V0RmRwKEZ1enplZERhdGFQcm92aWRlciogZmRwKSB7IGZkcF8gPSBmZHA7IH0KKworICAvLyBSZXR1cm4gZmFsc2UgaWYgWEZBIGRvZXNuJ3QgbG9hZCBhcyBvdGhlcndpc2Ugd2UncmUgZHVwbGljYXRpbmcgdGhlIHdvcmsKKyAgLy8gZG9uZSBieSB0aGUgbm9uLXhmYSBmdXp6ZXIuCisgIGJvb2wgT25Gb3JtRmlsbEVudkxvYWRlZChGUERGX0RPQ1VNRU5UIGRvYykgb3ZlcnJpZGUgeworICAgIGludCBmb3JtX3R5cGUgPSBGUERGX0dldEZvcm1UeXBlKGRvYyk7CisgICAgaWYgKGZvcm1fdHlwZSAhPSBGT1JNVFlQRV9YRkFfRlVMTCAmJiBmb3JtX3R5cGUgIT0gRk9STVRZUEVfWEZBX0ZPUkVHUk9VTkQpCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEZQREZfTG9hZFhGQShkb2MpOworICB9CisKKyAgdm9pZCBGb3JtQWN0aW9uSGFuZGxlcihGUERGX0ZPUk1IQU5ETEUgZm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX0RPQ1VNRU5UIGRvYywKKyAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX1BBR0UgcGFnZSkgb3ZlcnJpZGUgeworICAgIGlmICghZmRwXykgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjaGFyIGxvY2FsX2J1Zls1MF07CisgICAgaW50IG51bWJlcl9vZl9jYWxscyA9IGZkcF8tPkNvbnN1bWVJbnRlZ3JhbEluUmFuZ2U8aW50PigwLCAyNTApOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtYmVyX29mX2NhbGxzOyBpKyspIHsKKyAgICAgIFVzZXJJbnRlcmFjdGlvbiBzZWxlY3RvciA9IGZkcF8tPkNvbnN1bWVFbnVtPFVzZXJJbnRlcmFjdGlvbj4oKTsKKyAgICAgIHN3aXRjaCAoc2VsZWN0b3IpIHsKKyAgICAgICAgY2FzZSBrT25MQnV0dG9uVXA6IHsKKyAgICAgICAgICBGT1JNX09uTEJ1dHRvblVwKGZvcm0sIHBhZ2UsIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbDxpbnQ+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmZHBfLT5Db25zdW1lSW50ZWdyYWxJblJhbmdlPGludD4oLTEwMCwgMTAwMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmZHBfLT5Db25zdW1lSW50ZWdyYWxJblJhbmdlPGludD4oLTEwMCwgMTAwMCkpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2Uga09uUkJ1dHRvblVwOiB7CisgICAgICAgICAgRk9STV9PblJCdXR0b25VcChmb3JtLCBwYWdlLCBmZHBfLT5Db25zdW1lSW50ZWdyYWw8aW50PigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRwXy0+Q29uc3VtZUludGVncmFsSW5SYW5nZTxpbnQ+KC0xMDAsIDEwMDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRwXy0+Q29uc3VtZUludGVncmFsSW5SYW5nZTxpbnQ+KC0xMDAsIDEwMDApKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIGtPbkxCdXR0b25Eb3duOiB7CisgICAgICAgICAgRk9STV9PbkxCdXR0b25Eb3duKGZvcm0sIHBhZ2UsIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbDxpbnQ+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbEluUmFuZ2U8aW50PigtMTAwLCAxMDAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRwXy0+Q29uc3VtZUludGVncmFsSW5SYW5nZTxpbnQ+KC0xMDAsIDEwMDApKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIGtPblJCdXR0b25Eb3duOiB7CisgICAgICAgICAgRk9STV9PblJCdXR0b25Eb3duKGZvcm0sIHBhZ2UsIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbDxpbnQ+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbEluUmFuZ2U8aW50PigtMTAwLCAxMDAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRwXy0+Q29uc3VtZUludGVncmFsSW5SYW5nZTxpbnQ+KC0xMDAsIDEwMDApKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIGtPbkNoYXI6IHsKKyAgICAgICAgICBGT1JNX09uQ2hhcihmb3JtLCBwYWdlLCBmZHBfLT5Db25zdW1lSW50ZWdyYWw8aW50PigpLAorICAgICAgICAgICAgICAgICAgICAgIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbDxpbnQ+KCkpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2Uga09uS2V5RG93bjogeworICAgICAgICAgIEZPUk1fT25LZXlEb3duKGZvcm0sIHBhZ2UsIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbDxpbnQ+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgZmRwXy0+Q29uc3VtZUludGVncmFsPGludD4oKSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBrT25LZXlVcDogeworICAgICAgICAgIEZPUk1fT25LZXlVcChmb3JtLCBwYWdlLCBmZHBfLT5Db25zdW1lSW50ZWdyYWw8aW50PigpLAorICAgICAgICAgICAgICAgICAgICAgICBmZHBfLT5Db25zdW1lSW50ZWdyYWw8aW50PigpKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIGtPbkxCdXR0b25Eb3VibGVDbGljazogeworICAgICAgICAgIEZPUk1fT25MQnV0dG9uRG91YmxlQ2xpY2soZm9ybSwgcGFnZSwgZmRwXy0+Q29uc3VtZUludGVncmFsPGludD4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbDxpbnQ+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZHBfLT5Db25zdW1lSW50ZWdyYWw8aW50PigpKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIGtPbk1vdXNlTW92ZTogeworICAgICAgICAgIEZPUk1fT25Nb3VzZU1vdmUoZm9ybSwgcGFnZSwgZmRwXy0+Q29uc3VtZUludGVncmFsPGludD4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbDxpbnQ+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmZHBfLT5Db25zdW1lSW50ZWdyYWw8aW50PigpKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIGtPbk1vdXNlV2hlZWw6IHsKKyAgICAgICAgICBjb25zdCBGU19QT0lOVEYgcG9pbnQgPSB7ZmRwXy0+Q29uc3VtZUZsb2F0aW5nUG9pbnQ8ZmxvYXQ+KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkcF8tPkNvbnN1bWVGbG9hdGluZ1BvaW50PGZsb2F0PigpfTsKKyAgICAgICAgICBGT1JNX09uTW91c2VXaGVlbChmb3JtLCBwYWdlLCBmZHBfLT5Db25zdW1lSW50ZWdyYWw8aW50PigpLCAmcG9pbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRwXy0+Q29uc3VtZUludGVncmFsPGludD4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZHBfLT5Db25zdW1lSW50ZWdyYWw8aW50PigpKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIGtPbkZvY3VzOiB7CisgICAgICAgICAgRk9STV9PbkZvY3VzKGZvcm0sIHBhZ2UsIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbDxpbnQ+KCksCisgICAgICAgICAgICAgICAgICAgICAgIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbDxpbnQ+KCksCisgICAgICAgICAgICAgICAgICAgICAgIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbDxpbnQ+KCkpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2Uga1VuZG86IHsKKyAgICAgICAgICBpZiAoRk9STV9DYW5VbmRvKGZvcm0sIHBhZ2UpKSB7CisgICAgICAgICAgICBGT1JNX1VuZG8oZm9ybSwgcGFnZSk7CisgICAgICAgICAgfQorICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2Uga1NlbGVjdEFsbFRleHQ6IHsKKyAgICAgICAgICBGT1JNX1NlbGVjdEFsbFRleHQoZm9ybSwgcGFnZSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBrUmVkbzogeworICAgICAgICAgIGlmIChGT1JNX0NhblJlZG8oZm9ybSwgcGFnZSkpIHsKKyAgICAgICAgICAgIEZPUk1fUmVkbyhmb3JtLCBwYWdlKTsKKyAgICAgICAgICB9CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBrQW5ub3Q6IHsKKyAgICAgICAgICBGUERGX0FOTk9UQVRJT04gYW5ub3QgPSBudWxscHRyOworICAgICAgICAgIGludCBwYWdlX2luZGV4ID0gLTI7CisgICAgICAgICAgRk9STV9HZXRGb2N1c2VkQW5ub3QoZm9ybSwgJnBhZ2VfaW5kZXgsICZhbm5vdCk7CisgICAgICAgICAgaWYgKGFubm90KSB7CisgICAgICAgICAgICBGT1JNX1NldEZvY3VzZWRBbm5vdChmb3JtLCBhbm5vdCk7CisgICAgICAgICAgfQorICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2Uga1NldEluZGV4U2VsZWN0ZWQ6IHsKKyAgICAgICAgICBGT1JNX1NldEluZGV4U2VsZWN0ZWQoZm9ybSwgcGFnZSwgZmRwXy0+Q29uc3VtZUludGVncmFsPGludD4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRwXy0+Q29uc3VtZUJvb2woKSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBrSXNJbmRleFNlbGVjdGVkOiB7CisgICAgICAgICAgRk9STV9Jc0luZGV4U2VsZWN0ZWQoZm9ybSwgcGFnZSwgZmRwXy0+Q29uc3VtZUludGVncmFsPGludD4oKSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBrSGFzRm9ybUZpZWxkQXRQb2ludDogeworICAgICAgICAgIEZQREZQYWdlX0hhc0Zvcm1GaWVsZEF0UG9pbnQoZm9ybSwgcGFnZSwgZmRwXy0+Q29uc3VtZUludGVncmFsPGludD4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkcF8tPkNvbnN1bWVJbnRlZ3JhbDxpbnQ+KCkpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2Uga0Zvcm1GaWVsZFpPcmRlckF0UG9pbnQ6IHsKKyAgICAgICAgICBGUERGUGFnZV9Gb3JtRmllbGRaT3JkZXJBdFBvaW50KGZvcm0sIHBhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZHBfLT5Db25zdW1lSW50ZWdyYWw8aW50PigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRwXy0+Q29uc3VtZUludGVncmFsPGludD4oKSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBrR2V0U2VsZWN0ZWRUZXh0OiB7CisgICAgICAgICAgRk9STV9HZXRTZWxlY3RlZFRleHQoZm9ybSwgcGFnZSwgbG9jYWxfYnVmLCBzaXplb2YobG9jYWxfYnVmKSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBrR2V0Rm9jdXNlZFRleHQ6IHsKKyAgICAgICAgICBGT1JNX0dldEZvY3VzZWRUZXh0KGZvcm0sIHBhZ2UsIGxvY2FsX2J1Ziwgc2l6ZW9mKGxvY2FsX2J1ZikpOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgfQorCisgcHJpdmF0ZToKKyAgZW51bSBVc2VySW50ZXJhY3Rpb24geworICAgIGtPbkxCdXR0b25VcCA9IDAsCisgICAga09uUkJ1dHRvblVwLAorICAgIGtPbkxCdXR0b25Eb3duLAorICAgIGtPblJCdXR0b25Eb3duLAorICAgIGtPbkNoYXIsCisgICAga09uS2V5RG93biwKKyAgICBrT25LZXlVcCwKKyAgICBrT25MQnV0dG9uRG91YmxlQ2xpY2ssCisgICAga09uTW91c2VNb3ZlLAorICAgIGtPbk1vdXNlV2hlZWwsCisgICAga09uRm9jdXMsCisgICAga1VuZG8sCisgICAga1NlbGVjdEFsbFRleHQsCisgICAga1JlZG8sCisgICAga0Fubm90LAorICAgIGtTZXRJbmRleFNlbGVjdGVkLAorICAgIGtJc0luZGV4U2VsZWN0ZWQsCisgICAga0hhc0Zvcm1GaWVsZEF0UG9pbnQsCisgICAga0Zvcm1GaWVsZFpPcmRlckF0UG9pbnQsCisgICAga0dldFNlbGVjdGVkVGV4dCwKKyAgICBrR2V0Rm9jdXNlZFRleHQsCisgICAga01heFZhbHVlID0ga0dldEZvY3VzZWRUZXh0CisgIH07CisgIEZ1enplZERhdGFQcm92aWRlciogZmRwXyA9IG51bGxwdHI7Cit9OworCisvLyBQb3NzaWJsZSBuYW1lcyBvZiBhbiBYRkEgRm9ybUNhbGMgc2NyaXB0IGZ1bmN0aW9uCitzdGQ6OnN0cmluZyBHZW5YZmFGb3JtQ2FsY1NjcmlwdEZ1bmNOYW1lKEZ1enplZERhdGFQcm92aWRlciogZGF0YV9wcm92aWRlcikgeworICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qga1hmYVNjcmlwdEZ1bmNzW10gPSB7CisgICAgICAiQWJzIiwgICAgICAgIkFwciIsICAgICAgICAiQXQiLCAgICAgICAgICAgIkF2ZyIsICAgICAgICAgICJDZWlsIiwKKyAgICAgICJDaG9vc2UiLCAgICAiQ29uY2F0IiwgICAgICJDb3VudCIsICAgICAgICAiQ3Rlcm0iLCAgICAgICAgIkRhdGUiLAorICAgICAgIkRhdGUyTnVtIiwgICJEYXRlRm10IiwgICAgIkRlY29kZSIsICAgICAgICJFbmNvZGUiLCAgICAgICAiRXZhbCIsCisgICAgICAiRXhpc3RzIiwgICAgIkZsb29yIiwgICAgICAiRm9ybWF0IiwgICAgICAgIkZWIiwgICAgICAgICAgICJHZXQiLAorICAgICAgIkhhc1ZhbHVlIiwgICJJZiIsICAgICAgICAgIklwbXQiLCAgICAgICAgICJJc29EYXRlMk51bSIsICAiSXNvVGltZTJOdW0iLAorICAgICAgIkxlZnQiLCAgICAgICJMZW4iLCAgICAgICAgIkxvY2FsRGF0ZUZtdCIsICJMb2NhbFRpbWVGbXQiLCAiTG93ZXIiLAorICAgICAgIkx0cmltIiwgICAgICJNYXgiLCAgICAgICAgIk1pbiIsICAgICAgICAgICJNb2QiLCAgICAgICAgICAiTlBWIiwKKyAgICAgICJOdW0yRGF0ZSIsICAiTnVtMkdNVGltZSIsICJOdW0yVGltZSIsICAgICAiT25lb2YiLCAgICAgICAgIlBhcnNlIiwKKyAgICAgICJQbXQiLCAgICAgICAiUG9zdCIsICAgICAgICJQUG10IiwgICAgICAgICAiUHV0IiwgICAgICAgICAgIlBWIiwKKyAgICAgICJSYXRlIiwgICAgICAiUmVmIiwgICAgICAgICJSZXBsYWNlIiwgICAgICAiUmlnaHQiLCAgICAgICAgIlJvdW5kIiwKKyAgICAgICJSdHJpbSIsICAgICAiU3BhY2UiLCAgICAgICJTdHIiLCAgICAgICAgICAiU3R1ZmYiLCAgICAgICAgIlN1YnN0ciIsCisgICAgICAiU3VtIiwgICAgICAgIlRlcm0iLCAgICAgICAiVGltZSIsICAgICAgICAgIlRpbWUyTnVtIiwgICAgICJUaW1lRm10IiwKKyAgICAgICJUcmFuc2xhdGUiLCAiVW5pdFR5cGUiLCAgICJVbml0VmFsdWUiLCAgICAiVXBwZXIiLCAgICAgICAgIlV1aWQiLAorICAgICAgIldpdGhpbiIsICAgICJXb3JkTnVtIiwKKyAgfTsKKworICBzaXplX3QgZWxlbV9zZWxlY3RvciA9IGRhdGFfcHJvdmlkZXItPkNvbnN1bWVJbnRlZ3JhbEluUmFuZ2U8c2l6ZV90PigKKyAgICAgIDAsIHN0ZDo6c2l6ZShrWGZhU2NyaXB0RnVuY3MpIC0gMSk7CisgIHJldHVybiBrWGZhU2NyaXB0RnVuY3NbZWxlbV9zZWxlY3Rvcl07Cit9CisKK3N0ZDo6c3RyaW5nIE1heWJlUXVvdGUoRnV6emVkRGF0YVByb3ZpZGVyKiBkYXRhX3Byb3ZpZGVyLCBzdGQ6OnN0cmluZyBib2R5KSB7CisgIGlmIChkYXRhX3Byb3ZpZGVyLT5Db25zdW1lSW50ZWdyYWxJblJhbmdlPHVpbnQzMl90PigwLCAxMDApIDwgMjApIHsKKyAgICByZXR1cm4gIlwiIiArIGJvZHkgKyAiXCIiOworICB9CisgIHJldHVybiBib2R5OworfQorCisvLyBQb3NzaWJsZSBhcmd1bWVudHMgdG8gYSBYRkEgc2NyaXB0IGZ1bmN0aW9uCitzdGQ6OnN0cmluZyBHZW5YZmFTY3JpcHRQYXJhbShGdXp6ZWREYXRhUHJvdmlkZXIqIGRhdGFfcHJvdmlkZXIpIHsKKyAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGtYZmFGdW5jUGFyYW1zW10gPSB7CisgICAgICAiJCIsCisgICAgICAiLTAiLAorICAgICAgIjA0LzEzLzIwMTkiLAorICAgICAgIi4wNSIsCisgICAgICAiLTEiLAorICAgICAgIjEiLAorICAgICAgIiAxIHwgMCIsCisgICAgICAiMTAgKiAxMCAqIDEwICogOSAqIDEyMyIsCisgICAgICAiMTAyNCIsCisgICAgICAiMTAgKiBhICsgOSIsCisgICAgICAiMS4yMTMxIiwKKyAgICAgICJbMSwyLDNdIiwKKyAgICAgICIlMTIzIiwKKyAgICAgICJbMSwyLDNdWzBdIiwKKyAgICAgICIxMjMxMjQiLAorICAgICAgIjEyMzM0MjEyMyIsCisgICAgICAiMTM6MTM6MTMiLAorICAgICAgIjEzOjEzOjEzIEdNVCIsCisgICAgICAiMTk5NjAzMTVUMjA6MjA6MjAiLAorICAgICAgIjEgYW5kIDEiLAorICAgICAgIjEgYW5kIDIiLAorICAgICAgIjIiLAorICAgICAgIjIwMDAwMjAxIiwKKyAgICAgICIyMDA5LTA2LTAxVDEzOjQ1OjMwIiwKKyAgICAgICIyMDA5LTA2LTE1VDAxOjQ1OjMwIiwKKyAgICAgICIyMDA5LTA2LTE1VDEzOjQ1OjMwLTA3OjAwIiwKKyAgICAgICIyMDA5LTA2LTE1VDEzOjQ1OjMwLjUyNzUwMDAiLAorICAgICAgIiAyIDwgMyArIDEiLAorICAgICAgIjIgKyAzICsgOSIsCisgICAgICAiMyIsCisgICAgICAiMyAqIDEiLAorICAgICAgIjMgLTkiLAorICAgICAgIjUgPCA1IiwKKyAgICAgICItOTkiLAorICAgICAgIjk5IiwKKyAgICAgICI5OTk5OTk5IiwKKyAgICAgICI5OTk5OTk5OTk5OSIsCisgICAgICAiQSIsCisgICAgICAiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIsCisgICAgICAiXHhjM1x4ODFceGMzXHg4Mlx4YzNceDgzXHhjM1x4ODRceGMzXHg4NVx4YzNceDg2IiwKKyAgICAgICI8YT48Yj48L2I+PC9hPiIsCisgICAgICAiJkFjaXJjOyIsCisgICAgICAiJkFFbGlnOyZBYWN1dGU7JkFjaXJjOyZBYWN1dGU7IiwKKyAgICAgICJBbW91bnRbKl0iLAorICAgICAgIn4hQCMkJV4mYW1wOyooKV8rIiwKKyAgICAgICImYW1wO3wiLAorICAgICAgIiZhcG9zIiwKKyAgICAgICJhcHIiLAorICAgICAgImFwcmlsIiwKKyAgICAgICJCIiwKKyAgICAgICI8YnI+IiwKKyAgICAgICJDIiwKKyAgICAgICJkZV9ERSIsCisgICAgICAiZXNfRVMiLAorICAgICAgImZlYiIsCisgICAgICAiZmVidWFyeSIsCisgICAgICAiSEg6TU06U1MiLAorICAgICAgIjxodG1sPiIsCisgICAgICAiaHRtbCIsCisgICAgICAiSFRNTCIsCisgICAgICAiamFuIiwKKyAgICAgICJqYW51YXJ5IiwKKyAgICAgICJqc29uIiwKKyAgICAgICJsa2RqZmdsc2RrZmdqIiwKKyAgICAgICJtYXIiLAorICAgICAgIm1hcmNoIiwKKyAgICAgICJuYW1lWzBdIiwKKyAgICAgICJuYW1lMSIsCisgICAgICAibmFtZTIiLAorICAgICAgIm5hbWUzIiwKKyAgICAgICJuYW1lNCIsCisgICAgICAibmFtZVsqXS5udW1BbW91bnQiLAorICAgICAgIiZxdW90OyIsCisgICAgICAiU3BhY2UiLAorICAgICAgIlN0ciIsCisgICAgICAidXJsIiwKKyAgICAgICJ4aHRtbCIsCisgICAgICAieG1sIiwKKyAgICAgICJYTUwmcXVvdDsiLAorICB9OworCisgIHNpemVfdCBlbGVtX3NlbGVjdG9yID0gZGF0YV9wcm92aWRlci0+Q29uc3VtZUludGVncmFsSW5SYW5nZTxzaXplX3Q+KAorICAgICAgMCwgc3RkOjpzaXplKGtYZmFGdW5jUGFyYW1zKSAtIDEpOworICByZXR1cm4gTWF5YmVRdW90ZShkYXRhX3Byb3ZpZGVyLCBrWGZhRnVuY1BhcmFtc1tlbGVtX3NlbGVjdG9yXSk7Cit9CisKKy8vIFBvc3NpYmxlIFhGQSB0YWdzCitzdGQ6OnN0cmluZyBHZW5YZmFUYWcoRnV6emVkRGF0YVByb3ZpZGVyKiBkYXRhX3Byb3ZpZGVyKSB7CisgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBrWGZhRWxlbVRhZ3NbXSA9IHsKKyAgICAgICJhY2Nlc3NpYmxlQ29udGVudCIsCisgICAgICAiYWNyb2JhdCIsCisgICAgICAiYWNyb2JhdCIsCisgICAgICAiYWNyb2JhdDciLAorICAgICAgIkFEQkVfSlNDb25zb2xlIiwKKyAgICAgICJBREJFX0pTRGVidWdnZXIiLAorICAgICAgImFkZFNpbGVudFByaW50IiwKKyAgICAgICJhZGRWaWV3ZXJQcmVmZXJlbmNlcyIsCisgICAgICAiYWRqdXN0RGF0YSIsCisgICAgICAiYWRvYmVFeHRlbnNpb25MZXZlbCIsCisgICAgICAiYWdlbnQiLAorICAgICAgImFsd2F5c0VtYmVkIiwKKyAgICAgICJhbWQiLAorICAgICAgImFwcGVhcmFuY2VGaWx0ZXIiLAorICAgICAgImFyYyIsCisgICAgICAiYXJlYSIsCisgICAgICAiYXNzaXN0IiwKKyAgICAgICJhdHRyaWJ1dGVzIiwKKyAgICAgICJhdXRvU2F2ZSIsCisgICAgICAiYmFyY29kZSIsCisgICAgICAiYmFzZSIsCisgICAgICAiYmF0Y2hPdXRwdXQiLAorICAgICAgImJlaGF2aW9yT3ZlcnJpZGUiLAorICAgICAgImJpbmQiLAorICAgICAgImJpbmRJdGVtcyIsCisgICAgICAiYm9va2VuZCIsCisgICAgICAiYm9vbGVhbiIsCisgICAgICAiYm9yZGVyIiwKKyAgICAgICJicmVhayIsCisgICAgICAiYnJlYWtBZnRlciIsCisgICAgICAiYnJlYWtCZWZvcmUiLAorICAgICAgImJ1dHRvbiIsCisgICAgICAiY2FjaGUiLAorICAgICAgImNhbGN1bGF0ZSIsCisgICAgICAiY2FsZW5kYXJTeW1ib2xzIiwKKyAgICAgICJjYXB0aW9uIiwKKyAgICAgICJjZXJ0aWZpY2F0ZSIsCisgICAgICAiY2VydGlmaWNhdGVzIiwKKyAgICAgICJjaGFuZ2UiLAorICAgICAgImNoZWNrQnV0dG9uIiwKKyAgICAgICJjaG9pY2VMaXN0IiwKKyAgICAgICJjb2xvciIsCisgICAgICAiY29tYiIsCisgICAgICAiY29tbWFuZCIsCisgICAgICAiY29tbW9uIiwKKyAgICAgICJjb21wcmVzcyIsCisgICAgICAiY29tcHJlc3Npb24iLAorICAgICAgImNvbXByZXNzTG9naWNhbFN0cnVjdHVyZSIsCisgICAgICAiY29tcHJlc3NPYmplY3RTdHJlYW0iLAorICAgICAgImNvbmZpZyIsCisgICAgICAiY29uZmlnIiwKKyAgICAgICJjb25mb3JtYW5jZSIsCisgICAgICAiY29ubmVjdCIsCisgICAgICAiY29ubmVjdGlvblNldCIsCisgICAgICAiY29ubmVjdFN0cmluZyIsCisgICAgICAiY29udGVudEFyZWEiLAorICAgICAgImNvbnRlbnRDb3B5IiwKKyAgICAgICJjb3BpZXMiLAorICAgICAgImNvcm5lciIsCisgICAgICAiY3JlYXRvciIsCisgICAgICAiY3VycmVuY3lTeW1ib2wiLAorICAgICAgImN1cnJlbmN5U3ltYm9scyIsCisgICAgICAiY3VycmVudFBhZ2UiLAorICAgICAgImRhdGEiLAorICAgICAgImRhdGFHcm91cCIsCisgICAgICAiZGF0YU1vZGVsIiwKKyAgICAgICJkYXRhVmFsdWUiLAorICAgICAgImRhdGFXaW5kb3ciLAorICAgICAgImRhdGUiLAorICAgICAgImRhdGVQYXR0ZXJuIiwKKyAgICAgICJkYXRlUGF0dGVybnMiLAorICAgICAgImRhdGVUaW1lIiwKKyAgICAgICJkYXRlVGltZUVkaXQiLAorICAgICAgImRhdGVUaW1lU3ltYm9scyIsCisgICAgICAiZGF5IiwKKyAgICAgICJkYXlOYW1lcyIsCisgICAgICAiZGVidWciLAorICAgICAgImRlY2ltYWwiLAorICAgICAgImRlZmF1bHRUeXBlZmFjZSIsCisgICAgICAiZGVmYXVsdFVpIiwKKyAgICAgICJkZWxldGUiLAorICAgICAgImRlbHRhIiwKKyAgICAgICJkZWx0YXMiLAorICAgICAgImRlc2MiLAorICAgICAgImRlc3RpbmF0aW9uIiwKKyAgICAgICJkaWdlc3RNZXRob2QiLAorICAgICAgImRpZ2VzdE1ldGhvZHMiLAorICAgICAgImRvY3VtZW50QXNzZW1ibHkiLAorICAgICAgImRyYXciLAorICAgICAgImRyaXZlciIsCisgICAgICAiZFNpZ0RhdGEiLAorICAgICAgImR1cGxleE9wdGlvbiIsCisgICAgICAiZHluYW1pY1JlbmRlciIsCisgICAgICAiZWRnZSIsCisgICAgICAiZWZmZWN0aXZlSW5wdXRQb2xpY3kiLAorICAgICAgImVmZmVjdGl2ZU91dHB1dFBvbGljeSIsCisgICAgICAiZW1iZWQiLAorICAgICAgImVuY29kaW5nIiwKKyAgICAgICJlbmNvZGluZ3MiLAorICAgICAgImVuY3J5cHQiLAorICAgICAgImVuY3J5cHRpb24iLAorICAgICAgImVuY3J5cHRpb25MZXZlbCIsCisgICAgICAiZW5jcnlwdGlvbk1ldGhvZCIsCisgICAgICAiZW5jcnlwdGlvbk1ldGhvZHMiLAorICAgICAgImVuZm9yY2UiLAorICAgICAgImVxdWF0ZSIsCisgICAgICAiZXF1YXRlUmFuZ2UiLAorICAgICAgImVyYSIsCisgICAgICAiZXJhTmFtZXMiLAorICAgICAgImV2ZW50IiwKKyAgICAgICJldmVudFBzZXVkb01vZGVsIiwKKyAgICAgICJleGNsR3JvdXAiLAorICAgICAgImV4Y2x1ZGUiLAorICAgICAgImV4Y2x1ZGVOUyIsCisgICAgICAiZXhEYXRhIiwKKyAgICAgICJleGVjdXRlIiwKKyAgICAgICJleE9iamVjdCIsCisgICAgICAiZXh0cmFzIiwKKyAgICAgICJmaWVsZCIsCisgICAgICAiZmlsbCIsCisgICAgICAiZmlsdGVyIiwKKyAgICAgICJmbGlwTGFiZWwiLAorICAgICAgImZsb2F0IiwKKyAgICAgICJmb250IiwKKyAgICAgICJmb250SW5mbyIsCisgICAgICAiZm9ybSIsCisgICAgICAiZm9ybWF0IiwKKyAgICAgICJmb3JtRmllbGRGaWxsaW5nIiwKKyAgICAgICJncm91cFBhcmVudCIsCisgICAgICAiaGFuZGxlciIsCisgICAgICAiaG9zdFBzZXVkb01vZGVsIiwKKyAgICAgICJoeXBoZW5hdGlvbiIsCisgICAgICAiaWZFbXB0eSIsCisgICAgICAiaW1hZ2UiLAorICAgICAgImltYWdlRWRpdCIsCisgICAgICAiaW5jbHVkZVhEUENvbnRlbnQiLAorICAgICAgImluY3JlbWVudGFsTG9hZCIsCisgICAgICAiaW5jcmVtZW50YWxNZXJnZSIsCisgICAgICAiaW5zZXJ0IiwKKyAgICAgICJpbnN0YW5jZU1hbmFnZXIiLAorICAgICAgImludGVnZXIiLAorICAgICAgImludGVyYWN0aXZlIiwKKyAgICAgICJpc3N1ZXJzIiwKKyAgICAgICJpdGVtcyIsCisgICAgICAiam9nIiwKKyAgICAgICJrZWVwIiwKKyAgICAgICJrZXlVc2FnZSIsCisgICAgICAibGFiZWxQcmludGVyIiwKKyAgICAgICJsYXlvdXQiLAorICAgICAgImxheW91dFBzZXVkb01vZGVsIiwKKyAgICAgICJsZXZlbCIsCisgICAgICAibGluZSIsCisgICAgICAibGluZWFyIiwKKyAgICAgICJsaW5lYXJpemVkIiwKKyAgICAgICJsaXN0IiwKKyAgICAgICJsb2NhbGUiLAorICAgICAgImxvY2FsZVNldCIsCisgICAgICAibG9ja0RvY3VtZW50IiwKKyAgICAgICJsb2ciLAorICAgICAgImxvZ1BzZXVkb01vZGVsIiwKKyAgICAgICJtYW5pZmVzdCIsCisgICAgICAibWFwIiwKKyAgICAgICJtYXJnaW4iLAorICAgICAgIm1kcCIsCisgICAgICAibWVkaXVtIiwKKyAgICAgICJtZWRpdW1JbmZvIiwKKyAgICAgICJtZXJpZGllbSIsCisgICAgICAibWVyaWRpZW1OYW1lcyIsCisgICAgICAibWVzc2FnZSIsCisgICAgICAibWVzc2FnaW5nIiwKKyAgICAgICJtb2RlIiwKKyAgICAgICJtb2RpZnlBbm5vdHMiLAorICAgICAgIm1vbnRoIiwKKyAgICAgICJtb250aE5hbWVzIiwKKyAgICAgICJtc2dJZCIsCisgICAgICAibmFtZUF0dHIiLAorICAgICAgIm5ldmVyRW1iZWQiLAorICAgICAgIm51bWJlck9mQ29waWVzIiwKKyAgICAgICJudW1iZXJQYXR0ZXJuIiwKKyAgICAgICJudW1iZXJQYXR0ZXJucyIsCisgICAgICAibnVtYmVyU3ltYm9sIiwKKyAgICAgICJudW1iZXJTeW1ib2xzIiwKKyAgICAgICJudW1lcmljRWRpdCIsCisgICAgICAib2JqZWN0IiwKKyAgICAgICJvY2N1ciIsCisgICAgICAib2lkIiwKKyAgICAgICJvaWRzIiwKKyAgICAgICJvcGVuQWN0aW9uIiwKKyAgICAgICJvcGVyYXRpb24iLAorICAgICAgIm91dHB1dCIsCisgICAgICAib3V0cHV0QmluIiwKKyAgICAgICJvdXRwdXRYU0wiLAorICAgICAgIm92ZXJmbG93IiwKKyAgICAgICJvdmVycHJpbnQiLAorICAgICAgInBhY2tldCIsCisgICAgICAicGFja2V0cyIsCisgICAgICAicGFnZUFyZWEiLAorICAgICAgInBhZ2VPZmZzZXQiLAorICAgICAgInBhZ2VSYW5nZSIsCisgICAgICAicGFnZVNldCIsCisgICAgICAicGFnaW5hdGlvbiIsCisgICAgICAicGFnaW5hdGlvbk92ZXJyaWRlIiwKKyAgICAgICJwYXJhIiwKKyAgICAgICJwYXJ0IiwKKyAgICAgICJwYXNzd29yZCIsCisgICAgICAicGFzc3dvcmRFZGl0IiwKKyAgICAgICJwYXR0ZXJuIiwKKyAgICAgICJwY2wiLAorICAgICAgInBkZiIsCisgICAgICAicGRmYSIsCisgICAgICAicGVybWlzc2lvbnMiLAorICAgICAgInBpY2tUcmF5QnlQREZTaXplIiwKKyAgICAgICJwaWN0dXJlIiwKKyAgICAgICJwbGFpbnRleHRNZXRhZGF0YSIsCisgICAgICAicHJlc2VuY2UiLAorICAgICAgInByZXNlbnQiLAorICAgICAgInByZXNlbnQiLAorICAgICAgInByaW50IiwKKyAgICAgICJwcmludGVyTmFtZSIsCisgICAgICAicHJpbnRIaWdoUXVhbGl0eSIsCisgICAgICAicHJpbnRTY2FsaW5nIiwKKyAgICAgICJwcm9kdWNlciIsCisgICAgICAicHJvdG8iLAorICAgICAgInBzIiwKKyAgICAgICJwc01hcCIsCisgICAgICAicXVlcnkiLAorICAgICAgInJhZGlhbCIsCisgICAgICAicmFuZ2UiLAorICAgICAgInJlYXNvbiIsCisgICAgICAicmVhc29ucyIsCisgICAgICAicmVjb3JkIiwKKyAgICAgICJyZWNvcmRTZXQiLAorICAgICAgInJlY3RhbmdsZSIsCisgICAgICAicmVmIiwKKyAgICAgICJyZWxldmFudCIsCisgICAgICAicmVuYW1lIiwKKyAgICAgICJyZW5kZXJQb2xpY3kiLAorICAgICAgInJvb3RFbGVtZW50IiwKKyAgICAgICJydW5TY3JpcHRzIiwKKyAgICAgICJzY3JpcHQiLAorICAgICAgInNjcmlwdE1vZGVsIiwKKyAgICAgICJzZWxlY3QiLAorICAgICAgInNldFByb3BlcnR5IiwKKyAgICAgICJzZXZlcml0eSIsCisgICAgICAic2lnbmF0dXJlIiwKKyAgICAgICJzaWduYXR1cmVQcm9wZXJ0aWVzIiwKKyAgICAgICJzaWduYXR1cmVQc2V1ZG9Nb2RlbCIsCisgICAgICAic2lnbkRhdGEiLAorICAgICAgInNpZ25pbmciLAorICAgICAgInNpbGVudFByaW50IiwKKyAgICAgICJzb2FwQWN0aW9uIiwKKyAgICAgICJzb2FwQWRkcmVzcyIsCisgICAgICAic29saWQiLAorICAgICAgInNvdXJjZSIsCisgICAgICAic291cmNlU2V0IiwKKyAgICAgICJzcGVhayIsCisgICAgICAic3RhcGxlIiwKKyAgICAgICJzdGFydE5vZGUiLAorICAgICAgInN0YXJ0UGFnZSIsCisgICAgICAic3RpcHBsZSIsCisgICAgICAic3ViZm9ybSIsCisgICAgICAic3ViZm9ybSIsCisgICAgICAic3ViZm9ybVNldCIsCisgICAgICAic3ViamVjdEROIiwKKyAgICAgICJzdWJqZWN0RE5zIiwKKyAgICAgICJzdWJtaXQiLAorICAgICAgInN1Ym1pdEZvcm1hdCIsCisgICAgICAic3VibWl0VXJsIiwKKyAgICAgICJzdWJzZXRCZWxvdyIsCisgICAgICAic3VwcHJlc3NCYW5uZXIiLAorICAgICAgInRhZ2dlZCIsCisgICAgICAidGVtcGxhdGUiLAorICAgICAgInRlbXBsYXRlIiwKKyAgICAgICJ0ZW1wbGF0ZUNhY2hlIiwKKyAgICAgICIjdGV4dCIsCisgICAgICAidGV4dCIsCisgICAgICAidGV4dGVkaXQiLAorICAgICAgInRleHRFZGl0IiwKKyAgICAgICJ0aHJlc2hvbGQiLAorICAgICAgInRpbWUiLAorICAgICAgInRpbWVQYXR0ZXJuIiwKKyAgICAgICJ0aW1lUGF0dGVybnMiLAorICAgICAgInRpbWVTdGFtcCIsCisgICAgICAidG8iLAorICAgICAgInRvb2xUaXAiLAorICAgICAgInRyYWNlIiwKKyAgICAgICJ0cmFuc2Zvcm0iLAorICAgICAgInRyYXZlcnNhbCIsCisgICAgICAidHJhdmVyc2UiLAorICAgICAgInRyZWVMaXN0IiwKKyAgICAgICJ0eXBlIiwKKyAgICAgICJ0eXBlZmFjZSIsCisgICAgICAidHlwZWZhY2VzIiwKKyAgICAgICJ1aSIsCisgICAgICAidXBkYXRlIiwKKyAgICAgICJ1cmkiLAorICAgICAgInVzZXIiLAorICAgICAgInZhbGlkYXRlIiwKKyAgICAgICJ2YWxpZGF0ZSIsCisgICAgICAidmFsaWRhdGVBcHByb3ZhbFNpZ25hdHVyZXMiLAorICAgICAgInZhbGlkYXRpb25NZXNzYWdpbmciLAorICAgICAgInZhbHVlIiwKKyAgICAgICJ2YXJpYWJsZXMiLAorICAgICAgInZlcnNpb24iLAorICAgICAgInZlcnNpb25Db250cm9sIiwKKyAgICAgICJ2aWV3ZXJQcmVmZXJlbmNlcyIsCisgICAgICAid2ViQ2xpZW50IiwKKyAgICAgICJ3aGl0ZXNwYWNlIiwKKyAgICAgICJ3aW5kb3ciLAorICAgICAgIndzZGxBZGRyZXNzIiwKKyAgICAgICJ3c2RsQ29ubmVjdGlvbiIsCisgICAgICAieGRjIiwKKyAgICAgICJ4ZHAiLAorICAgICAgInhmYSIsCisgICAgICAiI3hIVE1MIiwKKyAgICAgICIjeG1sIiwKKyAgICAgICJ4bWxDb25uZWN0aW9uIiwKKyAgICAgICJ4c2RDb25uZWN0aW9uIiwKKyAgICAgICJ4c2wiLAorICAgICAgInpwbCIsCisgIH07CisKKyAgc2l6ZV90IGVsZW1fc2VsZWN0b3IgPSBkYXRhX3Byb3ZpZGVyLT5Db25zdW1lSW50ZWdyYWxJblJhbmdlPHNpemVfdD4oCisgICAgICAwLCBzdGQ6OnNpemUoa1hmYUVsZW1UYWdzKSAtIDEpOworICByZXR1cm4ga1hmYUVsZW1UYWdzW2VsZW1fc2VsZWN0b3JdOworfQorCisvLyBQb3NzaWJsZSBYRkEgYXR0cmlidXRlcyB2YWx1ZXMKK3N0ZDo6c3RyaW5nIEdlblhmYVRhZ1ZhbHVlKEZ1enplZERhdGFQcm92aWRlciogZGF0YV9wcm92aWRlcikgeworICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qga1hmYVRhZ1ZhbHNbXSA9IHsKKyAgICAgICIwIiwgICAgICAgICAiMHB0IiwgICAgICAgICAiLTEiLAorICAgICAgIjEyMyIsICAgICAgICIxcHQiLCAgICAgICAgICIyMDMuMm1tIiwKKyAgICAgICIyMi4xNDA0bW0iLCAiMjU1IiwgICAgICAgICAiMjU2IiwKKyAgICAgICIzMjEiLCAgICAgICAiNTQzMS4yMW1tIiwgICAiNi4zNW1tIiwKKyAgICAgICI4aW4iLCAgICAgICAiOHB0IiwgICAgICAgICAiYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IiwKKyAgICAgICJib2xkIiwgICAgICAiYm9sZCIsICAgICAgICAiY2hhbmdlIiwKKyAgICAgICJjbGljayIsICAgICAiY29uc3VtZURhdGEiLCAiZG9jUmVhZHkiLAorICAgICAgImVuX1VTIiwgICAgICJmb3JtMSIsICAgICAgICJpbml0aWFsaXplIiwKKyAgICAgICJpdGFsaWMiLCAgICAibWlkZGxlIiwgICAgICAibmFtZTIiLAorICAgICAgIm5hbWUzIiwgICAgICJuYW1lNCIsICAgICAgICJuYW1lNSIsCisgICAgICAib25FbnRlciIsICAgIlBhZ2UxIiwgICAgICAgIlJhZGlvTGlzdFswXSIsCisgICAgICAic3ViZm9ybV8xIiwgInRiIiwgICAgICAgICAgIlZlcmRhbmEiLAorICB9OworCisgIHNpemVfdCBlbGVtX3NlbGVjdG9yID0gZGF0YV9wcm92aWRlci0+Q29uc3VtZUludGVncmFsSW5SYW5nZTxzaXplX3Q+KAorICAgICAgMCwgc3RkOjpzaXplKGtYZmFUYWdWYWxzKSAtIDEpOworICByZXR1cm4gTWF5YmVRdW90ZShkYXRhX3Byb3ZpZGVyLCBrWGZhVGFnVmFsc1tlbGVtX3NlbGVjdG9yXSk7Cit9CisKKy8vIHBvc3NpYmxlIFhGQSBhdHRyaWJ1dGVzCitzdGQ6OnN0cmluZyBHZW5YZmFUYWdOYW1lKEZ1enplZERhdGFQcm92aWRlciogZGF0YV9wcm92aWRlcikgeworICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qga1hmYVRhZ05hbWVzW10gPSB7CisgICAgICAiYWN0aXZpdHkiLCAgICAiYmFzZWxpbmVTaGlmdCIsCisgICAgICAiY29udGVudFR5cGUiLCAiaCIsCisgICAgICAiaWQiLCAgICAgICAgICAibGF5b3V0IiwKKyAgICAgICJsYXlvdXQiLCAgICAgICJsZWZ0SW5zZXQiLAorICAgICAgImxvY2FsZSIsICAgICAgImxvbmciLAorICAgICAgIm1hcmdpbkxlZnQiLCAgIm1hcmdpblJpZ2h0IiwKKyAgICAgICJtYXJnaW5SaWdodCIsICJtZXJnZU1vZGUiLAorICAgICAgIm5hbWUiLCAgICAgICAgInJlZiIsCisgICAgICAic2NyaXB0VGVzdCIsICAic2hvcnQiLAorICAgICAgInNpemUiLCAgICAgICAgInNwYWNlQWJvdmUiLAorICAgICAgInNwYWNlQmVsb3ciLCAgInN0YXJ0TmV3IiwKKyAgICAgICJzdG9jayIsICAgICAgICJ0ZXh0SW5kZW50IiwKKyAgICAgICJ0aW1lU3RhbXAiLCAgICJ0eXBlZmFjZSIsCisgICAgICAidXVpZCIsICAgICAgICAidkFsaWduIiwKKyAgICAgICJ2YWx1ZSIsICAgICAgICJ3IiwKKyAgICAgICJ3ZWlnaHQiLCAgICAgICJ4IiwKKyAgICAgICJ5IiwKKyAgfTsKKyAgc2l6ZV90IGVsZW1fc2VsZWN0b3IgPSBkYXRhX3Byb3ZpZGVyLT5Db25zdW1lSW50ZWdyYWxJblJhbmdlPHNpemVfdD4oCisgICAgICAwLCBzdGQ6OnNpemUoa1hmYVRhZ05hbWVzKSAtIDEpOworICByZXR1cm4ga1hmYVRhZ05hbWVzW2VsZW1fc2VsZWN0b3JdOworfQorCisvLyBXaWxsIGNyZWF0ZSBhIHNpbXBsZSBYRkEgRm9ybUNhbGMgc2NyaXB0IHRoYXQgY2FsbHMgYSBzaW5nbGUgZnVuY3Rpb24uCitzdGQ6OnN0cmluZyBHZW5YZmFGb3JtQ2FsY1NjcmlwdChGdXp6ZWREYXRhUHJvdmlkZXIqIGRhdGFfcHJvdmlkZXIpIHsKKyAgc3RkOjpzdHJpbmcgeGZhX3N0cmluZyA9IEdlblhmYUZvcm1DYWxjU2NyaXB0RnVuY05hbWUoZGF0YV9wcm92aWRlcik7CisgIHhmYV9zdHJpbmcgKz0gIigiOworCisgIC8vIEdlbmVyYXRlIHBhcmFtZXRlcnMKKyAgc2l6ZV90IG51bV9wYXJhbXMgPSBkYXRhX3Byb3ZpZGVyLT5Db25zdW1lSW50ZWdyYWxJblJhbmdlPHNpemVfdD4oMCwgMyk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtX3BhcmFtczsgaSsrKSB7CisgICAgaWYgKGkgIT0gMCkgeworICAgICAgeGZhX3N0cmluZyArPSAiLCI7CisgICAgfQorICAgIHhmYV9zdHJpbmcgKz0gR2VuWGZhU2NyaXB0UGFyYW0oZGF0YV9wcm92aWRlcik7CisgIH0KKyAgeGZhX3N0cmluZyArPSAiKSI7CisgIHJldHVybiB4ZmFfc3RyaW5nOworfQorCisvLyBYRkEgSmF2YXNjcmlwdCBsb2dpYworc3RkOjpzdHJpbmcgR2VuWGZhTmFtZShGdXp6ZWREYXRhUHJvdmlkZXIqIGRhdGFfcHJvdmlkZXIpIHsKKyAgcmV0dXJuICJuYW1lIiArIHN0ZDo6dG9fc3RyaW5nKGRhdGFfcHJvdmlkZXItPkNvbnN1bWVJbnRlZ3JhbEluUmFuZ2UoMCwgMjUpKTsKK30KKworc3RkOjpzdHJpbmcgR2V0WGZhSlNQcmltaXRpdmVUeXBlKEZ1enplZERhdGFQcm92aWRlciogZGF0YV9wcm92aWRlcikgeworICByZXR1cm4gR2VuWGZhU2NyaXB0UGFyYW0oZGF0YV9wcm92aWRlcik7Cit9CisKK3N0ZDo6c3RyaW5nIEdlblhmYUpTUlZhbHVlKEZ1enplZERhdGFQcm92aWRlciogZGF0YV9wcm92aWRlcikgeworICBpZiAoZGF0YV9wcm92aWRlci0+Q29uc3VtZUJvb2woKSkgeworICAgIHJldHVybiBHZW5YZmFTY3JpcHRQYXJhbShkYXRhX3Byb3ZpZGVyKTsKKyAgfQorCisgIHN0ZDo6c3RyaW5nIHhmYV9zdHJpbmc7CisgIGlmIChkYXRhX3Byb3ZpZGVyLT5Db25zdW1lQm9vbCgpKSB7CisgICAgeGZhX3N0cmluZyArPSAieGZhLmZvcm0uIjsKKyAgfQorCisgIC8vIEhhbmRsZSB0aGUgcG9zc2liaWxpdHkgb2YgbmVzdGVkIG5hbWVzCisgIHNpemVfdCBudW1fbmVzdHMgPSBkYXRhX3Byb3ZpZGVyLT5Db25zdW1lSW50ZWdyYWxJblJhbmdlPHNpemVfdD4oMSwgMyk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtX25lc3RzOyBpKyspIHsKKyAgICBpZiAoaSAhPSAwKSB7CisgICAgICB4ZmFfc3RyaW5nICs9ICIuIjsKKyAgICB9CisgICAgeGZhX3N0cmluZyArPSBHZW5YZmFOYW1lKGRhdGFfcHJvdmlkZXIpOworICB9CisgIHJldHVybiBNYXliZVF1b3RlKGRhdGFfcHJvdmlkZXIsIHhmYV9zdHJpbmcpOworfQorCitzdGQ6OnN0cmluZyBHZW5YZmFKU0Fzc2lnbm1lbnQoRnV6emVkRGF0YVByb3ZpZGVyKiBkYXRhX3Byb3ZpZGVyKSB7CisgIHJldHVybiBHZW5YZmFOYW1lKGRhdGFfcHJvdmlkZXIpICsgIiA9ICIgKyBHZW5YZmFKU1JWYWx1ZShkYXRhX3Byb3ZpZGVyKTsKK30KKworc3RkOjpzdHJpbmcgR2VuWGZhSlNNZXRob2RDYWxsKEZ1enplZERhdGFQcm92aWRlciogZGF0YV9wcm92aWRlcikgeworICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qga1hmYUpTRnVuY3NbXSA9IHsKKyAgICAgICJhZGRJdGVtIiwKKyAgICAgICJib3VuZEl0ZW0iLAorICAgICAgImNsZWFySXRlbXMiLAorICAgICAgImRlbGV0ZUl0ZW0iLAorICAgICAgImV4ZWNDYWxjdWxhdGUiLAorICAgICAgImV4ZWNFdmVudCIsCisgICAgICAiZXhlY0luaXRpYWxpemUiLAorICAgICAgImV4ZWNWYWxpZGF0ZSIsCisgICAgICAiZ2V0RGlzcGxheUl0ZW0iLAorICAgICAgImdldEl0ZW1TdGF0ZSIsCisgICAgICAiZ2V0U2F2ZUl0ZW0iLAorICAgICAgImV4ZWMuZm9ybS5mb3JtTm9kZXMiLAorICAgICAgImV4ZWMuZm9ybS5yZWNhbGN1bGF0ZSIsCisgICAgICAic2V0SXRlbVN0YXRlIiwKKyAgICAgICJ4ZmEuY29udGFpbmVyLmdldERlbHRhIiwKKyAgICAgICJ4ZmEuY29udGFpbmVyLmdldERlbHRhcyIsCisgICAgICAieGZhLmV2ZW50LmVtaXQiLAorICAgICAgInhmYS5ldmVudC5yZXNldCIsCisgICAgICAieGZhLmZvcm0uZXhlY0NhbGN1bGF0IiwKKyAgICAgICJ4ZmEuZm9ybS5leGVjSW5pdGlhbGl6ZSIsCisgICAgICAieGZhLmZvcm0uZXhlY1ZhbGlkYXRlIiwKKyAgICAgICJ4ZmEuZm9ybS5yZW1lcmdlIiwKKyAgICAgICJ4ZmEuaG9zdC5iZWVwIiwKKyAgICAgICJ4ZmEuaG9zdC5kb2N1bWVudENvdW50SW5CYXRjaCIsCisgICAgICAieGZhLmhvc3QuZG9jdW1lbnRJbkJhdGNoIiwKKyAgICAgICJ4ZmEuaG9zdC5leHBvcnREYXRhIiwKKyAgICAgICJ4ZmEuaG9zdC5nZXRGb2N1cyIsCisgICAgICAieGZhLmhvc3QuZ290b1VSTCIsCisgICAgICAieGZhLmhvc3QuaW1wb3J0RGF0YSIsCisgICAgICAieGZhLmhvc3QubWVzc2FnZUJveCIsCisgICAgICAieGZhLmhvc3Qub3Blbkxpc3QiLAorICAgICAgInhmYS5ob3N0LnBhZ2VEb3duIiwKKyAgICAgICJ4ZmEuaG9zdC5wYWdlVXAiLAorICAgICAgInhmYS5ob3N0LnByaW50IiwKKyAgICAgICJ4ZmEuaG9zdC5yZXNldERhdGEiLAorICAgICAgInhmYS5ob3N0LnNldEZvY3VzIiwKKyAgICAgICJ4ZmEuaG9zdC5yZXNwb25zZSIsCisgICAgICAieGZhLnJlc29sdmVOb2RlIiwKKyAgfTsKKworICBzdGQ6OnN0cmluZyB4ZmFfc3RyaW5nID0gZGF0YV9wcm92aWRlci0+UGlja1ZhbHVlSW5BcnJheShrWGZhSlNGdW5jcyk7CisgIHhmYV9zdHJpbmcgKz0gIigiOworCisgIC8vIEdldCB0aGUgcGFyYW1zCisgIHNpemVfdCBwYXJhbV9jb3VudCA9IGRhdGFfcHJvdmlkZXItPkNvbnN1bWVJbnRlZ3JhbEluUmFuZ2U8c2l6ZV90PigwLCAzKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJhbV9jb3VudDsgaSsrKSB7CisgICAgaWYgKGkgIT0gMCkgeworICAgICAgeGZhX3N0cmluZyArPSAiLCI7CisgICAgfQorICAgIHhmYV9zdHJpbmcgKz0gR2VuWGZhSlNSVmFsdWUoZGF0YV9wcm92aWRlcik7CisgIH0KKyAgeGZhX3N0cmluZyArPSAiKSI7CisgIHJldHVybiB4ZmFfc3RyaW5nOworfQorCisvLyBUaGlzIGlzIGEgc2ltcGxlIGdlbmVyYXRvciBvZiB4ZmEtYmFzZWQgamF2YXNjcmlwdC4gVGhlIGZ1bmN0aW9uIGNyZWF0ZXMKKy8vIHNpbXBsZSBqYXZhc2NyaXB0IHN0YXRlbWVudHMgdGhhdCBhcmUgcmVsYXRlZCB0byBYRkEgbG9naWMgYW5kIHRoZSBnb2FsIGlzCisvLyBub3QgdG8gY3JlYXRlIGZ1bGx5LWZsZWdlZCBqYXZhc2NyaXB0IHByb2dyYW1zIGJ1dCByYXRoZXIgdXNlIHNpbXBsZQorLy8gc3RhdGVtZW50cyB0byBlbnN1cmUgWEZBIGNvZGUgaXMgY292ZXJlZC4KK2VudW0gWEZBSlNTdGF0ZW1lbnQgeworICBrQXNzaWdubWVudCA9IDAsCisgIGtKU01ldGhvZENhbGwsCisgIGtKU09iamVjdENhbGwsCisgIGtNYXhWYWx1ZSA9IGtKU09iamVjdENhbGwKK307CisKK3N0ZDo6c3RyaW5nIEdlblhmYUpTU2NyaXB0KEZ1enplZERhdGFQcm92aWRlciogZGF0YV9wcm92aWRlcikgeworICBzdGQ6OnN0cmluZyB4ZmFfc3RyaW5nOworCisgIHNpemVfdCBudW1fc3RtdHMgPSBkYXRhX3Byb3ZpZGVyLT5Db25zdW1lSW50ZWdyYWxJblJhbmdlPHNpemVfdD4oMSwgMTApOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bV9zdG10czsgaSsrKSB7CisgICAgWEZBSlNTdGF0ZW1lbnQgc3RtdCA9IGRhdGFfcHJvdmlkZXItPkNvbnN1bWVFbnVtPFhGQUpTU3RhdGVtZW50PigpOworICAgIHN3aXRjaCAoc3RtdCkgeworICAgICAgY2FzZSBrQXNzaWdubWVudDoKKyAgICAgICAgeGZhX3N0cmluZyArPSBHZW5YZmFKU0Fzc2lnbm1lbnQoZGF0YV9wcm92aWRlcik7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBrSlNNZXRob2RDYWxsOgorICAgICAgICB4ZmFfc3RyaW5nICs9IEdlblhmYUpTTWV0aG9kQ2FsbChkYXRhX3Byb3ZpZGVyKTsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIGtKU09iamVjdENhbGw6CisgICAgICAgIHhmYV9zdHJpbmcgKz0gR2VuWGZhTmFtZShkYXRhX3Byb3ZpZGVyKTsKKyAgICAgICAgeGZhX3N0cmluZyArPSAiLiI7CisgICAgICAgIHhmYV9zdHJpbmcgKz0gR2VuWGZhSlNNZXRob2RDYWxsKGRhdGFfcHJvdmlkZXIpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgeGZhX3N0cmluZyArPSAiO1xuIjsKKyAgfQorICByZXR1cm4geGZhX3N0cmluZzsKK30KKworc3RkOjpzdHJpbmcgR2VuWGZhY3JpcHQoRnV6emVkRGF0YVByb3ZpZGVyKiBkYXRhX3Byb3ZpZGVyKSB7CisgIC8vIERldGVybWluZSBpZiB0aGlzIHNob3VsZCBiZSBhIEZvcm1DYWxjIHNjcmlwdCBvciBKYXZhc2NyaXB0LCA1MC81MCBjaGFuY2UKKyAgLy8gZm9yIGVhY2guCisgIGlmIChkYXRhX3Byb3ZpZGVyLT5Db25zdW1lQm9vbCgpKSB7CisgICAgcmV0dXJuIEdlblhmYUZvcm1DYWxjU2NyaXB0KGRhdGFfcHJvdmlkZXIpOworICB9CisgIHJldHVybiBHZW5YZmFKU1NjcmlwdChkYXRhX3Byb3ZpZGVyKTsKK30KKworLy8gV2lsbCBjcmVhdGUgYSBzaW5nbGUgWEZBIGF0dHJpYnV0ZXMsIHdpdGggYm90aCBsaHMgYW5kIHJocy4KK3N0ZDo6c3RyaW5nIGdldFhmYUVsZW1BdHRyaWJ1dGVzKEZ1enplZERhdGFQcm92aWRlciogZGF0YV9wcm92aWRlcikgeworICAvLyBHZW5lcmF0ZSBhIHNldCBvZiB0YWdzLCBhbmQgYSBzZXQgb2YgdmFsdWVzIGZvciB0aGUgdGFncy4KKyAgcmV0dXJuIEdlblhmYVRhZ05hbWUoZGF0YV9wcm92aWRlcikgKyAiPSIgKyBHZW5YZmFUYWdWYWx1ZShkYXRhX3Byb3ZpZGVyKTsKK30KKworLy8gQ3JlYXRlcyBhbiBYRkEgc3RydWN0dXJlIHdyYXBwZWQgaW4gPHhkcCB0YWdzLgorc3RkOjpzdHJpbmcgR2VuWGZhVHJlZShGdXp6ZWREYXRhUHJvdmlkZXIqIGRhdGFfcHJvdmlkZXIpIHsKKyAgc3RkOjpzdHJpbmcgeGZhX3N0cmluZyA9ICI8eGRwIHhtbG5zPVwiaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvXCI+IjsKKworICAvLyBPbmUgc3RhY2sgaXRlcmF0aW9uCisgIGludCBzdGFja19pdGVyYXRpb25zID0gZGF0YV9wcm92aWRlci0+Q29uc3VtZUludGVncmFsSW5SYW5nZSgxLCAzKTsKKyAgZm9yIChpbnQgc2kgPSAwOyBzaSA8IHN0YWNrX2l0ZXJhdGlvbnM7IHNpKyspIHsKKyAgICBpbnQgZWxlbV9jb3VudCA9IGRhdGFfcHJvdmlkZXItPkNvbnN1bWVJbnRlZ3JhbEluUmFuZ2UoMSwgNik7CisgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHhtbF9zdGFjazsKKyAgICB4bWxfc3RhY2sucmVzZXJ2ZShlbGVtX2NvdW50KTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGVsZW1fY291bnQ7IGkrKykgeworICAgICAgc3RkOjpzdHJpbmcgdGFnID0gR2VuWGZhVGFnKGRhdGFfcHJvdmlkZXIpOworICAgICAgeGZhX3N0cmluZyArPSAiPCIgKyB0YWc7CisKKyAgICAgIC8vIGluIDMwJSBvZiBjYXNlcywgYWRkIGF0dHJpYnV0ZXMKKyAgICAgIGlmIChkYXRhX3Byb3ZpZGVyLT5Db25zdW1lSW50ZWdyYWxJblJhbmdlKDEsIDEwMCkgPiA3MCkgeworICAgICAgICBzaXplX3QgYXR0cmlidXRlX2NvdW50ID0gZGF0YV9wcm92aWRlci0+Q29uc3VtZUludGVncmFsSW5SYW5nZSgxLCA1KTsKKyAgICAgICAgZm9yICg7IDAgPCBhdHRyaWJ1dGVfY291bnQ7IGF0dHJpYnV0ZV9jb3VudC0tKSB7CisgICAgICAgICAgeGZhX3N0cmluZyArPSAiICIgKyBnZXRYZmFFbGVtQXR0cmlidXRlcyhkYXRhX3Byb3ZpZGVyKTsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgeGZhX3N0cmluZyArPSAiPiI7CisKKyAgICAgIC8vIElmIG5lZWRlZCwgYWRkIGEgYm9keSB0byB0aGUgdGFnCisgICAgICBpZiAodGFnID09ICJzY3JpcHQiKSB7CisgICAgICAgIHhmYV9zdHJpbmcgKz0gR2VuWGZhY3JpcHQoZGF0YV9wcm92aWRlcik7CisgICAgICB9CisKKyAgICAgIC8vIFB1c2ggdGhlIHRhZyB0byB0aGUgc3RhY2sgc28gd2UgY2FuIGNsb3NlIGl0IHdoZW4gZG9uZQorICAgICAgeG1sX3N0YWNrLnB1c2hfYmFjayh0YWcpOworICAgIH0KKyAgICBmb3IgKGNvbnN0IHN0ZDo6c3RyaW5nJiB0YWcgOiBwZGZpdW06OmJhc2U6OlJldmVyc2VkKHhtbF9zdGFjaykpIHsKKyAgICAgIHhmYV9zdHJpbmcgKz0gIjwvIiArIHRhZyArICI+IjsKKyAgICB9CisgIH0KKyAgeGZhX3N0cmluZyArPSAiPC94ZHA+IjsKKyAgcmV0dXJuIHhmYV9zdHJpbmc7Cit9CisKK2V4dGVybiAiQyIgaW50IExMVk1GdXp6ZXJUZXN0T25lSW5wdXQoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpIHsKKyAgRnV6emVkRGF0YVByb3ZpZGVyIGRhdGFfcHJvdmlkZXIoZGF0YSwgc2l6ZSk7CisgIHN0ZDo6c3RyaW5nIHhmYV9zdHJpbmcgPSBHZW5YZmFUcmVlKCZkYXRhX3Byb3ZpZGVyKTsKKworICAvLyBBZGQgMSBmb3IgbmV3bGluZSBiZWZvcmUgZW5kc3RyZWFtLgorICBzdGQ6OnN0cmluZyB4ZmFfc3RyZWFtX2xlbiA9IHN0ZDo6dG9fc3RyaW5nKHhmYV9zdHJpbmcuc2l6ZSgpICsgMSk7CisKKyAgLy8gQ29tcG9zZSB0aGUgZnV6emVyCisgIHN0ZDo6c3RyaW5nIHhmYV9maW5hbF9zdHIgPSBzdGQ6OnN0cmluZyhrU2ltcGxlUGRmVGVtcGxhdGUpOworICB4ZmFfZmluYWxfc3RyLnJlcGxhY2UoeGZhX2ZpbmFsX3N0ci5maW5kKCIkMSIpLCAyLCB4ZmFfc3RyZWFtX2xlbik7CisgIHhmYV9maW5hbF9zdHIucmVwbGFjZSh4ZmFfZmluYWxfc3RyLmZpbmQoIiQyIiksIDIsIHhmYV9zdHJpbmcpOworCisjaWZkZWYgUERGSVVNX0ZVWlpFUl9EVU1QCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgeGZhX2ZpbmFsX3N0ci5zaXplKCk7IGkrKykgeworICAgIHB1dGMoeGZhX2ZpbmFsX3N0cltpXSwgc3Rkb3V0KTsKKyAgfQorI2VuZGlmCisKKyAgUERGaXVtWEZBRnV6emVyIGZ1enplcjsKKyAgZnV6emVyLlNldEZkcCgmZGF0YV9wcm92aWRlcik7CisgIGZ1enplci5SZW5kZXJQZGYoeGZhX2ZpbmFsX3N0ci5jX3N0cigpLCB4ZmFfZmluYWxfc3RyLnNpemUoKSk7CisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZl94ZmFfcmF3X2Z1enplci5jYyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfeGZhX3Jhd19mdXp6ZXIuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRjZTAyZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfeGZhX3Jhd19mdXp6ZXIuY2MKQEAgLTAsMCArMSwxMDEgQEAKKy8vIENvcHlyaWdodCAyMDIxIFRoZSBQREZpdW0gQXV0aG9ycworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2luY2x1ZGUgPGZ1enplci9GdXp6ZWREYXRhUHJvdmlkZXIuaD4KKworI2luY2x1ZGUgPGNjdHlwZT4KKyNpbmNsdWRlIDxzdHJpbmc+CisKKyNpbmNsdWRlICJwdWJsaWMvZnBkZl9mb3JtZmlsbC5oIgorI2luY2x1ZGUgInRlc3RpbmcvZnV6emVycy9wZGZfZnV6emVyX3RlbXBsYXRlcy5oIgorI2luY2x1ZGUgInRlc3RpbmcvZnV6emVycy9wZGZpdW1fZnV6emVyX2hlbHBlci5oIgorCitjbGFzcyBQREZpdW1YRkFGdXp6ZXIgOiBwdWJsaWMgUERGaXVtRnV6emVySGVscGVyIHsKKyBwdWJsaWM6CisgIFBERml1bVhGQUZ1enplcigpID0gZGVmYXVsdDsKKyAgflBERml1bVhGQUZ1enplcigpIG92ZXJyaWRlID0gZGVmYXVsdDsKKworICBpbnQgR2V0Rm9ybUNhbGxiYWNrVmVyc2lvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDI7IH0KKworICAvLyBSZXR1cm4gZmFsc2UgaWYgWEZBIGRvZXNuJ3QgbG9hZCBhcyBvdGhlcndpc2Ugd2UncmUgZHVwbGljYXRpbmcgdGhlIHdvcmsKKyAgLy8gZG9uZSBieSB0aGUgbm9uLXhmYSBmdXp6ZXIuCisgIGJvb2wgT25Gb3JtRmlsbEVudkxvYWRlZChGUERGX0RPQ1VNRU5UIGRvYykgb3ZlcnJpZGUgeworICAgIGludCBmb3JtX3R5cGUgPSBGUERGX0dldEZvcm1UeXBlKGRvYyk7CisgICAgaWYgKGZvcm1fdHlwZSAhPSBGT1JNVFlQRV9YRkFfRlVMTCAmJiBmb3JtX3R5cGUgIT0gRk9STVRZUEVfWEZBX0ZPUkVHUk9VTkQpCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEZQREZfTG9hZFhGQShkb2MpOworICB9Cit9OworCitib29sIElzVmFsaWRGb3JGdXp6aW5nKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7CisgIGlmIChzaXplID4gMjA0OCkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIGNvbnN0IGNoYXIqIHB0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpOworICBib29sIGlzX29wZW4gPSBmYWxzZTsKKyAgc2l6ZV90IHRhZ19zaXplID0gMDsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICBpZiAoIXN0ZDo6aXNzcGFjZShwdHJbaV0pICYmICFzdGQ6OmlzcHJpbnQocHRyW2ldKSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vIFdlIGRvIG5vdCB3YW50IGFueSBzY3JpcHQgdGFncy4gVGhlIHJlYXNvbiBpcyB0aGlzIGZ1enplcgorICAgIC8vIHNob3VsZCBhdm9pZCBleHBsb3JpbmcgdjggY29kZS4gQXZvaWRpbmcgYW55dGhpbmcgd2l0aCAic2NyaXB0IgorICAgIC8vIGlzIGFuIG92ZXItYXBwcm94aW1hdGlvbiwgaW4gdGhhdCBzb21lIGlucHV0cyBtYXkgY29udGFpbiAic2NyaXB0IgorICAgIC8vIGFuZCBzdGlsbCBiZSBhIHZhbGlkIGZ1enotY2FzZS4gSG93ZXZlciwgdGhpcyBvdmVyLWFwcHJveGltYXRpb24gaXMKKyAgICAvLyB1c2VkIHRvIGVuZm9yY2Ugc3RyaWN0IGNvbnN0cmFpbnRzIGFuZCBhdm9pZCBjYXNlcyB3aGVyZSB3aGl0ZXNwYWNlCisgICAgLy8gbWF5IHBsYXkgYSByb2xlLCBvciBvdGhlciB0YWdzLCBlLmcuICJKYXZhc2NyaXB0IiB3aWxsIGVuZCB1cCB0cmlnZ2VyaW5nCisgICAgLy8gbGFyZ2UgZXhwbG9yYXRpb25zIG9mIHY4IGNvZGUuIFRoZSBhbHRlcm5hdGl2ZSB3ZSBjb25zaWRlcmVkIHdlcmUKKyAgICAvLyAiPHNjcmlwdCIKKyAgICBpZiAoaSArIDYgPCBzaXplICYmIG1lbWNtcChwdHIgKyBpLCAic2NyaXB0IiwgNikgPT0gMCkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmIChwdHJbaV0gPT0gJzwnKSB7CisgICAgICBpZiAoaXNfb3BlbikgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICBpc19vcGVuID0gdHJ1ZTsKKyAgICAgIHRhZ19zaXplID0gMDsKKyAgICB9IGVsc2UgaWYgKHB0cltpXSA9PSAnPicpIHsKKyAgICAgIGlmICghaXNfb3BlbiB8fCB0YWdfc2l6ZSA9PSAwKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICAgIGlzX29wZW4gPSBmYWxzZTsKKyAgICB9IGVsc2UgaWYgKGlzX29wZW4pIHsKKyAgICAgIHRhZ19zaXplKys7CisgICAgfQorICB9CisgIC8vIHdlIG11c3QgY2xvc2UgdGhlIGxhc3QgYnJhY2tldC4KKyAgcmV0dXJuICFpc19vcGVuOworfQorCitleHRlcm4gIkMiIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7CisgIC8vIEZpbHRlciB0aGUgc3RyaW5nIHRvIHJlZHVjZSB0aGUgc3RhdGUgc3BhY2UgZXhwbG9yYXRpb24uCisgIGlmICghSXNWYWxpZEZvckZ1enppbmcoZGF0YSwgc2l6ZSkpIHsKKyAgICByZXR1cm4gMDsKKyAgfQorICBzdGQ6OnN0cmluZyB4ZmFfc3RyaW5nID0gIjx4ZHAgeG1sbnM9XCJodHRwOi8vbnMuYWRvYmUuY29tL3hkcC9cIj4iOworICB4ZmFfc3RyaW5nICs9IHN0ZDo6c3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBzaXplKTsKKyAgeGZhX3N0cmluZyArPSAiPC94ZHA+IjsKKworICAvLyBBZGQgMSBmb3IgbmV3bGluZSBiZWZvcmUgZW5kc3RyZWFtLgorICBzdGQ6OnN0cmluZyB4ZmFfc3RyZWFtX2xlbiA9IHN0ZDo6dG9fc3RyaW5nKHhmYV9zdHJpbmcuc2l6ZSgpICsgMSk7CisKKyAgLy8gQ29tcG9zZSB0aGUgZnV6emVyCisgIHN0ZDo6c3RyaW5nIHhmYV9maW5hbF9zdHIgPSBzdGQ6OnN0cmluZyhrU2ltcGxlUGRmVGVtcGxhdGUpOworICB4ZmFfZmluYWxfc3RyLnJlcGxhY2UoeGZhX2ZpbmFsX3N0ci5maW5kKCIkMSIpLCAyLCB4ZmFfc3RyZWFtX2xlbik7CisgIHhmYV9maW5hbF9zdHIucmVwbGFjZSh4ZmFfZmluYWxfc3RyLmZpbmQoIiQyIiksIDIsIHhmYV9zdHJpbmcpOworCisjaWZkZWYgUERGSVVNX0ZVWlpFUl9EVU1QCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgeGZhX2ZpbmFsX3N0ci5zaXplKCk7IGkrKykgeworICAgIHB1dGMoeGZhX2ZpbmFsX3N0cltpXSwgc3Rkb3V0KTsKKyAgfQorI2VuZGlmCisKKyAgUERGaXVtWEZBRnV6emVyIGZ1enplcjsKKyAgZnV6emVyLlJlbmRlclBkZih4ZmFfZmluYWxfc3RyLmNfc3RyKCksIHhmYV9maW5hbF9zdHIuc2l6ZSgpKTsKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX3hmYV94ZHBfZmRwX2Z1enplci5jYyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfeGZhX3hkcF9mZHBfZnV6emVyLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5MTdjZTcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmX3hmYV94ZHBfZmRwX2Z1enplci5jYwpAQCAtMCwwICsxLDIwNiBAQAorLy8gQ29weXJpZ2h0IDIwMjEgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaW5jbHVkZSA8ZnV6emVyL0Z1enplZERhdGFQcm92aWRlci5oPgorCisjaW5jbHVkZSA8c3RyaW5nPgorCisjaW5jbHVkZSAicHVibGljL2ZwZGZfZm9ybWZpbGwuaCIKKyNpbmNsdWRlICJ0ZXN0aW5nL2Z1enplcnMvcGRmX2Z1enplcl90ZW1wbGF0ZXMuaCIKKyNpbmNsdWRlICJ0ZXN0aW5nL2Z1enplcnMvcGRmaXVtX2Z1enplcl9oZWxwZXIuaCIKKworY2xhc3MgUERGaXVtWERQRnV6emVyIDogcHVibGljIFBERml1bUZ1enplckhlbHBlciB7CisgcHVibGljOgorICBQREZpdW1YRFBGdXp6ZXIoKSA9IGRlZmF1bHQ7CisgIH5QREZpdW1YRFBGdXp6ZXIoKSBvdmVycmlkZSA9IGRlZmF1bHQ7CisKKyAgaW50IEdldEZvcm1DYWxsYmFja1ZlcnNpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAyOyB9CisKKyAgYm9vbCBPbkZvcm1GaWxsRW52TG9hZGVkKEZQREZfRE9DVU1FTlQgZG9jKSBvdmVycmlkZSB7CisgICAgaW50IGZvcm1fdHlwZSA9IEZQREZfR2V0Rm9ybVR5cGUoZG9jKTsKKyAgICBpZiAoZm9ybV90eXBlICE9IEZPUk1UWVBFX1hGQV9GVUxMICYmIGZvcm1fdHlwZSAhPSBGT1JNVFlQRV9YRkFfRk9SRUdST1VORCkKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gRlBERl9Mb2FkWEZBKGRvYyk7CisgIH0KK307CisKK3N0cnVjdCBUYWcgeworICBjb25zdCBjaGFyKiB0YWdfbmFtZTsKKyAgY29uc3QgY2hhciogdGFnX3N0YXJ0OworICBjb25zdCBjaGFyKiB0YWdfZW5kOworfTsKKworY29uc3QgVGFnIGtUYWdEYXRhW117CisgICAgey50YWdfbmFtZSA9ICJjb25maWciLAorICAgICAudGFnX3N0YXJ0ID0KKyAgICAgICAgIFIiIig8eGZhOmNvbmZpZyB4bWxuczp4ZmE9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGNpLzMuMS8iPikiIiwKKyAgICAgLnRhZ19lbmQgPSAiPC94ZmE6Y29uZmlnPiJ9LAorICAgIHsudGFnX25hbWUgPSAidGVtcGxhdGUiLAorICAgICAudGFnX3N0YXJ0ID0KKyAgICAgICAgIFIiIig8dGVtcGxhdGUgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLXRlbXBsYXRlLzIuNi8iPikiIiwKKyAgICAgLnRhZ19lbmQgPSAiPC90ZW1wbGF0ZT4ifSwKKyAgICB7LnRhZ19uYW1lID0gInNvdXJjZVNldCIsCisgICAgIC50YWdfc3RhcnQgPQorICAgICAgICAgUiIiKDxzb3VyY2VTZXQgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLXNvdXJjZS1zZXQvMi43LyI+KSIiLAorICAgICAudGFnX2VuZCA9ICI8L3NvdXJjZVNldD4ifSwKKyAgICB7LnRhZ19uYW1lID0gImxvY2FsZVNldCIsCisgICAgIC50YWdfc3RhcnQgPQorICAgICAgICAgUiIiKDxsb2NhbGVTZXQgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWxvY2FsZS1zZXQvMi43LyI+KSIiLAorICAgICAudGFnX2VuZCA9ICI8L2xvY2FsZVNldD4ifSwKKyAgICB7LnRhZ19uYW1lID0gImRhdGFTZXQiLAorICAgICAudGFnX3N0YXJ0ID0KKyAgICAgICAgIFIiIig8eGZhOmRhdGFzZXRzIHhtbG5zOnhmYT0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtZGF0YS8xLjAvIj4pIiIsCisgICAgIC50YWdfZW5kID0gIjwveGZhOmRhdGFzZXRzPiJ9LAorICAgIHsudGFnX25hbWUgPSAiY29ubmVjdGlvblNldCIsCisgICAgIC50YWdfc3RhcnQgPQorICAgICAgICAgUiIiKDxjb25uZWN0aW9uU2V0IHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS1jb25uZWN0aW9uLXNldC8yLjgvIj4pIiIsCisgICAgIC50YWdfZW5kID0gIjwvY29ubmVjdGlvblNldD4ifSwKKyAgICB7LnRhZ19uYW1lID0gInhkYyIsCisgICAgIC50YWdfc3RhcnQgPQorICAgICAgICAgUiIiKDx4c2w6eGRjIHhtbG5zOnhkYz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZGMvMS4wLyI+KSIiLAorICAgICAudGFnX2VuZCA9ICI8L3hzbDp4ZGM+In0sCisgICAgey50YWdfbmFtZSA9ICJzaWduYXR1cmUiLAorICAgICAudGFnX3N0YXJ0ID0gUiIiKDxzaWduYXR1cmUgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiPikiIiwKKyAgICAgLnRhZ19lbmQgPSAiPC9zaWduYXR1cmU+In0sCisgICAgey50YWdfbmFtZSA9ICJzdHlsZXNoZWV0IiwKKyAgICAgLnRhZ19zdGFydCA9CisgICAgICAgICBSIiIoPHhzbDpzdHlsZXNoZWV0IHZlcnNpb249IjEuMCIgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iIGlkPSJpZGVudGlmaWVyIj4pIiIsCisgICAgIC50YWdfZW5kID0gIjwvc3R5bGVzaGVldD4ifSwKKyAgICB7LnRhZ19uYW1lID0gInhmZGYiLAorICAgICAudGFnX3N0YXJ0ID0KKyAgICAgICAgIFIiIig8eGZkZiB4bWxucz0iaHR0cDovL25zLmFkb2JlLmNvbS94ZmRmLyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+KSIiLAorICAgICAudGFnX2VuZCA9ICI8L3hmZGY+In0sCisgICAgey50YWdfbmFtZSA9ICJ4bXBtZXRhIiwKKyAgICAgLnRhZ19zdGFydCA9CisgICAgICAgICBSIiIoPHhtcG1ldGEgeG1sbnM9Imh0dHA6Ly9ucy5hZG9iZS5jb20veG1wbWV0YS8iIHhtbDpzcGFjZT0icHJlc2VydmUiPikiIiwKKyAgICAgLnRhZ19lbmQgPSAiPC94bXBtZXRhPiJ9fTsKKworc3RkOjpzdHJpbmcgQ3JlYXRlT2JqZWN0KGludCBvYmpfbnVtLCBjb25zdCBzdGQ6OnN0cmluZyYgYm9keSkgeworICBzdGQ6OnN0cmluZyBvYmpfdGVtcGxhdGUgPSBSIiIoJDEgMCBvYmoKKyQyCitlbmRvYmoKKykiIjsKKworICBvYmpfdGVtcGxhdGUucmVwbGFjZShvYmpfdGVtcGxhdGUuZmluZCgiJDEiKSwgMiwgc3RkOjp0b19zdHJpbmcob2JqX251bSkpOworICBvYmpfdGVtcGxhdGUucmVwbGFjZShvYmpfdGVtcGxhdGUuZmluZCgiJDIiKSwgMiwgYm9keSk7CisgIHJldHVybiBvYmpfdGVtcGxhdGU7Cit9CisKK3N0ZDo6c3RyaW5nIENyZWF0ZVN0cmVhbU9iamVjdChpbnQgb2JqX251bSwgY29uc3Qgc3RkOjpzdHJpbmcmIGJvZHkpIHsKKyAgc3RkOjpzdHJpbmcgb2JqX3RlbXBsYXRlID0gUiIiKCQxIDAgb2JqCis8PC9MZW5ndGggJDI+Pgorc3RyZWFtCiskMworZW5kc3RyZWFtCitlbmRvYmoKKykiIjsKKworICBvYmpfdGVtcGxhdGUucmVwbGFjZShvYmpfdGVtcGxhdGUuZmluZCgiJDEiKSwgMiwgc3RkOjp0b19zdHJpbmcob2JqX251bSkpOworICBvYmpfdGVtcGxhdGUucmVwbGFjZShvYmpfdGVtcGxhdGUuZmluZCgiJDIiKSwgMiwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp0b19zdHJpbmcoYm9keS5zaXplKCkgKyAxKSk7CisgIG9ial90ZW1wbGF0ZS5yZXBsYWNlKG9ial90ZW1wbGF0ZS5maW5kKCIkMyIpLCAyLCBib2R5KTsKKworICByZXR1cm4gb2JqX3RlbXBsYXRlOworfQorCitzdGQ6OnN0cmluZyBHZW5YcmVmRW50cnkoc2l6ZV90IG9mZnNldCkgeworICByZXR1cm4gc3RkOjpzdHJpbmcoMTAgLSBzdGQ6OnRvX3N0cmluZyhvZmZzZXQpLnNpemUoKSwgJzAnKSArCisgICAgICAgICBzdGQ6OnRvX3N0cmluZyhvZmZzZXQpICsgIiAwMDAwMCBuXG4iOworfQorCitzdGQ6OnN0cmluZyBHZW5UYWdCb2R5KGNvbnN0IFRhZyYgdGFnLCBGdXp6ZWREYXRhUHJvdmlkZXIqIGRhdGFfcHJvdmlkZXIpIHsKKyAgc3RkOjpzdHJpbmcgdGFnX2NvbnRlbnQgPSBkYXRhX3Byb3ZpZGVyLT5Db25zdW1lUmFuZG9tTGVuZ3RoU3RyaW5nKCk7CisgIHJldHVybiB0YWcudGFnX3N0YXJ0ICsgdGFnX2NvbnRlbnQgKyB0YWcudGFnX2VuZDsKK30KKworc3RkOjpzdHJpbmcgR2VuWERQUGRmRmlsZShGdXp6ZWREYXRhUHJvdmlkZXIqIGRhdGFfcHJvdmlkZXIpIHsKKyAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHBkZl9vYmplY3RzOworICBzdGQ6OnN0cmluZyBwZGZfaGVhZGVyID0KKyAgICAgIHN0ZDo6c3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGtTaW1wbGVQZGZIZWFkZXIpLAorICAgICAgICAgICAgICAgICAgc2l6ZW9mKGtTaW1wbGVQZGZIZWFkZXIpKTsKKworICBwZGZfb2JqZWN0cy5wdXNoX2JhY2soQ3JlYXRlT2JqZWN0KDEsIGtDYXRhbG9nKSk7CisKKyAgc3RkOjpzdHJpbmcgeGZhX29iaiA9IGtTaW1wbGVYZmFPYmpXcmFwcGVyOworICBUYWcgdGFnMSA9IGRhdGFfcHJvdmlkZXItPlBpY2tWYWx1ZUluQXJyYXkoa1RhZ0RhdGEpOworICBUYWcgdGFnMiA9IGRhdGFfcHJvdmlkZXItPlBpY2tWYWx1ZUluQXJyYXkoa1RhZ0RhdGEpOworICBUYWcgdGFnMyA9IGRhdGFfcHJvdmlkZXItPlBpY2tWYWx1ZUluQXJyYXkoa1RhZ0RhdGEpOworICB4ZmFfb2JqLnJlcGxhY2UoeGZhX29iai5maW5kKCIkMSIpLCAyLCB0YWcxLnRhZ19uYW1lKTsKKyAgeGZhX29iai5yZXBsYWNlKHhmYV9vYmouZmluZCgiJDIiKSwgMiwgdGFnMi50YWdfbmFtZSk7CisgIHhmYV9vYmoucmVwbGFjZSh4ZmFfb2JqLmZpbmQoIiQzIiksIDIsIHRhZzMudGFnX25hbWUpOworICBwZGZfb2JqZWN0cy5wdXNoX2JhY2soQ3JlYXRlT2JqZWN0KDIsIHhmYV9vYmopKTsKKyAgcGRmX29iamVjdHMucHVzaF9iYWNrKENyZWF0ZU9iamVjdCgzLCBrU2ltcGxlUGFnZXNPYmopKTsKKyAgcGRmX29iamVjdHMucHVzaF9iYWNrKENyZWF0ZU9iamVjdCg0LCBrU2ltcGxlUGFnZU9iaikpOworCisgIC8vIHByZWFtYmxlCisgIHBkZl9vYmplY3RzLnB1c2hfYmFjayhDcmVhdGVTdHJlYW1PYmplY3QoNSwga1NpbXBsZVByZWFtYmxlKSk7CisKKyAgLy8gVGhlIHRocmVlIFhGQSB0YWdzCisgIHBkZl9vYmplY3RzLnB1c2hfYmFjayhDcmVhdGVTdHJlYW1PYmplY3QoNiwgR2VuVGFnQm9keSh0YWcxLCBkYXRhX3Byb3ZpZGVyKSkpOworICBwZGZfb2JqZWN0cy5wdXNoX2JhY2soQ3JlYXRlU3RyZWFtT2JqZWN0KDcsIEdlblRhZ0JvZHkodGFnMiwgZGF0YV9wcm92aWRlcikpKTsKKyAgcGRmX29iamVjdHMucHVzaF9iYWNrKENyZWF0ZVN0cmVhbU9iamVjdCg4LCBHZW5UYWdCb2R5KHRhZzMsIGRhdGFfcHJvdmlkZXIpKSk7CisKKyAgLy8gcG9zdGFtYmxlCisgIHBkZl9vYmplY3RzLnB1c2hfYmFjayhDcmVhdGVTdHJlYW1PYmplY3QoOSwga1NpbXBsZVBvc3RhbWJsZSkpOworCisgIC8vIENyZWF0ZSB0aGUgeHJlZiB0YWJsZQorICBzdGQ6OnN0cmluZyB4cmVmID0gUiIiKHhyZWYKKzAgMTAKKzAwMDAwMDAwMDAgNjU1MzUgZgorKSIiOworCisgIC8vIEFkZCB4cmVmIGVudHJpZXMKKyAgc2l6ZV90IGN1cnJfb2Zmc2V0ID0gcGRmX2hlYWRlci5zaXplKCk7CisgIGZvciAoY29uc3QgYXV0byYgb3N0ciA6IHBkZl9vYmplY3RzKSB7CisgICAgeHJlZiArPSBHZW5YcmVmRW50cnkoY3Vycl9vZmZzZXQpOworICAgIGN1cnJfb2Zmc2V0ICs9IG9zdHIuc2l6ZSgpOworICB9CisKKyAgc3RkOjpzdHJpbmcgZm9vdGVyID0gUiIiKHRyYWlsZXIKKzw8L1Jvb3QgMSAwIFIgL1NpemUgMTA+Pgorc3RhcnR4cmVmCiskMQorJSVFT0YpIiI7CisgIGZvb3Rlci5yZXBsYWNlKGZvb3Rlci5maW5kKCIkMSIpLCAyLCBzdGQ6OnRvX3N0cmluZyhjdXJyX29mZnNldCkpOworCisgIHN0ZDo6c3RyaW5nIHBkZl9jb3JlOworICBmb3IgKGNvbnN0IGF1dG8mIG9zdHIgOiBwZGZfb2JqZWN0cykgeworICAgIHBkZl9jb3JlICs9IG9zdHI7CisgIH0KKworICAvLyBSZXR1cm4gdGhlIGZ1bGwgUERGCisgIHJldHVybiBwZGZfaGVhZGVyICsgcGRmX2NvcmUgKyB4cmVmICsgZm9vdGVyOworfQorCitib29sIElzVmFsaWRGb3JGdXp6aW5nKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7CisgIGlmIChzaXplID4gMjA0OCkgeworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBjb25zdCBjaGFyKiBwdHIgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICBpZiAoIXN0ZDo6aXNzcGFjZShwdHJbaV0pICYmICFzdGQ6OmlzcHJpbnQocHRyW2ldKSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworZXh0ZXJuICJDIiBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgeworICBpZiAoIUlzVmFsaWRGb3JGdXp6aW5nKGRhdGEsIHNpemUpKSB7CisgICAgcmV0dXJuIDA7CisgIH0KKworICBGdXp6ZWREYXRhUHJvdmlkZXIgZGF0YV9wcm92aWRlcihkYXRhLCBzaXplKTsKKyAgc3RkOjpzdHJpbmcgeGZhX2ZpbmFsX3N0ciA9IEdlblhEUFBkZkZpbGUoJmRhdGFfcHJvdmlkZXIpOworCisjaWZkZWYgUERGSVVNX0ZVWlpFUl9EVU1QCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgeGZhX2ZpbmFsX3N0ci5zaXplKCk7IGkrKykgeworICAgIHB1dGMoeGZhX2ZpbmFsX3N0cltpXSwgc3Rkb3V0KTsKKyAgfQorI2VuZGlmCisKKyAgUERGaXVtWERQRnV6emVyIGZ1enplcjsKKyAgZnV6emVyLlJlbmRlclBkZih4ZmFfZmluYWxfc3RyLmNfc3RyKCksIHhmYV9maW5hbF9zdHIuc2l6ZSgpKTsKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmX3htbF9mdXp6ZXIuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmX3htbF9mdXp6ZXIuY2MKaW5kZXggZTg1OGY1Yi4uMzFhYjZkNyAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdXp6ZXJzL3BkZl94bWxfZnV6emVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZfeG1sX2Z1enplci5jYwpAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtNiw3ICs2LDcgQEAKICNpbmNsdWRlIDxjc3RkaW50PgogI2luY2x1ZGUgPG1lbW9yeT4KIAotI2luY2x1ZGUgImNvcmUvZnhjcnQvY2Z4X3JlYWRvbmx5bWVtb3J5c3RyZWFtLmgiCisjaW5jbHVkZSAiY29yZS9meGNydC9jZnhfcmVhZF9vbmx5X3NwYW5fc3RyZWFtLmgiCiAjaW5jbHVkZSAiY29yZS9meGNydC9meF9zYWZlX3R5cGVzLmgiCiAjaW5jbHVkZSAiY29yZS9meGNydC9meF9zeXN0ZW0uaCIKICNpbmNsdWRlICJjb3JlL2Z4Y3J0L3htbC9jZnhfeG1sZG9jdW1lbnQuaCIKQEAgLTE5LDggKzE5LDggQEAKICAgaWYgKCFzYWZlX3NpemUuSXNWYWxpZCgpKQogICAgIHJldHVybiAwOwogCi0gIGF1dG8gc3RyZWFtID0gcGRmaXVtOjpNYWtlUmV0YWluPENGWF9SZWFkT25seU1lbW9yeVN0cmVhbT4oCi0gICAgICBwZGZpdW06Om1ha2Vfc3BhbihkYXRhLCBzaXplKSk7CisgIGF1dG8gc3RyZWFtID0KKyAgICAgIHBkZml1bTo6TWFrZVJldGFpbjxDRlhfUmVhZE9ubHlTcGFuU3RyZWFtPihwZGZpdW06Om1ha2Vfc3BhbihkYXRhLCBzaXplKSk7CiAgIENGWF9YTUxQYXJzZXIgcGFyc2VyKHN0cmVhbSk7CiAgIHN0ZDo6dW5pcXVlX3B0cjxDRlhfWE1MRG9jdW1lbnQ+IGRvYyA9IHBhcnNlci5QYXJzZSgpOwogICBpZiAoIWRvYyB8fCAhZG9jLT5HZXRSb290KCkpCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmaXVtX2Z1enplci5jYyBiL3Rlc3RpbmcvZnV6emVycy9wZGZpdW1fZnV6emVyLmNjCmluZGV4IGRjMTUzNzguLjdlMjVmZWQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZpdW1fZnV6emVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZpdW1fZnV6emVyLmNjCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTYsNiArNiwxMiBAQAogCiAjaW5jbHVkZSAidGVzdGluZy9mdXp6ZXJzL3BkZml1bV9mdXp6ZXJfaGVscGVyLmgiCiAKKyNpZiBkZWZpbmVkKEJVSUxEX1dJVEhfQ0hST01JVU0pCisjaW5jbHVkZSAiYmFzZS9tZW1vcnkvZGlzY2FyZGFibGVfbWVtb3J5X2FsbG9jYXRvci5oIgorI2luY2x1ZGUgImJhc2Uvbm9fZGVzdHJ1Y3Rvci5oIgorI2luY2x1ZGUgImJhc2UvdGVzdC90ZXN0X2Rpc2NhcmRhYmxlX21lbW9yeV9hbGxvY2F0b3IuaCIKKyNlbmRpZgorCiBjbGFzcyBQREZpdW1GdXp6ZXIgOiBwdWJsaWMgUERGaXVtRnV6emVySGVscGVyIHsKICBwdWJsaWM6CiAgIFBERml1bUZ1enplcigpID0gZGVmYXVsdDsKQEAgLTE1LDYgKzIxLDEyIEBACiB9OwogCiBleHRlcm4gIkMiIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7CisjaWYgZGVmaW5lZChCVUlMRF9XSVRIX0NIUk9NSVVNKQorICBzdGF0aWMgYmFzZTo6Tm9EZXN0cnVjdG9yPGJhc2U6OlRlc3REaXNjYXJkYWJsZU1lbW9yeUFsbG9jYXRvcj4KKyAgICAgIHRlc3RfbWVtb3J5X2FsbG9jYXRvcjsKKyAgYmFzZTo6RGlzY2FyZGFibGVNZW1vcnlBbGxvY2F0b3I6OlNldEluc3RhbmNlKHRlc3RfbWVtb3J5X2FsbG9jYXRvci5nZXQoKSk7CisjZW5kaWYKKwogICBQREZpdW1GdXp6ZXIgZnV6emVyOwogICBmdXp6ZXIuUmVuZGVyUGRmKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBzaXplKTsKICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmaXVtX2Z1enplcl9oZWxwZXIuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmaXVtX2Z1enplcl9oZWxwZXIuY2MKaW5kZXggMjY2NjY2ZC4uZjAxMWIxOCAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdXp6ZXJzL3BkZml1bV9mdXp6ZXJfaGVscGVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZpdW1fZnV6emVyX2hlbHBlci5jYwpAQCAtMSwxOSArMSwxNiBAQAotLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKICNpbmNsdWRlICJ0ZXN0aW5nL2Z1enplcnMvcGRmaXVtX2Z1enplcl9oZWxwZXIuaCIKIAogI2luY2x1ZGUgPGFzc2VydC5oPgotI2luY2x1ZGUgPGxpbWl0cy5oPgotCiAjaW5jbHVkZSA8c3RkZGVmLmg+CiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIAotI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDxzc3RyZWFtPgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx0dXBsZT4KQEAgLTIzLDYgKzIwLDcgQEAKICNpbmNsdWRlICJwdWJsaWMvZnBkZl9kYXRhYXZhaWwuaCIKICNpbmNsdWRlICJwdWJsaWMvZnBkZl9leHQuaCIKICNpbmNsdWRlICJwdWJsaWMvZnBkZl90ZXh0LmgiCisjaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9ub3RyZWFjaGVkLmgiCiAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9zcGFuLmgiCiAKIG5hbWVzcGFjZSB7CkBAIC05NSw3ICs5Myw3IEBACiBzdGQ6OnBhaXI8aW50LCBpbnQ+IEdldFJlbmRlcmluZ0FuZEZvcm1GbGFnRnJvbURhdGEoY29uc3QgY2hhciogZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuKSB7CiAgIHN0ZDo6c3RyaW5nIGRhdGFfc3RyID0gc3RkOjpzdHJpbmcoZGF0YSwgbGVuKTsKLSAgc3RkOjpzaXplX3QgZGF0YV9oYXNoID0gc3RkOjpoYXNoPHN0ZDo6c3RyaW5nPigpKGRhdGFfc3RyKTsKKyAgc2l6ZV90IGRhdGFfaGFzaCA9IHN0ZDo6aGFzaDxzdGQ6OnN0cmluZz4oKShkYXRhX3N0cik7CiAKICAgLy8gVGhlIGxhcmdlc3QgZmxhZyB2YWx1ZSBpcyAweDRGRkYsIHNvIGp1c3QgdGFrZSAxNiBiaXRzIGZyb20gfGRhdGFfaGFzaHwgYXQKICAgLy8gYSB0aW1lLgpAQCAtMjE4LDYgKzIxNiw4IEBACiAgIEZPUk1fT25BZnRlckxvYWRQYWdlKHBhZ2UuZ2V0KCksIGZvcm0pOwogICBGT1JNX0RvUGFnZUFBY3Rpb24ocGFnZS5nZXQoKSwgZm9ybSwgRlBERlBBR0VfQUFDVElPTl9PUEVOKTsKIAorICBGb3JtQWN0aW9uSGFuZGxlcihmb3JtLCBkb2MsIHBhZ2UuZ2V0KCkpOworCiAgIGNvbnN0IGRvdWJsZSBzY2FsZSA9IDEuMDsKICAgaW50IHdpZHRoID0gc3RhdGljX2Nhc3Q8aW50PihGUERGX0dldFBhZ2VXaWR0aEYocGFnZS5nZXQoKSkgKiBzY2FsZSk7CiAgIGludCBoZWlnaHQgPSBzdGF0aWNfY2FzdDxpbnQ+KEZQREZfR2V0UGFnZUhlaWdodEYocGFnZS5nZXQoKSkgKiBzY2FsZSk7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmaXVtX2Z1enplcl9oZWxwZXIuaCBiL3Rlc3RpbmcvZnV6emVycy9wZGZpdW1fZnV6emVyX2hlbHBlci5oCmluZGV4IGFmMTQ5NDEuLjkwMGY1NWQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZpdW1fZnV6emVyX2hlbHBlci5oCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZpdW1fZnV6emVyX2hlbHBlci5oCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTcgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNyBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTE2LDYgKzE2LDkgQEAKICAgdmlydHVhbCBpbnQgR2V0Rm9ybUNhbGxiYWNrVmVyc2lvbigpIGNvbnN0ID0gMDsKICAgdmlydHVhbCBib29sIE9uRm9ybUZpbGxFbnZMb2FkZWQoRlBERl9ET0NVTUVOVCBkb2MpOwogICB2aXJ0dWFsIHZvaWQgT25SZW5kZXJGaW5pc2hlZChGUERGX0RPQ1VNRU5UIGRvYykge30KKyAgdmlydHVhbCB2b2lkIEZvcm1BY3Rpb25IYW5kbGVyKEZQREZfRk9STUhBTkRMRSBmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBERl9ET0NVTUVOVCBkb2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUERGX1BBR0UgcGFnZSkge30KIAogIHByb3RlY3RlZDoKICAgUERGaXVtRnV6emVySGVscGVyKCk7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmaXVtX2Z1enplcl91dGlsLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZml1bV9mdXp6ZXJfdXRpbC5jYwppbmRleCA5MjM4ZjBlLi5mOGY4Mjg2IDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvcGRmaXVtX2Z1enplcl91dGlsLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZpdW1fZnV6emVyX3V0aWwuY2MKQEAgLTEsOSArMSwyMSBAQAotLy8gQ29weXJpZ2h0IDIwMTkgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKICNpbmNsdWRlICJ0ZXN0aW5nL2Z1enplcnMvcGRmaXVtX2Z1enplcl91dGlsLmgiCiAKK25hbWVzcGFjZSB7Cit2b2lkKiBnX2Z1enplcl9pbml0X3Blcl9wcm9jZXNzX3N0YXRlID0gbnVsbHB0cjsKK30gIC8vIG5hbWVzcGFjZQorCiBpbnQgR2V0SW50ZWdlcihjb25zdCB1aW50OF90KiBkYXRhKSB7CiAgIHJldHVybiBkYXRhWzBdIHwgKGRhdGFbMV0gPDwgOCkgfCAoZGF0YVsyXSA8PCAxNikgfCAoZGF0YVszXSA8PCAyNCk7CiB9CisKK0ZQREZfRVhQT1JUIHZvaWQgRlBERl9DQUxMQ09OViBGUERGX1NldEZ1enplclBlclByb2Nlc3NTdGF0ZSh2b2lkKiBzdGF0ZSkgeworICBnX2Z1enplcl9pbml0X3Blcl9wcm9jZXNzX3N0YXRlID0gc3RhdGU7Cit9CisKK0ZQREZfRVhQT1JUIHZvaWQqIEZQREZfQ0FMTENPTlYgRlBERl9HZXRGdXp6ZXJQZXJQcm9jZXNzU3RhdGUoKSB7CisgIHJldHVybiBnX2Z1enplcl9pbml0X3Blcl9wcm9jZXNzX3N0YXRlOworfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZml1bV9mdXp6ZXJfdXRpbC5oIGIvdGVzdGluZy9mdXp6ZXJzL3BkZml1bV9mdXp6ZXJfdXRpbC5oCmluZGV4IGQ4MmY0NGIuLmEzNzU0NGQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZpdW1fZnV6emVyX3V0aWwuaAorKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmaXVtX2Z1enplcl91dGlsLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE5IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtNyw3ICs3LDE5IEBACiAKICNpbmNsdWRlIDxzdGRpbnQuaD4KIAorI2luY2x1ZGUgInB1YmxpYy9mcGRmdmlldy5oIgorCiAvLyBSZXR1cm5zIGFuIGludGVnZXIgZnJvbSB0aGUgZmlyc3QgNCBieXRlcyBvZiB8ZGF0YXwuCiBpbnQgR2V0SW50ZWdlcihjb25zdCB1aW50OF90KiBkYXRhKTsKIAorLy8gUGx1bWIgYWNjZXNzIHRvIGFueSBjb250ZXh0IGNyZWF0ZWQgYnkgZnV6emVyIGluaXRpYWxpemF0aW9uIGludG8KKy8vIHRoZSBMTFZNRnV6emVyVGVzdE9uZUlucHV0KCkgZnVuY3Rpb24sIGFzIHRoYXQgZnVuY3Rpb24gZG9lcyBub3QKKy8vIGFsbG93IGZvciBhZGRpdGlvbmFsIHBhcmFtZXRlcnMsIG5vciBjYW4gaXQgcmVhY2ggYmFjayB1cCB0byB0aGUKKy8vIHRvcC1sZXZlbCBmdXp6ZXIgc2hpbSBkdXJpbmcgYSBjb21wb25lbnQgYnVpbGQgKHNlZSB0aGUgY29tbWVudAorLy8gaW4gQlVJTEQuZ24gYWJvdXQgc3BsaXR0aW5nIGZ1enplcnMgaW50byBfaW1wbCBhbmQgX3NyYyB0YXJnZXRzKS4KK2V4dGVybiAiQyIgeworRlBERl9FWFBPUlQgdm9pZCBGUERGX0NBTExDT05WIEZQREZfU2V0RnV6emVyUGVyUHJvY2Vzc1N0YXRlKHZvaWQqIHN0YXRlKTsKK0ZQREZfRVhQT1JUIHZvaWQqIEZQREZfQ0FMTENPTlYgRlBERl9HZXRGdXp6ZXJQZXJQcm9jZXNzU3RhdGUoKTsKK30gIC8vIGV4dGVybiAiQyIKKwogI2VuZGlmICAvLyBURVNUSU5HX0ZVWlpFUlNfUERGSVVNX0ZVWlpFUl9VVElMX0hfCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmaXVtX3hmYV9mdXp6ZXIuY2MgYi90ZXN0aW5nL2Z1enplcnMvcGRmaXVtX3hmYV9mdXp6ZXIuY2MKaW5kZXggZjlhNjlkNC4uMWJhNzhjYyAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdXp6ZXJzL3BkZml1bV94ZmFfZnV6emVyLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZpdW1feGZhX2Z1enplci5jYwpAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAyMDE3IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMvcGRmaXVtX3hmYV9scG1fZnV6el9zdHViLmNjIGIvdGVzdGluZy9mdXp6ZXJzL3BkZml1bV94ZmFfbHBtX2Z1enpfc3R1Yi5jYwppbmRleCBjNGI1NWI2Li45ZjZjNzhhIDEwMDY0NAotLS0gYS90ZXN0aW5nL2Z1enplcnMvcGRmaXVtX3hmYV9scG1fZnV6el9zdHViLmNjCisrKyBiL3Rlc3RpbmcvZnV6emVycy9wZGZpdW1feGZhX2xwbV9mdXp6X3N0dWIuY2MKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE5IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3BkZml1bV94ZmFfbHBtX2Z1enpfc3R1Yi5oIGIvdGVzdGluZy9mdXp6ZXJzL3BkZml1bV94ZmFfbHBtX2Z1enpfc3R1Yi5oCmluZGV4IGJiNmJmMWQuLmE3YzJlYzAgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnV6emVycy9wZGZpdW1feGZhX2xwbV9mdXp6X3N0dWIuaAorKysgYi90ZXN0aW5nL2Z1enplcnMvcGRmaXVtX3hmYV9scG1fZnV6el9zdHViLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOSBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE5IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9mdXp6ZXJzL3hmYV9jb2RlY19mdXp6ZXIuaCBiL3Rlc3RpbmcvZnV6emVycy94ZmFfY29kZWNfZnV6emVyLmgKaW5kZXggNGY1NjY4ZC4uYjE0YjdkNyAxMDA2NDQKLS0tIGEvdGVzdGluZy9mdXp6ZXJzL3hmYV9jb2RlY19mdXp6ZXIuaAorKysgYi90ZXN0aW5nL2Z1enplcnMveGZhX2NvZGVjX2Z1enplci5oCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTYgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTYgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCkBAIC02LDEyICs2LDE0IEBACiAjZGVmaW5lIFRFU1RJTkdfRlVaWkVSU19YRkFfQ09ERUNfRlVaWkVSX0hfCiAKICNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dXRpbGl0eT4KIAogI2luY2x1ZGUgImNvcmUvZnhjb2RlYy9meF9jb2RlYy5oIgotI2luY2x1ZGUgImNvcmUvZnhjb2RlYy9wcm9ncmVzc2l2ZWRlY29kZXIuaCIKLSNpbmNsdWRlICJjb3JlL2Z4Y3J0L2NmeF9yZWFkb25seW1lbW9yeXN0cmVhbS5oIgorI2luY2x1ZGUgImNvcmUvZnhjb2RlYy9wcm9ncmVzc2l2ZV9kZWNvZGVyLmgiCisjaW5jbHVkZSAiY29yZS9meGNydC9jZnhfcmVhZF9vbmx5X3NwYW5fc3RyZWFtLmgiCisjaW5jbHVkZSAiY29yZS9meGNydC9meF9zYWZlX3R5cGVzLmgiCisjaW5jbHVkZSAiY29yZS9meGNydC9yZXRhaW5fcHRyLmgiCiAjaW5jbHVkZSAiY29yZS9meGdlL2RpYi9jZnhfZGliaXRtYXAuaCIKLSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL3B0cl91dGlsLmgiCiAjaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9zcGFuLmgiCiAKIC8vIFN1cHBvcnQgdXAgdG8gNjQgTUIuIFRoaXMgcHJldmVudHMgdHJpdmlhbCBPT00gd2hlbiBNU0FOIGlzIG9uIGFuZApAQCAtMjEsMTQgKzIzLDEzIEBACiBjbGFzcyBYRkFDb2RlY0Z1enplciB7CiAgcHVibGljOgogICBzdGF0aWMgaW50IEZ1enooY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUsIEZYQ09ERUNfSU1BR0VfVFlQRSB0eXBlKSB7Ci0gICAgYXV0byogbWdyID0gZnhjb2RlYzo6TW9kdWxlTWdyOjpHZXRJbnN0YW5jZSgpOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9ncmVzc2l2ZURlY29kZXI+IGRlY29kZXIgPQotICAgICAgICBtZ3ItPkNyZWF0ZVByb2dyZXNzaXZlRGVjb2RlcigpOwotICAgIGF1dG8gc291cmNlID0gcGRmaXVtOjpNYWtlUmV0YWluPENGWF9SZWFkT25seU1lbW9yeVN0cmVhbT4oCisgICAgYXV0byBkZWNvZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxQcm9ncmVzc2l2ZURlY29kZXI+KCk7CisgICAgYXV0byBzb3VyY2UgPSBwZGZpdW06Ok1ha2VSZXRhaW48Q0ZYX1JlYWRPbmx5U3BhblN0cmVhbT4oCiAgICAgICAgIHBkZml1bTo6bWFrZV9zcGFuKGRhdGEsIHNpemUpKTsKICAgICBDRlhfRElCQXR0cmlidXRlIGF0dHI7Ci0gICAgRlhDT0RFQ19TVEFUVVMgc3RhdHVzID0gZGVjb2Rlci0+TG9hZEltYWdlSW5mbyhzb3VyY2UsIHR5cGUsICZhdHRyLCB0cnVlKTsKLSAgICBpZiAoc3RhdHVzICE9IEZYQ09ERUNfU1RBVFVTX0ZSQU1FX1JFQURZKQorICAgIEZYQ09ERUNfU1RBVFVTIHN0YXR1cyA9CisgICAgICAgIGRlY29kZXItPkxvYWRJbWFnZUluZm8oc3RkOjptb3ZlKHNvdXJjZSksIHR5cGUsICZhdHRyLCB0cnVlKTsKKyAgICBpZiAoc3RhdHVzICE9IEZYQ09ERUNfU1RBVFVTOjprRnJhbWVSZWFkeSkKICAgICAgIHJldHVybiAwOwogCiAgICAgLy8gU2tpcHBpbmcgdmVyeSBsYXJnZSBpbWFnZXMsIHNpbmNlIHRoZXkgd2lsbCB0YWtlIGEgbG9uZyB0aW1lIGFuZCBtYXkgbGVhZApAQCAtNDIsMTYgKzQzLDE3IEBACiAgICAgfQogCiAgICAgYXV0byBiaXRtYXAgPSBwZGZpdW06Ok1ha2VSZXRhaW48Q0ZYX0RJQml0bWFwPigpOwotICAgIGJpdG1hcC0+Q3JlYXRlKGRlY29kZXItPkdldFdpZHRoKCksIGRlY29kZXItPkdldEhlaWdodCgpLCBGWERJQl9BcmdiKTsKKyAgICBiaXRtYXAtPkNyZWF0ZShkZWNvZGVyLT5HZXRXaWR0aCgpLCBkZWNvZGVyLT5HZXRIZWlnaHQoKSwKKyAgICAgICAgICAgICAgICAgICBGWERJQl9Gb3JtYXQ6OmtBcmdiKTsKIAogICAgIHNpemVfdCBmcmFtZXM7CiAgICAgc3RkOjp0aWUoc3RhdHVzLCBmcmFtZXMpID0gZGVjb2Rlci0+R2V0RnJhbWVzKCk7Ci0gICAgaWYgKHN0YXR1cyAhPSBGWENPREVDX1NUQVRVU19ERUNPREVfUkVBRFkgfHwgZnJhbWVzID09IDApCisgICAgaWYgKHN0YXR1cyAhPSBGWENPREVDX1NUQVRVUzo6a0RlY29kZVJlYWR5IHx8IGZyYW1lcyA9PSAwKQogICAgICAgcmV0dXJuIDA7CiAKICAgICBzdGF0dXMgPSBkZWNvZGVyLT5TdGFydERlY29kZShiaXRtYXAsIDAsIDAsIGJpdG1hcC0+R2V0V2lkdGgoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRtYXAtPkdldEhlaWdodCgpKTsKLSAgICB3aGlsZSAoc3RhdHVzID09IEZYQ09ERUNfU1RBVFVTX0RFQ09ERV9UT0JFQ09OVElOVUUpCisgICAgd2hpbGUgKHN0YXR1cyA9PSBGWENPREVDX1NUQVRVUzo6a0RlY29kZVRvQmVDb250aW51ZWQpCiAgICAgICBzdGF0dXMgPSBkZWNvZGVyLT5Db250aW51ZURlY29kZSgpOwogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z1enplcnMveGZhX3Byb2Nlc3Nfc3RhdGUuY2MgYi90ZXN0aW5nL2Z1enplcnMveGZhX3Byb2Nlc3Nfc3RhdGUuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc2OGZlYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZnV6emVycy94ZmFfcHJvY2Vzc19zdGF0ZS5jYwpAQCAtMCwwICsxLDI1IEBACisvLyBDb3B5cmlnaHQgMjAyMCBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRlICJ0ZXN0aW5nL2Z1enplcnMveGZhX3Byb2Nlc3Nfc3RhdGUuaCIKKworI2luY2x1ZGUgImZ4anMvZ2MvaGVhcC5oIgorI2luY2x1ZGUgInY4L2luY2x1ZGUvbGlicGxhdGZvcm0vbGlicGxhdGZvcm0uaCIKKworWEZBUHJvY2Vzc1N0YXRlOjpYRkFQcm9jZXNzU3RhdGUodjg6OlBsYXRmb3JtKiBwbGF0Zm9ybSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCisgICAgOiBwbGF0Zm9ybV8ocGxhdGZvcm0pLCBpc29sYXRlXyhpc29sYXRlKSwgaGVhcF8oRlhHQ19DcmVhdGVIZWFwKCkpIHt9CisKK1hGQVByb2Nlc3NTdGF0ZTo6flhGQVByb2Nlc3NTdGF0ZSgpIHsKKyAgRlhHQ19Gb3JjZUdhcmJhZ2VDb2xsZWN0aW9uKGhlYXBfLmdldCgpKTsKK30KKworY3BwZ2M6OkhlYXAqIFhGQVByb2Nlc3NTdGF0ZTo6R2V0SGVhcCgpIGNvbnN0IHsKKyAgcmV0dXJuIGhlYXBfLmdldCgpOworfQorCit2b2lkIFhGQVByb2Nlc3NTdGF0ZTo6Rm9yY2VHQ0FuZFB1bXAoKSB7CisgIEZYR0NfRm9yY2VHYXJiYWdlQ29sbGVjdGlvbihoZWFwXy5nZXQoKSk7CisgIHdoaWxlICh2ODo6cGxhdGZvcm06OlB1bXBNZXNzYWdlTG9vcChwbGF0Zm9ybV8sIGlzb2xhdGVfKSkKKyAgICBjb250aW51ZTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZnV6emVycy94ZmFfcHJvY2Vzc19zdGF0ZS5oIGIvdGVzdGluZy9mdXp6ZXJzL3hmYV9wcm9jZXNzX3N0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJkOGE3ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZnV6emVycy94ZmFfcHJvY2Vzc19zdGF0ZS5oCkBAIC0wLDAgKzEsMzMgQEAKKy8vIENvcHlyaWdodCAyMDIwIFRoZSBQREZpdW0gQXV0aG9ycworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2lmbmRlZiBURVNUSU5HX0ZVWlpFUlNfWEZBX1BST0NFU1NfU1RBVEVfSF8KKyNkZWZpbmUgVEVTVElOR19GVVpaRVJTX1hGQV9QUk9DRVNTX1NUQVRFX0hfCisKKyNpZiAhZGVmaW5lZChQREZfRU5BQkxFX1hGQSkKKyNlcnJvciAiWEZBIG9ubHkiCisjZW5kaWYKKworI2luY2x1ZGUgImZ4anMvZ2MvaGVhcC5oIgorCituYW1lc3BhY2UgdjggeworY2xhc3MgSXNvbGF0ZTsKK2NsYXNzIFBsYXRmb3JtOworfSAgLy8gbmFtZXNwYWNlIHY4CisKK2NsYXNzIFhGQVByb2Nlc3NTdGF0ZSB7CisgcHVibGljOgorICBYRkFQcm9jZXNzU3RhdGUodjg6OlBsYXRmb3JtKiBwbGF0Zm9ybSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpOworICB+WEZBUHJvY2Vzc1N0YXRlKCk7CisKKyAgY3BwZ2M6OkhlYXAqIEdldEhlYXAoKSBjb25zdDsKKyAgdm9pZCBGb3JjZUdDQW5kUHVtcCgpOworCisgcHJpdmF0ZToKKyAgdjg6OlBsYXRmb3JtKiBjb25zdCBwbGF0Zm9ybV87CisgIHY4OjpJc29sYXRlKiBjb25zdCBpc29sYXRlXzsKKyAgRlhHQ1Njb3BlZEhlYXAgaGVhcF87Cit9OworCisjZW5kaWYgIC8vIFRFU1RJTkdfRlVaWkVSU19YRkFfUFJPQ0VTU19TVEFURV9IXwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9meF9zdHJpbmdfdGVzdGhlbHBlcnMuY3BwIGIvdGVzdGluZy9meF9zdHJpbmdfdGVzdGhlbHBlcnMuY3BwCmluZGV4IDRhN2JkYTcuLjhlNzZhNzYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZnhfc3RyaW5nX3Rlc3RoZWxwZXJzLmNwcAorKysgYi90ZXN0aW5nL2Z4X3N0cmluZ190ZXN0aGVscGVycy5jcHAKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxNCBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE0IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtNiw4ICs2LDExIEBACiAKICNpbmNsdWRlIDxpb21hbmlwPgogI2luY2x1ZGUgPGlvcz4KKyNpbmNsdWRlIDxvc3RyZWFtPgogCisjaW5jbHVkZSAiY29yZS9meGNydC9jZnhfZGF0ZXRpbWUuaCIKICNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Z4X3N0cmluZy5oIgorI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2UvY2hlY2tfb3AuaCIKICNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL3NwYW4uaCIKIAogc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IENGWF9EYXRlVGltZSYgZHQpIHsKQEAgLTIyLDcgKzI1LDcgQEAKIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBTdHJpbmdTcGxpdChjb25zdCBzdGQ6OnN0cmluZyYgc3RyLCBjaGFyIGRlbGltaXRlcikgewogICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gcmVzdWx0OwogICBzaXplX3QgcG9zID0gMDsKLSAgd2hpbGUgKDEpIHsKKyAgd2hpbGUgKHRydWUpIHsKICAgICBzaXplX3QgZm91bmQgPSBzdHIuZmluZChkZWxpbWl0ZXIsIHBvcyk7CiAgICAgaWYgKGZvdW5kID09IHN0ZDo6c3RyaW5nOjpucG9zKQogICAgICAgYnJlYWs7CkBAIC00OCwxNiArNTEsMTcgQEAKICAgd2hpbGUgKHdzdHJbY2hhcmFjdGVyc10pCiAgICAgKytjaGFyYWN0ZXJzOwogCi0gIHN0ZDo6d3N0cmluZyBwbGF0Zm9ybV9zdHJpbmcoY2hhcmFjdGVycywgTCdcMCcpOwotICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoYXJhY3RlcnMgKyAxOyArK2kpIHsKKyAgc3RkOjp3c3RyaW5nIHBsYXRmb3JtX3N0cmluZzsKKyAgcGxhdGZvcm1fc3RyaW5nLnJlc2VydmUoY2hhcmFjdGVycyk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hhcmFjdGVyczsgKytpKSB7CiAgICAgY29uc3QgdW5zaWduZWQgY2hhciogcHRyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oJndzdHJbaV0pOwotICAgIHBsYXRmb3JtX3N0cmluZ1tpXSA9IHB0clswXSArIDI1NiAqIHB0clsxXTsKKyAgICBwbGF0Zm9ybV9zdHJpbmcucHVzaF9iYWNrKHB0clswXSArIDI1NiAqIHB0clsxXSk7CiAgIH0KICAgcmV0dXJuIHBsYXRmb3JtX3N0cmluZzsKIH0KIAogU2NvcGVkRlBERldpZGVTdHJpbmcgR2V0RlBERldpZGVTdHJpbmcoY29uc3Qgc3RkOjp3c3RyaW5nJiB3c3RyKSB7Ci0gIHNpemVfdCBsZW5ndGggPSBzaXplb2YodWludDE2X3QpICogKHdzdHIubGVuZ3RoKCkgKyAxKTsKKyAgc2l6ZV90IGxlbmd0aCA9IHNpemVvZih1aW50MTZfdCkgKiAod3N0ci5zaXplKCkgKyAxKTsKICAgU2NvcGVkRlBERldpZGVTdHJpbmcgcmVzdWx0KHN0YXRpY19jYXN0PEZQREZfV0NIQVIqPihtYWxsb2MobGVuZ3RoKSkpOwogICBwZGZpdW06OnNwYW48dWludDhfdD4gcmVzdWx0X3NwYW4ocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4ocmVzdWx0LmdldCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCk7CkBAIC03Miw2ICs3Niw2IEBACiB9CiAKIHN0ZDo6dmVjdG9yPEZQREZfV0NIQVI+IEdldEZQREZXaWRlU3RyaW5nQnVmZmVyKHNpemVfdCBsZW5ndGhfYnl0ZXMpIHsKLSAgQVNTRVJUKGxlbmd0aF9ieXRlcyAlIHNpemVvZihGUERGX1dDSEFSKSA9PSAwKTsKKyAgRENIRUNLX0VRKGxlbmd0aF9ieXRlcyAlIHNpemVvZihGUERGX1dDSEFSKSwgMCk7CiAgIHJldHVybiBzdGQ6OnZlY3RvcjxGUERGX1dDSEFSPihsZW5ndGhfYnl0ZXMgLyBzaXplb2YoRlBERl9XQ0hBUikpOwogfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9meF9zdHJpbmdfdGVzdGhlbHBlcnMuaCBiL3Rlc3RpbmcvZnhfc3RyaW5nX3Rlc3RoZWxwZXJzLmgKaW5kZXggYjkwODM4YS4uMjA3OTQ3YyAxMDA2NDQKLS0tIGEvdGVzdGluZy9meF9zdHJpbmdfdGVzdGhlbHBlcnMuaAorKysgYi90ZXN0aW5nL2Z4X3N0cmluZ190ZXN0aGVscGVycy5oCkBAIC0xLDE5ICsxLDIwIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE0IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogI2lmbmRlZiBURVNUSU5HX0ZYX1NUUklOR19URVNUSEVMUEVSU19IXwogI2RlZmluZSBURVNUSU5HX0ZYX1NUUklOR19URVNUSEVMUEVSU19IXwogCisjaW5jbHVkZSA8aW9zZndkPgogI2luY2x1ZGUgPG1lbW9yeT4KLSNpbmNsdWRlIDxvc3RyZWFtPgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx2ZWN0b3I+CiAKLSNpbmNsdWRlICJjb3JlL2Z4Y3J0L2NmeF9kYXRldGltZS5oIgogI2luY2x1ZGUgInB1YmxpYy9mcGRmdmlldy5oIgogI2luY2x1ZGUgInRlc3RpbmcvZnJlZV9kZWxldGVyLmgiCiAKK2NsYXNzIENGWF9EYXRlVGltZTsKKwogLy8gT3V0cHV0IHN0cmVhbSBvcGVyYXRvciBzbyBHVEVTVCBtYWNyb3Mgd29yayB3aXRoIENGWF9EYXRlVGltZSBvYmplY3RzLgogc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IENGWF9EYXRlVGltZSYgZHQpOwogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2Z4Z2NfdW5pdHRlc3QuY3BwIGIvdGVzdGluZy9meGdjX3VuaXR0ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzAxYWI0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9meGdjX3VuaXR0ZXN0LmNwcApAQCAtMCwwICsxLDM5IEBACisvLyBDb3B5cmlnaHQgMjAyMCBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRlICJ0ZXN0aW5nL2Z4Z2NfdW5pdHRlc3QuaCIKKworI2luY2x1ZGUgImZ4anMvZ2MvaGVhcC5oIgorI2luY2x1ZGUgInRlc3RpbmcvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC5oIgorI2luY2x1ZGUgInRlc3RpbmcvdjhfdGVzdF9lbnZpcm9ubWVudC5oIgorI2luY2x1ZGUgInY4L2luY2x1ZGUvbGlicGxhdGZvcm0vbGlicGxhdGZvcm0uaCIKKworRlhHQ1VuaXRUZXN0OjpGWEdDVW5pdFRlc3QoKSA9IGRlZmF1bHQ7CisKK0ZYR0NVbml0VGVzdDo6fkZYR0NVbml0VGVzdCgpID0gZGVmYXVsdDsKKwordm9pZCBGWEdDVW5pdFRlc3Q6OlNldFVwKCkgeworICA6OnRlc3Rpbmc6OlRlc3Q6OlNldFVwKCk7CisgIGF1dG8qIGVudiA9IFY4VGVzdEVudmlyb25tZW50OjpHZXRJbnN0YW5jZSgpOworICBGWEdDX0luaXRpYWxpemUoZW52LT5wbGF0Zm9ybSgpLCBlbnYtPmlzb2xhdGUoKSk7CisgIGhlYXBfID0gRlhHQ19DcmVhdGVIZWFwKCk7CisgIEFTU0VSVF9UUlVFKGhlYXBfKTsKK30KKwordm9pZCBGWEdDVW5pdFRlc3Q6OlRlYXJEb3duKCkgeworICBGb3JjZUdDQW5kUHVtcCgpOworICBoZWFwXy5yZXNldCgpOworICBGWEdDX1JlbGVhc2UoKTsKKyAgOjp0ZXN0aW5nOjpUZXN0OjpUZWFyRG93bigpOworfQorCit2b2lkIEZYR0NVbml0VGVzdDo6Rm9yY2VHQ0FuZFB1bXAoKSB7CisgIEZYR0NfRm9yY2VHYXJiYWdlQ29sbGVjdGlvbihoZWFwXy5nZXQoKSk7CisgIFB1bXAoKTsKK30KKwordm9pZCBGWEdDVW5pdFRlc3Q6OlB1bXAoKSB7CisgIFY4VGVzdEVudmlyb25tZW50OjpQdW1wUGxhdGZvcm1NZXNzYWdlTG9vcCgKKyAgICAgIFY4VGVzdEVudmlyb25tZW50OjpHZXRJbnN0YW5jZSgpLT5pc29sYXRlKCkpOworfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9meGdjX3VuaXR0ZXN0LmggYi90ZXN0aW5nL2Z4Z2NfdW5pdHRlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjI1MTkwCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9meGdjX3VuaXR0ZXN0LmgKQEAgLTAsMCArMSwyOCBAQAorLy8gQ29weXJpZ2h0IDIwMjAgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaWZuZGVmIFRFU1RJTkdfRlhHQ19VTklUVEVTVF9IXworI2RlZmluZSBURVNUSU5HX0ZYR0NfVU5JVFRFU1RfSF8KKworI2luY2x1ZGUgImZ4anMvZ2MvaGVhcC5oIgorI2luY2x1ZGUgInRlc3RpbmcvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC5oIgorCitjbGFzcyBGWEdDVW5pdFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKKyBwdWJsaWM6CisgIEZYR0NVbml0VGVzdCgpOworICB+RlhHQ1VuaXRUZXN0KCkgb3ZlcnJpZGU7CisKKyAgLy8gdGVzdGluZzo6VGVzdDoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlOworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGU7CisKKyAgY3BwZ2M6OkhlYXAqIGhlYXAoKSBjb25zdCB7IHJldHVybiBoZWFwXy5nZXQoKTsgfQorICB2b2lkIEZvcmNlR0NBbmRQdW1wKCk7CisgIHZvaWQgUHVtcCgpOworCisgcHJpdmF0ZToKKyAgRlhHQ1Njb3BlZEhlYXAgaGVhcF87Cit9OworCisjZW5kaWYgIC8vIFRFU1RJTkdfRlhHQ19VTklUVEVTVF9IXwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9meHY4X3VuaXR0ZXN0LmNwcCBiL3Rlc3RpbmcvZnh2OF91bml0dGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRkNGMwOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZnh2OF91bml0dGVzdC5jcHAKQEAgLTAsMCArMSwyNiBAQAorLy8gQ29weXJpZ2h0IDIwMjAgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaW5jbHVkZSAidGVzdGluZy9meHY4X3VuaXR0ZXN0LmgiCisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlICJmeGpzL2NmeF92OF9hcnJheV9idWZmZXJfYWxsb2NhdG9yLmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS92OC1pc29sYXRlLmgiCisKK3ZvaWQgRlhWOFVuaXRUZXN0OjpWOElzb2xhdGVEZWxldGVyOjpvcGVyYXRvcigpKHY4OjpJc29sYXRlKiBwdHIpIGNvbnN0IHsKKyAgcHRyLT5EaXNwb3NlKCk7Cit9CisKK0ZYVjhVbml0VGVzdDo6RlhWOFVuaXRUZXN0KCkgPSBkZWZhdWx0OworCitGWFY4VW5pdFRlc3Q6On5GWFY4VW5pdFRlc3QoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgRlhWOFVuaXRUZXN0OjpTZXRVcCgpIHsKKyAgYXJyYXlfYnVmZmVyX2FsbG9jYXRvcl8gPSBzdGQ6Om1ha2VfdW5pcXVlPENGWF9WOEFycmF5QnVmZmVyQWxsb2NhdG9yPigpOworCisgIHY4OjpJc29sYXRlOjpDcmVhdGVQYXJhbXMgcGFyYW1zOworICBwYXJhbXMuYXJyYXlfYnVmZmVyX2FsbG9jYXRvciA9IGFycmF5X2J1ZmZlcl9hbGxvY2F0b3JfLmdldCgpOworICBpc29sYXRlXy5yZXNldCh2ODo6SXNvbGF0ZTo6TmV3KHBhcmFtcykpOworfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9meHY4X3VuaXR0ZXN0LmggYi90ZXN0aW5nL2Z4djhfdW5pdHRlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzU3YzczCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9meHY4X3VuaXR0ZXN0LmgKQEAgLTAsMCArMSwzNyBAQAorLy8gQ29weXJpZ2h0IDIwMjAgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaWZuZGVmIFRFU1RJTkdfRlhWOF9VTklUVEVTVF9IXworI2RlZmluZSBURVNUSU5HX0ZYVjhfVU5JVFRFU1RfSF8KKworI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgInRlc3RpbmcvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC5oIgorCitjbGFzcyBDRlhfVjg7CitjbGFzcyBDRlhfVjhBcnJheUJ1ZmZlckFsbG9jYXRvcjsKKworbmFtZXNwYWNlIHY4IHsKK2NsYXNzIElzb2xhdGU7Cit9ICAvLyBuYW1lc3BhY2UgdjgKKworY2xhc3MgRlhWOFVuaXRUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7CisgcHVibGljOgorICBzdHJ1Y3QgVjhJc29sYXRlRGVsZXRlciB7CisgICAgdm9pZCBvcGVyYXRvcigpKHY4OjpJc29sYXRlKiBwdHIpIGNvbnN0OworICB9OworCisgIEZYVjhVbml0VGVzdCgpOworICB+RlhWOFVuaXRUZXN0KCkgb3ZlcnJpZGU7CisKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlOworCisgIHY4OjpJc29sYXRlKiBpc29sYXRlKCkgY29uc3QgeyByZXR1cm4gaXNvbGF0ZV8uZ2V0KCk7IH0KKworIHByb3RlY3RlZDoKKyAgc3RkOjp1bmlxdWVfcHRyPENGWF9WOEFycmF5QnVmZmVyQWxsb2NhdG9yPiBhcnJheV9idWZmZXJfYWxsb2NhdG9yXzsKKyAgc3RkOjp1bmlxdWVfcHRyPHY4OjpJc29sYXRlLCBWOElzb2xhdGVEZWxldGVyPiBpc29sYXRlXzsKK307CisKKyNlbmRpZiAgLy8gVEVTVElOR19GWFY4X1VOSVRURVNUX0hfCmRpZmYgLS1naXQgYS90ZXN0aW5nL2dtb2NrL0JVSUxELmduIGIvdGVzdGluZy9nbW9jay9CVUlMRC5nbgppbmRleCBkN2RlMmU5Li5mZWI4MjQwIDEwMDY0NAotLS0gYS90ZXN0aW5nL2dtb2NrL0JVSUxELmduCisrKyBiL3Rlc3RpbmcvZ21vY2svQlVJTEQuZ24KQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAyMDE4IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzCiAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtNiwzMSArNiwxNCBAQAogIyBpdCBzdGFiaWxpemVzLCBDaHJvbWl1bSBjb2RlIE1VU1QgdXNlIHRoaXMgdGFyZ2V0IGluc3RlYWQgb2YgcmVhY2hpbmcgZGlyZWN0bHkKICMgaW50byAvL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3QuCiAKLWltcG9ydCgiLy9idWlsZF9vdmVycmlkZXMvYnVpbGQuZ25pIikKLQogc291cmNlX3NldCgiZ21vY2siKSB7CiAgIHRlc3Rvbmx5ID0gdHJ1ZQogICBzb3VyY2VzID0gWwogICAgICJpbmNsdWRlL2dtb2NrL2dtb2NrLWFjdGlvbnMuaCIsCi0gICAgImluY2x1ZGUvZ21vY2svZ21vY2stZ2VuZXJhdGVkLWZ1bmN0aW9uLW1vY2tlcnMuaCIsCiAgICAgImluY2x1ZGUvZ21vY2svZ21vY2stbWF0Y2hlcnMuaCIsCiAgICAgImluY2x1ZGUvZ21vY2svZ21vY2suaCIsCiAgIF0KLSAgZGVwcyA9IFsgIi8vdGhpcmRfcGFydHkvZ29vZ2xldGVzdDpnbW9jayIgXQotCi0gICMgVE9ETyhjcmJ1Zy5jb20vODA2OTUyKTogRGVwZW5kaW5nIG9uIGdtb2NrX211dGFudCBvbmx5IGlmIGJ1aWxkX3dpdGhfY2hyb21pdW0sCi0gICMgYmVjYXVzZSBnbW9ja19tdXRhbnQgZGVwZW5kcyBvbiAvL2Jhc2Ugd2hpY2ggdXNlcyBDKysxNC4gU2luY2UgZ21vY2sgaXMgYQotICAjIHRoaXJkX3BhcnR5IGxpYnJhcnkgdXNlZCBieSBvdGhlciBwcm9qZWN0cyBpdCBzaG91bGQgbm90IGluY2x1ZGUgQysrMTQgb25seSBjb2RlLgotICBpZiAoYnVpbGRfd2l0aF9jaHJvbWl1bSkgewotICAgICMgQWxsb3cgQ2hyb21pdW0gdGFyZ2V0cyBkZXBlbmRpbmcgb24gZ21vY2sgdG8gI2luY2x1ZGUgdGVzdGluZy9nbW9ja19tdXRhbnQuaAotICAgICMgd2l0aG91dCB0cmlnZ2VyaW5nIGEgYGduIGNoZWNrYCBlcnJvci4KLSAgICBwdWJsaWNfZGVwcyA9IFsgIi8vdGVzdGluZzpnbW9ja19tdXRhbnQiIF0KLSAgfQotCi0gIHB1YmxpY19jb25maWdzID0gWwotICAgICIvL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Q6Z21vY2tfY29uZmlnIiwKLSAgICAiLy90aGlyZF9wYXJ0eS9nb29nbGV0ZXN0Omd0ZXN0X2NvbmZpZyIsCi0gIF0KKyAgcHVibGljX2RlcHMgPSBbICIvL3RoaXJkX3BhcnR5L2dvb2dsZXRlc3Q6Z21vY2siIF0KIH0KIAogIyBUaGUgZmlsZS9kaXJlY3RvcnkgbGF5b3V0IG9mIEdvb2dsZSBUZXN0IGlzIG5vdCB5ZXQgY29uc2lkZXJlZCBzdGFibGUuIFVudGlsCmRpZmYgLS1naXQgYS90ZXN0aW5nL2dtb2NrL2luY2x1ZGUvZ21vY2svZ21vY2stYWN0aW9ucy5oIGIvdGVzdGluZy9nbW9jay9pbmNsdWRlL2dtb2NrL2dtb2NrLWFjdGlvbnMuaAppbmRleCBmYjE5M2U1Li4yMWZjNmIwIDEwMDY0NAotLS0gYS90ZXN0aW5nL2dtb2NrL2luY2x1ZGUvZ21vY2svZ21vY2stYWN0aW9ucy5oCisrKyBiL3Rlc3RpbmcvZ21vY2svaW5jbHVkZS9nbW9jay9nbW9jay1hY3Rpb25zLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZ21vY2svaW5jbHVkZS9nbW9jay9nbW9jay1nZW5lcmF0ZWQtZnVuY3Rpb24tbW9ja2Vycy5oIGIvdGVzdGluZy9nbW9jay9pbmNsdWRlL2dtb2NrL2dtb2NrLWdlbmVyYXRlZC1mdW5jdGlvbi1tb2NrZXJzLmgKaW5kZXggNTdjYmMwYS4uOGNlNTFhMCAxMDA2NDQKLS0tIGEvdGVzdGluZy9nbW9jay9pbmNsdWRlL2dtb2NrL2dtb2NrLWdlbmVyYXRlZC1mdW5jdGlvbi1tb2NrZXJzLmgKKysrIGIvdGVzdGluZy9nbW9jay9pbmNsdWRlL2dtb2NrL2dtb2NrLWdlbmVyYXRlZC1mdW5jdGlvbi1tb2NrZXJzLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZ21vY2svaW5jbHVkZS9nbW9jay9nbW9jay1tYXRjaGVycy5oIGIvdGVzdGluZy9nbW9jay9pbmNsdWRlL2dtb2NrL2dtb2NrLW1hdGNoZXJzLmgKaW5kZXggMjVkMjVlOS4uY2E3Y2YwZSAxMDA2NDQKLS0tIGEvdGVzdGluZy9nbW9jay9pbmNsdWRlL2dtb2NrL2dtb2NrLW1hdGNoZXJzLmgKKysrIGIvdGVzdGluZy9nbW9jay9pbmNsdWRlL2dtb2NrL2dtb2NrLW1hdGNoZXJzLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZ21vY2svaW5jbHVkZS9nbW9jay9nbW9jay5oIGIvdGVzdGluZy9nbW9jay9pbmNsdWRlL2dtb2NrL2dtb2NrLmgKaW5kZXggYTM0NGJjYi4uZGZjZDJkNCAxMDA2NDQKLS0tIGEvdGVzdGluZy9nbW9jay9pbmNsdWRlL2dtb2NrL2dtb2NrLmgKKysrIGIvdGVzdGluZy9nbW9jay9pbmNsdWRlL2dtb2NrL2dtb2NrLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZ3Rlc3QvQlVJTEQuZ24gYi90ZXN0aW5nL2d0ZXN0L0JVSUxELmduCmluZGV4IGFkMGIyNjkuLmY2Yjk4ZGYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZ3Rlc3QvQlVJTEQuZ24KKysrIGIvdGVzdGluZy9ndGVzdC9CVUlMRC5nbgpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMKICMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCkBAIC01NSwxMCArNTUsNyBAQAogICAgIHNvdXJjZXMgKz0gWyAiLi4vcGxhdGZvcm1fdGVzdC5oIiBdCiAgIH0KIAotICBpZiAoKGlzX21hYyB8fCBpc19pb3MpICYmIGd0ZXN0X2luY2x1ZGVfb2JqY19zdXBwb3J0KSB7Ci0gICAgaWYgKGlzX2lvcykgewotICAgICAgc2V0X3NvdXJjZXNfYXNzaWdubWVudF9maWx0ZXIoW10pCi0gICAgfQorICBpZiAoaXNfYXBwbGUgJiYgZ3Rlc3RfaW5jbHVkZV9vYmpjX3N1cHBvcnQpIHsKICAgICBzb3VyY2VzICs9IFsKICAgICAgICIuLi9ndGVzdF9tYWMuaCIsCiAgICAgICAiLi4vZ3Rlc3RfbWFjLm1tIiwKQEAgLTY2LDE1ICs2MywxMCBAQAogICAgIGlmIChndGVzdF9pbmNsdWRlX3BsYXRmb3JtX3Rlc3QpIHsKICAgICAgIHNvdXJjZXMgKz0gWyAiLi4vcGxhdGZvcm1fdGVzdF9tYWMubW0iIF0KICAgICB9Ci0gICAgc2V0X3NvdXJjZXNfYXNzaWdubWVudF9maWx0ZXIoc291cmNlc19hc3NpZ25tZW50X2ZpbHRlcikKICAgfQogCiAgIGlmIChpc19pb3MgJiYgZ3Rlc3RfaW5jbHVkZV9pb3NfY292ZXJhZ2UpIHsKLSAgICBzb3VyY2VzICs9IFsKLSAgICAgICIuLi9jb3ZlcmFnZV91dGlsX2lvcy5oIiwKLSAgICAgICIuLi9jb3ZlcmFnZV91dGlsX2lvcy5tbSIsCi0gICAgXQotICAgIGRlcHMgPSBbICI6aW9zX2VuYWJsZV9jb3ZlcmFnZSIgXQorICAgIHB1YmxpY19kZXBzICs9IFsgIjppb3NfY292ZXJhZ2VfdXRpbHMiIF0KICAgfQogfQogCkBAIC04Nyw2ICs3OSwxNiBAQAogfQogCiBpZiAoaXNfaW9zKSB7CisgICMgVGhlc2UgaGVhZGVycyBhcmUgbmVlZGVkIGluIHNvbWUgbm9uIHRlc3QgdGFyZ2V0cyBmb3IgaU9TIGNvZGUgY292ZXJhZ2UuIFNvCisgICMgY2FuIG5vdCBiZSB0ZXN0b25seS4KKyAgc291cmNlX3NldCgiaW9zX2NvdmVyYWdlX3V0aWxzIikgeworICAgIHNvdXJjZXMgPSBbCisgICAgICAiLi4vY292ZXJhZ2VfdXRpbF9pb3MuaCIsCisgICAgICAiLi4vY292ZXJhZ2VfdXRpbF9pb3MubW0iLAorICAgIF0KKyAgICBkZXBzID0gWyAiOmlvc19lbmFibGVfY292ZXJhZ2UiIF0KKyAgfQorCiAgIGJ1aWxkZmxhZ19oZWFkZXIoImlvc19lbmFibGVfY292ZXJhZ2UiKSB7CiAgICAgaGVhZGVyID0gImlvc19lbmFibGVfY292ZXJhZ2UuaCIKICAgICBmbGFncyA9IFsgIklPU19FTkFCTEVfQ09WRVJBR0U9JHVzZV9jbGFuZ19jb3ZlcmFnZSIgXQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9ndGVzdC9lbXB0eS5jYyBiL3Rlc3RpbmcvZ3Rlc3QvZW1wdHkuY2MKaW5kZXggNTE4NmI1OS4uN2NmZTc5ZiAxMDA2NDQKLS0tIGEvdGVzdGluZy9ndGVzdC9lbXB0eS5jYworKysgYi90ZXN0aW5nL2d0ZXN0L2VtcHR5LmNjCkBAIC0xLDMgKzEsMyBAQAotLy8gQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LWRlYXRoLXRlc3QuaCBiL3Rlc3RpbmcvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1kZWF0aC10ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU3OWM4MgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1kZWF0aC10ZXN0LmgKQEAgLTAsMCArMSwxMCBAQAorLy8gQ29weXJpZ2h0IDIwMjAgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvLyBUaGUgZmlsZS9kaXJlY3RvcnkgbGF5b3V0IG9mIEdvb2dsZSBUZXN0IGlzIG5vdCB5ZXQgY29uc2lkZXJlZCBzdGFibGUuIFVudGlsCisvLyBpdCBzdGFiaWxpemVzLCBQREZpdW0gY29kZSB3aWxsIHVzZSBmb3J3YXJkaW5nIGhlYWRlcnMgaW4gdGVzdGluZy9ndGVzdAorLy8gYW5kIHRlc3RpbmcvZ21vY2ssIGluc3RlYWQgb2YgZGlyZWN0bHkgaW5jbHVkaW5nIGZpbGVzIGluCisvLyB0aGlyZF9wYXJ0eS9nb29nbGV0ZXN0LgorCisjaW5jbHVkZSAidGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zcmMvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LWRlYXRoLXRlc3QuaCIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1tZXNzYWdlLmggYi90ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4NTk3MzAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtbWVzc2FnZS5oCkBAIC0wLDAgKzEsMTAgQEAKKy8vIENvcHlyaWdodCAyMDIwIFRoZSBQREZpdW0gQXV0aG9ycworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLy8gVGhlIGZpbGUvZGlyZWN0b3J5IGxheW91dCBvZiBHb29nbGUgVGVzdCBpcyBub3QgeWV0IGNvbnNpZGVyZWQgc3RhYmxlLiBVbnRpbAorLy8gaXQgc3RhYmlsaXplcywgUERGaXVtIGNvZGUgd2lsbCB1c2UgZm9yd2FyZGluZyBoZWFkZXJzIGluIHRlc3RpbmcvZ3Rlc3QKKy8vIGFuZCB0ZXN0aW5nL2dtb2NrLCBpbnN0ZWFkIG9mIGRpcmVjdGx5IGluY2x1ZGluZyBmaWxlcyBpbgorLy8gdGhpcmRfcGFydHkvZ29vZ2xldGVzdC4KKworI2luY2x1ZGUgInRoaXJkX3BhcnR5L2dvb2dsZXRlc3Qvc3JjL2dvb2dsZXRlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC1tZXNzYWdlLmgiCmRpZmYgLS1naXQgYS90ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oIGIvdGVzdGluZy9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDY4MWU0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXBhcmFtLXRlc3QuaApAQCAtMCwwICsxLDEwIEBACisvLyBDb3B5cmlnaHQgMjAyMCBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKy8vIFRoZSBmaWxlL2RpcmVjdG9yeSBsYXlvdXQgb2YgR29vZ2xlIFRlc3QgaXMgbm90IHlldCBjb25zaWRlcmVkIHN0YWJsZS4gVW50aWwKKy8vIGl0IHN0YWJpbGl6ZXMsIFBERml1bSBjb2RlIHdpbGwgdXNlIGZvcndhcmRpbmcgaGVhZGVycyBpbiB0ZXN0aW5nL2d0ZXN0CisvLyBhbmQgdGVzdGluZy9nbW9jaywgaW5zdGVhZCBvZiBkaXJlY3RseSBpbmNsdWRpbmcgZmlsZXMgaW4KKy8vIHRoaXJkX3BhcnR5L2dvb2dsZXRlc3QuCisKKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9nb29nbGV0ZXN0L3NyYy9nb29nbGV0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QtcGFyYW0tdGVzdC5oIgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXNwaS5oIGIvdGVzdGluZy9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXNwaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0YmE1ZWUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3Qtc3BpLmgKQEAgLTAsMCArMSwxMCBAQAorLy8gQ29weXJpZ2h0IDIwMjAgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisvLyBUaGUgZmlsZS9kaXJlY3RvcnkgbGF5b3V0IG9mIEdvb2dsZSBUZXN0IGlzIG5vdCB5ZXQgY29uc2lkZXJlZCBzdGFibGUuIFVudGlsCisvLyBpdCBzdGFiaWxpemVzLCBQREZpdW0gY29kZSB3aWxsIHVzZSBmb3J3YXJkaW5nIGhlYWRlcnMgaW4gdGVzdGluZy9ndGVzdAorLy8gYW5kIHRlc3RpbmcvZ21vY2ssIGluc3RlYWQgb2YgZGlyZWN0bHkgaW5jbHVkaW5nIGZpbGVzIGluCisvLyB0aGlyZF9wYXJ0eS9nb29nbGV0ZXN0LgorCisjaW5jbHVkZSAidGhpcmRfcGFydHkvZ29vZ2xldGVzdC9zcmMvZ29vZ2xldGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LXNwaS5oIgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LmggYi90ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaAppbmRleCA5NDI1YjI1Li40NzA2MjgwIDEwMDY0NAotLS0gYS90ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaAorKysgYi90ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaApAQCAtMSw5ICsxLDkgQEAKLS8vIENvcHlyaWdodCAyMDE4IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE4IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogLy8gVGhlIGZpbGUvZGlyZWN0b3J5IGxheW91dCBvZiBHb29nbGUgVGVzdCBpcyBub3QgeWV0IGNvbnNpZGVyZWQgc3RhYmxlLiBVbnRpbAotLy8gaXQgc3RhYmlsaXplcywgQ2hyb21pdW0gY29kZSB3aWxsIHVzZSBmb3J3YXJkaW5nIGhlYWRlcnMgaW4gdGVzdGluZy9ndGVzdAorLy8gaXQgc3RhYmlsaXplcywgUERGaXVtIGNvZGUgd2lsbCB1c2UgZm9yd2FyZGluZyBoZWFkZXJzIGluIHRlc3RpbmcvZ3Rlc3QKIC8vIGFuZCB0ZXN0aW5nL2dtb2NrLCBpbnN0ZWFkIG9mIGRpcmVjdGx5IGluY2x1ZGluZyBmaWxlcyBpbgogLy8gdGhpcmRfcGFydHkvZ29vZ2xldGVzdC4KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3Byb2QuaCBiL3Rlc3RpbmcvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdF9wcm9kLmgKaW5kZXggMmQ2N2I0Mi4uNzAzYTE3NiAxMDA2NDQKLS0tIGEvdGVzdGluZy9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0X3Byb2QuaAorKysgYi90ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3RfcHJvZC5oCkBAIC0xLDkgKzEsOSBAQAotLy8gQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiAvLyBUaGUgZmlsZS9kaXJlY3RvcnkgbGF5b3V0IG9mIEdvb2dsZSBUZXN0IGlzIG5vdCB5ZXQgY29uc2lkZXJlZCBzdGFibGUuIFVudGlsCi0vLyBpdCBzdGFiaWxpemVzLCBDaHJvbWl1bSBjb2RlIHdpbGwgdXNlIGZvcndhcmRpbmcgaGVhZGVycyBpbiB0ZXN0aW5nL2d0ZXN0CisvLyBpdCBzdGFiaWxpemVzLCBQREZpdW0gY29kZSB3aWxsIHVzZSBmb3J3YXJkaW5nIGhlYWRlcnMgaW4gdGVzdGluZy9ndGVzdAogLy8gYW5kIHRlc3RpbmcvZ21vY2ssIGluc3RlYWQgb2YgZGlyZWN0bHkgaW5jbHVkaW5nIGZpbGVzIGluCiAvLyB0aGlyZF9wYXJ0eS9nb29nbGV0ZXN0LgogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2d0ZXN0X21hYy5oIGIvdGVzdGluZy9ndGVzdF9tYWMuaAppbmRleCAwYzBiNjU1Li45NWQ3ZDMyIDEwMDY0NAotLS0gYS90ZXN0aW5nL2d0ZXN0X21hYy5oCisrKyBiL3Rlc3RpbmcvZ3Rlc3RfbWFjLmgKQEAgLTEsNiArMSw3IEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTAgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxMCBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKICNpZm5kZWYgVEVTVElOR19HVEVTVF9NQUNfSF8KICNkZWZpbmUgVEVTVElOR19HVEVTVF9NQUNfSF8KICNpbmNsdWRlIDxndGVzdC9pbnRlcm5hbC9ndGVzdC1wb3J0Lmg+CmRpZmYgLS1naXQgYS90ZXN0aW5nL2d0ZXN0X21hYy5tbSBiL3Rlc3RpbmcvZ3Rlc3RfbWFjLm1tCmluZGV4IGI0OTBmNTUuLjQ3OTEyYzcgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvZ3Rlc3RfbWFjLm1tCisrKyBiL3Rlc3RpbmcvZ3Rlc3RfbWFjLm1tCkBAIC0xLDYgKzEsNyBAQAotLy8gQ29weXJpZ2h0IChjKSAyMDEwIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTAgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCiAjaW1wb3J0ICJndGVzdF9tYWMuaCIKICNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvaW1hZ2VfZGlmZi9CVUlMRC5nbiBiL3Rlc3RpbmcvaW1hZ2VfZGlmZi9CVUlMRC5nbgppbmRleCAxNDE3NjliLi4wZjliNzFiIDEwMDY0NAotLS0gYS90ZXN0aW5nL2ltYWdlX2RpZmYvQlVJTEQuZ24KKysrIGIvdGVzdGluZy9pbWFnZV9kaWZmL0JVSUxELmduCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgMjAxOCBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAyMDE4IFRoZSBQREZpdW0gQXV0aG9ycwogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTEwLDcgKzEwLDEwIEBACiAgICAgImltYWdlX2RpZmZfcG5nLmNwcCIsCiAgICAgImltYWdlX2RpZmZfcG5nLmgiLAogICBdCi0gIGNvbmZpZ3MgKz0gWyAiLi4vLi4vOnBkZml1bV9jb3JlX2NvbmZpZyIgXQorICBjb25maWdzICs9IFsKKyAgICAiLi4vLi4vOnBkZml1bV9zdHJpY3RfY29uZmlnIiwKKyAgICAiLi4vLi4vOnBkZml1bV9ub3Nob3J0ZW5fY29uZmlnIiwKKyAgXQogICBkZXBzID0gWwogICAgICIuLi8uLi90aGlyZF9wYXJ0eTpwZGZpdW1fYmFzZSIsCiAgICAgIi4uLy4uL3RoaXJkX3BhcnR5OnBuZyIsCmRpZmYgLS1naXQgYS90ZXN0aW5nL2ltYWdlX2RpZmYvREVQUyBiL3Rlc3RpbmcvaW1hZ2VfZGlmZi9ERVBTCmluZGV4IDRiZDIzMzUuLmZjYWMyMDEgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvaW1hZ2VfZGlmZi9ERVBTCisrKyBiL3Rlc3RpbmcvaW1hZ2VfZGlmZi9ERVBTCkBAIC0xLDUgKzEsNSBAQAogaW5jbHVkZV9ydWxlcyA9IFsKLSAgJyt0aGlyZF9wYXJ0eS9saWJwbmcxNicsCisgICcrdGhpcmRfcGFydHkvbGlicG5nJywKICAgJyt0aGlyZF9wYXJ0eS96bGliJywKIF0KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9pbWFnZV9kaWZmL2ltYWdlX2RpZmYuY3BwIGIvdGVzdGluZy9pbWFnZV9kaWZmL2ltYWdlX2RpZmYuY3BwCmluZGV4IGM4ZjljYWYuLmE3MDE5MjEgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvaW1hZ2VfZGlmZi9pbWFnZV9kaWZmLmNwcAorKysgYi90ZXN0aW5nL2ltYWdlX2RpZmYvaW1hZ2VfZGlmZi5jcHAKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgKGMpIDIwMTEgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxMSBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTgsMTIgKzgsMTIgQEAKIC8vIFRoZSBleGFjdCBmb3JtYXQgb2YgdGhpcyB0b29sJ3Mgb3V0cHV0IHRvIHN0ZG91dCBpcyBpbXBvcnRhbnQsIHRvIG1hdGNoCiAvLyB3aGF0IHRoZSBydW4td2Via2l0LXRlc3RzIHNjcmlwdCBleHBlY3RzLgogCi0jaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIAogI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDxtYXA+CiAjaW5jbHVkZSA8c3RyaW5nPgogI2luY2x1ZGUgPHZlY3Rvcj4KQEAgLTIxLDEwICsyMSwxMCBAQAogI2luY2x1ZGUgImNvcmUvZnhjcnQvZnhfbWVtb3J5LmgiCiAjaW5jbHVkZSAidGVzdGluZy9pbWFnZV9kaWZmL2ltYWdlX2RpZmZfcG5nLmgiCiAjaW5jbHVkZSAidGVzdGluZy91dGlscy9wYXRoX3NlcnZpY2UuaCIKLSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL2xvZ2dpbmcuaCIKKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL2N4eDE3X2JhY2twb3J0cy5oIgogI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2UvbnVtZXJpY3Mvc2FmZV9jb252ZXJzaW9ucy5oIgogCi0jaWYgZGVmaW5lZChPU19XSU4pCisjaWYgQlVJTERGTEFHKElTX1dJTikKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKIApAQCAtMzksOCArMzksOSBAQAogCiBjbGFzcyBJbWFnZSB7CiAgcHVibGljOgotICBJbWFnZSgpIDogd18oMCksIGhfKDApIHt9Ci0gIEltYWdlKGNvbnN0IEltYWdlJiBpbWFnZSkgOiB3XyhpbWFnZS53XyksIGhfKGltYWdlLmhfKSwgZGF0YV8oaW1hZ2UuZGF0YV8pIHt9CisgIEltYWdlKCkgPSBkZWZhdWx0OworICBJbWFnZShjb25zdCBJbWFnZSYgaW1hZ2UpID0gZGVmYXVsdDsKKyAgSW1hZ2UmIG9wZXJhdG9yPShjb25zdCBJbWFnZSYgb3RoZXIpID0gZGVmYXVsdDsKIAogICBib29sIGhhc19pbWFnZSgpIGNvbnN0IHsgcmV0dXJuIHdfID4gMCAmJiBoXyA+IDA7IH0KICAgaW50IHcoKSBjb25zdCB7IHJldHVybiB3XzsgfQpAQCAtMTEwLDggKzExMSw4IEBACiAgIHNpemVfdCBwaXhlbF9hZGRyZXNzKGludCB4LCBpbnQgeSkgY29uc3QgeyByZXR1cm4gKHkgKiB3XyArIHgpICogNDsgfQogCiAgIC8vIFBpeGVsIGRpbWVuc2lvbnMgb2YgdGhlIGltYWdlLgotICBpbnQgd187Ci0gIGludCBoXzsKKyAgaW50IHdfID0gMDsKKyAgaW50IGhfID0gMDsKIAogICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBkYXRhXzsKIH07CkBAIC0xNDMsNyArMTQ0LDM2IEBACiAgICpwaXhlbHNfZGlmZmVyZW50ICs9IChtYXhfaCAtIGgpICogbWF4X3c7CiB9CiAKLWZsb2F0IFBlcmNlbnRhZ2VEaWZmZXJlbnQoY29uc3QgSW1hZ2UmIGJhc2VsaW5lLCBjb25zdCBJbWFnZSYgYWN0dWFsKSB7CitzdHJ1Y3QgVW5wYWNrZWRQaXhlbCB7CisgIGV4cGxpY2l0IFVucGFja2VkUGl4ZWwodWludDMyX3QgcGFja2VkKQorICAgICAgOiByZWQocGFja2VkICYgMHhmZiksCisgICAgICAgIGdyZWVuKChwYWNrZWQgPj4gOCkgJiAweGZmKSwKKyAgICAgICAgYmx1ZSgocGFja2VkID4+IDE2KSAmIDB4ZmYpLAorICAgICAgICBhbHBoYSgocGFja2VkID4+IDI0KSAmIDB4ZmYpIHt9CisKKyAgdWludDhfdCByZWQ7CisgIHVpbnQ4X3QgZ3JlZW47CisgIHVpbnQ4X3QgYmx1ZTsKKyAgdWludDhfdCBhbHBoYTsKK307CisKK3VpbnQ4X3QgQ2hhbm5lbERlbHRhKHVpbnQ4X3QgYmFzZWxpbmVfY2hhbm5lbCwgdWludDhfdCBhY3R1YWxfY2hhbm5lbCkgeworICAvLyBObyBjYXN0cyBhcmUgbmVjZXNzYXJ5IGJlY2F1c2UgYXJpdGhtZXRpYyBvcGVyYXRvcnMgaW1wbGljaXRseSBjb252ZXJ0CisgIC8vIGB1aW50OF90YCB0byBgaW50YCBmaXJzdC4gVGhlIGZpbmFsIGRlbHRhIGlzIGFsd2F5cyBpbiB0aGUgcmFuZ2UgMCB0byAyNTUuCisgIHJldHVybiBzdGQ6OmFicyhiYXNlbGluZV9jaGFubmVsIC0gYWN0dWFsX2NoYW5uZWwpOworfQorCit1aW50OF90IE1heFBpeGVsUGVyQ2hhbm5lbERlbHRhKGNvbnN0IFVucGFja2VkUGl4ZWwmIGJhc2VsaW5lX3BpeGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVbnBhY2tlZFBpeGVsJiBhY3R1YWxfcGl4ZWwpIHsKKyAgcmV0dXJuIHN0ZDo6bWF4KHtDaGFubmVsRGVsdGEoYmFzZWxpbmVfcGl4ZWwucmVkLCBhY3R1YWxfcGl4ZWwucmVkKSwKKyAgICAgICAgICAgICAgICAgICBDaGFubmVsRGVsdGEoYmFzZWxpbmVfcGl4ZWwuZ3JlZW4sIGFjdHVhbF9waXhlbC5ncmVlbiksCisgICAgICAgICAgICAgICAgICAgQ2hhbm5lbERlbHRhKGJhc2VsaW5lX3BpeGVsLmJsdWUsIGFjdHVhbF9waXhlbC5ibHVlKSwKKyAgICAgICAgICAgICAgICAgICBDaGFubmVsRGVsdGEoYmFzZWxpbmVfcGl4ZWwuYWxwaGEsIGFjdHVhbF9waXhlbC5hbHBoYSl9KTsKK30KKworZmxvYXQgUGVyY2VudGFnZURpZmZlcmVudChjb25zdCBJbWFnZSYgYmFzZWxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEltYWdlJiBhY3R1YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgbWF4X3BpeGVsX3Blcl9jaGFubmVsX2RlbHRhKSB7CiAgIGludCB3ID0gc3RkOjptaW4oYmFzZWxpbmUudygpLCBhY3R1YWwudygpKTsKICAgaW50IGggPSBzdGQ6Om1pbihiYXNlbGluZS5oKCksIGFjdHVhbC5oKCkpOwogCkBAIC0xNTEsOCArMTgxLDE3IEBACiAgIGludCBwaXhlbHNfZGlmZmVyZW50ID0gMDsKICAgZm9yIChpbnQgeSA9IDA7IHkgPCBoOyArK3kpIHsKICAgICBmb3IgKGludCB4ID0gMDsgeCA8IHc7ICsreCkgewotICAgICAgaWYgKGJhc2VsaW5lLnBpeGVsX2F0KHgsIHkpICE9IGFjdHVhbC5waXhlbF9hdCh4LCB5KSkKKyAgICAgIGNvbnN0IHVpbnQzMl90IGJhc2VsaW5lX3BpeGVsID0gYmFzZWxpbmUucGl4ZWxfYXQoeCwgeSk7CisgICAgICBjb25zdCB1aW50MzJfdCBhY3R1YWxfcGl4ZWwgPSBhY3R1YWwucGl4ZWxfYXQoeCwgeSk7CisgICAgICBpZiAoYmFzZWxpbmVfcGl4ZWwgPT0gYWN0dWFsX3BpeGVsKSB7CisgICAgICAgIGNvbnRpbnVlOworICAgICAgfQorCisgICAgICBpZiAoTWF4UGl4ZWxQZXJDaGFubmVsRGVsdGEoVW5wYWNrZWRQaXhlbChiYXNlbGluZV9waXhlbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5wYWNrZWRQaXhlbChhY3R1YWxfcGl4ZWwpKSA+CisgICAgICAgICAgbWF4X3BpeGVsX3Blcl9jaGFubmVsX2RlbHRhKSB7CiAgICAgICAgICsrcGl4ZWxzX2RpZmZlcmVudDsKKyAgICAgIH0KICAgICB9CiAgIH0KIApAQCAtMTk4LDIzICsyMzcsMzEgQEAKICAgZnByaW50ZigKICAgICAgIHN0ZGVyciwKICAgICAgICJVc2FnZTpcbiIKLSAgICAgICIgICVzIE9QVElPTlMgPGNvbXBhcmUgZmlsZT4gPHJlZmVyZW5jZSBmaWxlPlxuIgotICAgICAgIiAgICBDb21wYXJlcyB0d28gZmlsZXMgb24gZGlzaywgcmV0dXJuaW5nIDAgd2hlbiB0aGV5IGFyZSB0aGUgc2FtZTtcbiIKKyAgICAgICIgICVzIE9QVElPTlMgPGNvbXBhcmVfZmlsZT4gPHJlZmVyZW5jZV9maWxlPlxuIgorICAgICAgIiAgICBDb21wYXJlcyB0d28gZmlsZXMgb24gZGlzaywgcmV0dXJuaW5nIDAgd2hlbiB0aGV5IGFyZSB0aGUgc2FtZS5cbiIKICAgICAgICIgICAgUGFzc2luZyBcIi0taGlzdG9ncmFtXCIgYWRkaXRpb25hbGx5IGNhbGN1bGF0ZXMgYSBkaWZmIG9mIHRoZVxuIgotICAgICAgIiAgICBSR0JBIHZhbHVlIGhpc3RvZ3JhbXMuICh3aGljaCBpcyByZXNpc3RhbnQgdG8gc2hpZnRzIGluIGxheW91dClcbiIKLSAgICAgICIgICAgUGFzc2luZyBcIi0tcmV2ZXJzZS1ieXRlLW9yZGVyXCIgYWRkaXRpb25hbGx5IGFzc3VtZXMgdGhlIGNvbXBhcmVcbiIKLSAgICAgICIgICAgZmlsZSBoYXMgQkdSQSBieXRlIG9yZGVyaW5nLlxuIgotICAgICAgIiAgJXMgLS1kaWZmIDxjb21wYXJlIGZpbGU+IDxyZWZlcmVuY2UgZmlsZT4gPG91dHB1dCBmaWxlPlxuIgotICAgICAgIiAgICBDb21wYXJlcyB0d28gZmlsZXMgb24gZGlzaywgb3V0cHV0cyBhbiBpbWFnZSB0aGF0IHZpc3VhbGl6ZXMgdGhlXG4iCi0gICAgICAiICAgIGRpZmZlcmVuY2UgdG8gPG91dHB1dCBmaWxlPlxuIiwKLSAgICAgIGJpbmFyeV9uYW1lLmNfc3RyKCksIGJpbmFyeV9uYW1lLmNfc3RyKCkpOworICAgICAgIiAgICBSR0JBIHZhbHVlIGhpc3RvZ3JhbXMgKHdoaWNoIGlzIHJlc2lzdGFudCB0byBzaGlmdHMgaW4gbGF5b3V0KS5cbiIKKyAgICAgICIgICAgUGFzc2luZyBcIi0tcmV2ZXJzZS1ieXRlLW9yZGVyXCIgYWRkaXRpb25hbGx5IGFzc3VtZXMgdGhlXG4iCisgICAgICAiICAgIGNvbXBhcmUgZmlsZSBoYXMgQkdSQSBieXRlIG9yZGVyaW5nLlxuIgorICAgICAgIiAgICBQYXNzaW5nIFwiLS1mdXp6eVwiIGFkZGl0aW9uYWxseSBhbGxvd3MgaW5kaXZpZHVhbCBwaXhlbHMgdG9cbiIKKyAgICAgICIgICAgZGlmZmVyIGJ5IGF0IG1vc3QgMSBvbiBlYWNoIGNoYW5uZWwuXG5cbiIKKyAgICAgICIgICVzIC0tZGlmZiA8Y29tcGFyZV9maWxlPiA8cmVmZXJlbmNlX2ZpbGU+IDxvdXRwdXRfZmlsZT5cbiIKKyAgICAgICIgICAgQ29tcGFyZXMgdHdvIGZpbGVzIG9uIGRpc2ssIGFuZCBpZiB0aGV5IGRpZmZlciwgb3V0cHV0cyBhbiBpbWFnZVxuIgorICAgICAgIiAgICB0byA8b3V0cHV0X2ZpbGU+IHRoYXQgdmlzdWFsaXplcyB0aGUgZGlmZmVyaW5nIHBpeGVscyBhcyByZWRcbiIKKyAgICAgICIgICAgZG90cy5cblxuIgorICAgICAgIiAgJXMgLS1zdWJ0cmFjdCA8Y29tcGFyZV9maWxlPiA8cmVmZXJlbmNlX2ZpbGU+IDxvdXRwdXRfZmlsZT5cbiIKKyAgICAgICIgICAgQ29tcGFyZXMgdHdvIGZpbGVzIG9uIGRpc2ssIGFuZCBpZiB0aGV5IGRpZmZlciwgb3V0cHV0cyBhbiBpbWFnZVxuIgorICAgICAgIiAgICB0byA8b3V0cHV0X2ZpbGU+IHRoYXQgdmlzdWFsaXplcyB0aGUgZGlmZmVyZW5jZSBhcyBhIHNjYWxlZFxuIgorICAgICAgIiAgICBzdWJ0cmFjdGlvbiBvZiBwaXhlbCB2YWx1ZXMuXG4iLAorICAgICAgYmluYXJ5X25hbWUuY19zdHIoKSwgYmluYXJ5X25hbWUuY19zdHIoKSwgYmluYXJ5X25hbWUuY19zdHIoKSk7CiB9CiAKIGludCBDb21wYXJlSW1hZ2VzKGNvbnN0IHN0ZDo6c3RyaW5nJiBiaW5hcnlfbmFtZSwKICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlMSwKICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlMiwKICAgICAgICAgICAgICAgICAgIGJvb2wgY29tcGFyZV9oaXN0b2dyYW1zLAotICAgICAgICAgICAgICAgICAgYm9vbCByZXZlcnNlX2J5dGVfb3JkZXIpIHsKKyAgICAgICAgICAgICAgICAgIGJvb2wgcmV2ZXJzZV9ieXRlX29yZGVyLAorICAgICAgICAgICAgICAgICAgdWludDhfdCBtYXhfcGl4ZWxfcGVyX2NoYW5uZWxfZGVsdGEpIHsKICAgSW1hZ2UgYWN0dWFsX2ltYWdlOwogICBJbWFnZSBiYXNlbGluZV9pbWFnZTsKIApAQCAtMjQwLDcgKzI4Nyw4IEBACiAgIH0KIAogICBjb25zdCBjaGFyKiBjb25zdCBkaWZmX25hbWUgPSBjb21wYXJlX2hpc3RvZ3JhbXMgPyAiZXhhY3QgZGlmZiIgOiAiZGlmZiI7Ci0gIGZsb2F0IHBlcmNlbnQgPSBQZXJjZW50YWdlRGlmZmVyZW50KGFjdHVhbF9pbWFnZSwgYmFzZWxpbmVfaW1hZ2UpOworICBmbG9hdCBwZXJjZW50ID0gUGVyY2VudGFnZURpZmZlcmVudChhY3R1YWxfaW1hZ2UsIGJhc2VsaW5lX2ltYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfcGl4ZWxfcGVyX2NoYW5uZWxfZGVsdGEpOwogICBjb25zdCBjaGFyKiBjb25zdCBwYXNzZWQgPSBwZXJjZW50ID4gMC4wID8gImZhaWxlZCIgOiAicGFzc2VkIjsKICAgcHJpbnRmKCIlczogJTAxLjJmJSUgJXNcbiIsIGRpZmZfbmFtZSwgcGVyY2VudCwgcGFzc2VkKTsKIApAQCAtMjgwLDEwICszMjgsNDggQEAKICAgcmV0dXJuIHNhbWU7CiB9CiAKK2Jvb2wgU3VidHJhY3RJbWFnZXMoY29uc3QgSW1hZ2UmIGltYWdlMSwgY29uc3QgSW1hZ2UmIGltYWdlMiwgSW1hZ2UqIG91dCkgeworICBpbnQgdyA9IHN0ZDo6bWluKGltYWdlMS53KCksIGltYWdlMi53KCkpOworICBpbnQgaCA9IHN0ZDo6bWluKGltYWdlMS5oKCksIGltYWdlMi5oKCkpOworICAqb3V0ID0gSW1hZ2UoaW1hZ2UxKTsKKyAgYm9vbCBzYW1lID0gKGltYWdlMS53KCkgPT0gaW1hZ2UyLncoKSkgJiYgKGltYWdlMS5oKCkgPT0gaW1hZ2UyLmgoKSk7CisKKyAgZm9yIChpbnQgeSA9IDA7IHkgPCBoOyArK3kpIHsKKyAgICBmb3IgKGludCB4ID0gMDsgeCA8IHc7ICsreCkgeworICAgICAgdWludDMyX3QgcGl4ZWwxID0gaW1hZ2UxLnBpeGVsX2F0KHgsIHkpOworICAgICAgaW50MzJfdCByMSA9IHBpeGVsMSAmIDB4ZmY7CisgICAgICBpbnQzMl90IGcxID0gKHBpeGVsMSA+PiA4KSAmIDB4ZmY7CisgICAgICBpbnQzMl90IGIxID0gKHBpeGVsMSA+PiAxNikgJiAweGZmOworCisgICAgICB1aW50MzJfdCBwaXhlbDIgPSBpbWFnZTIucGl4ZWxfYXQoeCwgeSk7CisgICAgICBpbnQzMl90IHIyID0gcGl4ZWwyICYgMHhmZjsKKyAgICAgIGludDMyX3QgZzIgPSAocGl4ZWwyID4+IDgpICYgMHhmZjsKKyAgICAgIGludDMyX3QgYjIgPSAocGl4ZWwyID4+IDE2KSAmIDB4ZmY7CisKKyAgICAgIGludDMyX3QgZGVsdGFfciA9IHIxIC0gcjI7CisgICAgICBpbnQzMl90IGRlbHRhX2cgPSBnMSAtIGcyOworICAgICAgaW50MzJfdCBkZWx0YV9iID0gYjEgLSBiMjsKKyAgICAgIHNhbWUgJj0gKGRlbHRhX3IgPT0gMCAmJiBkZWx0YV9nID09IDAgJiYgZGVsdGFfYiA9PSAwKTsKKworICAgICAgZGVsdGFfciA9IHBkZml1bTo6Y2xhbXAoMTI4ICsgZGVsdGFfciAqIDgsIDAsIDI1NSk7CisgICAgICBkZWx0YV9nID0gcGRmaXVtOjpjbGFtcCgxMjggKyBkZWx0YV9nICogOCwgMCwgMjU1KTsKKyAgICAgIGRlbHRhX2IgPSBwZGZpdW06OmNsYW1wKDEyOCArIGRlbHRhX2IgKiA4LCAwLCAyNTUpOworCisgICAgICB1aW50MzJfdCBuZXdfcGl4ZWwgPSBSR0JBX0FMUEhBOworICAgICAgbmV3X3BpeGVsIHw9IGRlbHRhX3I7CisgICAgICBuZXdfcGl4ZWwgfD0gKGRlbHRhX2cgPDwgOCk7CisgICAgICBuZXdfcGl4ZWwgfD0gKGRlbHRhX2IgPDwgMTYpOworICAgICAgb3V0LT5zZXRfcGl4ZWxfYXQoeCwgeSwgbmV3X3BpeGVsKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHNhbWU7Cit9CisKIGludCBEaWZmSW1hZ2VzKGNvbnN0IHN0ZDo6c3RyaW5nJiBiaW5hcnlfbmFtZSwKICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlMSwKICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlMiwKLSAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRfZmlsZSkgeworICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91dF9maWxlLAorICAgICAgICAgICAgICAgYm9vbCBkb19zdWJ0cmFjdGlvbikgewogICBJbWFnZSBhY3R1YWxfaW1hZ2U7CiAgIEltYWdlIGJhc2VsaW5lX2ltYWdlOwogCkBAIC0yOTksNyArMzg1LDkgQEAKICAgfQogCiAgIEltYWdlIGRpZmZfaW1hZ2U7Ci0gIGJvb2wgc2FtZSA9IENyZWF0ZUltYWdlRGlmZihiYXNlbGluZV9pbWFnZSwgYWN0dWFsX2ltYWdlLCAmZGlmZl9pbWFnZSk7CisgIGJvb2wgc2FtZSA9IGRvX3N1YnRyYWN0aW9uCisgICAgICAgICAgICAgICAgICA/IFN1YnRyYWN0SW1hZ2VzKGJhc2VsaW5lX2ltYWdlLCBhY3R1YWxfaW1hZ2UsICZkaWZmX2ltYWdlKQorICAgICAgICAgICAgICAgICAgOiBDcmVhdGVJbWFnZURpZmYoYmFzZWxpbmVfaW1hZ2UsIGFjdHVhbF9pbWFnZSwgJmRpZmZfaW1hZ2UpOwogICBpZiAoc2FtZSkKICAgICByZXR1cm4ga1N0YXR1c1NhbWU7CiAKQEAgLTMyMSwxMSArNDA5LDEzIEBACiB9CiAKIGludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pIHsKLSAgRlhNRU1fSW5pdGlhbGl6ZVBhcnRpdGlvbkFsbG9jKCk7CisgIEZYX0luaXRpYWxpemVNZW1vcnlBbGxvY2F0b3JzKCk7CiAKICAgYm9vbCBoaXN0b2dyYW1zID0gZmFsc2U7CiAgIGJvb2wgcHJvZHVjZV9kaWZmX2ltYWdlID0gZmFsc2U7CisgIGJvb2wgcHJvZHVjZV9pbWFnZV9zdWJ0cmFjdGlvbiA9IGZhbHNlOwogICBib29sIHJldmVyc2VfYnl0ZV9vcmRlciA9IGZhbHNlOworICB1aW50OF90IG1heF9waXhlbF9wZXJfY2hhbm5lbF9kZWx0YSA9IDA7CiAgIHN0ZDo6c3RyaW5nIGZpbGVuYW1lMTsKICAgc3RkOjpzdHJpbmcgZmlsZW5hbWUyOwogICBzdGQ6OnN0cmluZyBkaWZmX2ZpbGVuYW1lOwpAQCAtMzQzLDggKzQzMywxMiBAQAogICAgICAgaGlzdG9ncmFtcyA9IHRydWU7CiAgICAgfSBlbHNlIGlmIChzdHJjbXAoYXJnLCAiLS1kaWZmIikgPT0gMCkgewogICAgICAgcHJvZHVjZV9kaWZmX2ltYWdlID0gdHJ1ZTsKKyAgICB9IGVsc2UgaWYgKHN0cmNtcChhcmcsICItLXN1YnRyYWN0IikgPT0gMCkgeworICAgICAgcHJvZHVjZV9pbWFnZV9zdWJ0cmFjdGlvbiA9IHRydWU7CiAgICAgfSBlbHNlIGlmIChzdHJjbXAoYXJnLCAiLS1yZXZlcnNlLWJ5dGUtb3JkZXIiKSA9PSAwKSB7CiAgICAgICByZXZlcnNlX2J5dGVfb3JkZXIgPSB0cnVlOworICAgIH0gZWxzZSBpZiAoc3RyY21wKGFyZywgIi0tZnV6enkiKSA9PSAwKSB7CisgICAgICBtYXhfcGl4ZWxfcGVyX2NoYW5uZWxfZGVsdGEgPSAxOwogICAgIH0KICAgfQogICBpZiAoaSA8IGFyZ2MpCkBAIC0zNTQsMTMgKzQ0OCwxNCBAQAogICBpZiAoaSA8IGFyZ2MpCiAgICAgZGlmZl9maWxlbmFtZSA9IGFyZ3ZbaSsrXTsKIAotICBpZiAocHJvZHVjZV9kaWZmX2ltYWdlKSB7CisgIGlmIChwcm9kdWNlX2RpZmZfaW1hZ2UgfHwgcHJvZHVjZV9pbWFnZV9zdWJ0cmFjdGlvbikgewogICAgIGlmICghZGlmZl9maWxlbmFtZS5lbXB0eSgpKSB7Ci0gICAgICByZXR1cm4gRGlmZkltYWdlcyhiaW5hcnlfbmFtZSwgZmlsZW5hbWUxLCBmaWxlbmFtZTIsIGRpZmZfZmlsZW5hbWUpOworICAgICAgcmV0dXJuIERpZmZJbWFnZXMoYmluYXJ5X25hbWUsIGZpbGVuYW1lMSwgZmlsZW5hbWUyLCBkaWZmX2ZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZV9pbWFnZV9zdWJ0cmFjdGlvbik7CiAgICAgfQogICB9IGVsc2UgaWYgKCFmaWxlbmFtZTIuZW1wdHkoKSkgewogICAgIHJldHVybiBDb21wYXJlSW1hZ2VzKGJpbmFyeV9uYW1lLCBmaWxlbmFtZTEsIGZpbGVuYW1lMiwgaGlzdG9ncmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXZlcnNlX2J5dGVfb3JkZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgIHJldmVyc2VfYnl0ZV9vcmRlciwgbWF4X3BpeGVsX3Blcl9jaGFubmVsX2RlbHRhKTsKICAgfQogCiAgIFByaW50SGVscChiaW5hcnlfbmFtZSk7CmRpZmYgLS1naXQgYS90ZXN0aW5nL2ltYWdlX2RpZmYvaW1hZ2VfZGlmZl9wbmcuY3BwIGIvdGVzdGluZy9pbWFnZV9kaWZmL2ltYWdlX2RpZmZfcG5nLmNwcAppbmRleCBkY2Q5ZDY5Li5jMmU4YjAzIDEwMDY0NAotLS0gYS90ZXN0aW5nL2ltYWdlX2RpZmYvaW1hZ2VfZGlmZl9wbmcuY3BwCisrKyBiL3Rlc3RpbmcvaW1hZ2VfZGlmZi9pbWFnZV9kaWZmX3BuZy5jcHAKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDEzIFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtMTYsOCArMTYsNyBAQAogCiAjaW5jbHVkZSA8c3RyaW5nPgogCi0jaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9jb21waWxlcl9zcGVjaWZpYy5oIgotI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2UvbG9nZ2luZy5oIgorI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2Uvbm90cmVhY2hlZC5oIgogCiAjaWZkZWYgVVNFX1NZU1RFTV9aTElCCiAjaW5jbHVkZSA8emxpYi5oPgpAQCAtMjgsNyArMjcsNyBAQAogI2lmZGVmIFVTRV9TWVNURU1fTElCUE5HCiAjaW5jbHVkZSA8cG5nLmg+CiAjZWxzZQotI2luY2x1ZGUgInRoaXJkX3BhcnR5L2xpYnBuZzE2L3BuZy5oIgorI2luY2x1ZGUgInRoaXJkX3BhcnR5L2xpYnBuZy9wbmcuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgaW1hZ2VfZGlmZl9wbmcgewpAQCAtOTIsMTIgKzkxLDEyIEBACiAgICAgICAgICAgICAgICAgICAgICAgaW50IHBpeGVsX3dpZHRoLAogICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QqIHJnYiwKICAgICAgICAgICAgICAgICAgICAgICBib29sKiBpc19vcGFxdWUpIHsKKyAgY29uc3QgdWludDhfdCogcGl4ZWxfaW4gPSByZ2JhOworICB1aW50OF90KiBwaXhlbF9vdXQgPSByZ2I7CiAgIGZvciAoaW50IHggPSAwOyB4IDwgcGl4ZWxfd2lkdGg7IHgrKykgewotICAgIGNvbnN0IHVpbnQ4X3QqIHBpeGVsX2luID0gJnJnYmFbeCAqIDRdOwotICAgIHVpbnQ4X3QqIHBpeGVsX291dCA9ICZyZ2JbeCAqIDNdOwotICAgIHBpeGVsX291dFswXSA9IHBpeGVsX2luWzBdOwotICAgIHBpeGVsX291dFsxXSA9IHBpeGVsX2luWzFdOwotICAgIHBpeGVsX291dFsyXSA9IHBpeGVsX2luWzJdOworICAgIG1lbWNweShwaXhlbF9vdXQsIHBpeGVsX2luLCAzKTsKKyAgICBwaXhlbF9pbiArPSA0OworICAgIHBpeGVsX291dCArPSAzOwogICB9CiB9CiAKQEAgLTE0OCwxMyArMTQ3LDEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgaW50IHBpeGVsX3dpZHRoLAogICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QqIHJnYmEsCiAgICAgICAgICAgICAgICAgICAgICAgYm9vbCogaXNfb3BhcXVlKSB7CisgIGNvbnN0IHVpbnQ4X3QqIHBpeGVsX2luID0gcmdiOworICB1aW50OF90KiBwaXhlbF9vdXQgPSByZ2JhOwogICBmb3IgKGludCB4ID0gMDsgeCA8IHBpeGVsX3dpZHRoOyB4KyspIHsKLSAgICBjb25zdCB1aW50OF90KiBwaXhlbF9pbiA9ICZyZ2JbeCAqIDNdOwotICAgIHVpbnQ4X3QqIHBpeGVsX291dCA9ICZyZ2JhW3ggKiA0XTsKLSAgICBwaXhlbF9vdXRbMF0gPSBwaXhlbF9pblswXTsKLSAgICBwaXhlbF9vdXRbMV0gPSBwaXhlbF9pblsxXTsKLSAgICBwaXhlbF9vdXRbMl0gPSBwaXhlbF9pblsyXTsKKyAgICBtZW1jcHkocGl4ZWxfb3V0LCBwaXhlbF9pbiwgMyk7CiAgICAgcGl4ZWxfb3V0WzNdID0gMHhmZjsKKyAgICBwaXhlbF9pbiArPSAzOworICAgIHBpeGVsX291dCArPSA0OwogICB9CiB9CiAKQEAgLTQyOCw3ICs0MjcsNyBAQAogI2lmZGVmIFBOR19URVhUX1NVUFBPUlRFRAogCiBpbmxpbmUgY2hhciogc3RyZHVwKGNvbnN0IGNoYXIqIHN0cikgewotI2lmIGRlZmluZWQoT1NfV0lOKQorI2lmIEJVSUxERkxBRyhJU19XSU4pCiAgIHJldHVybiBfc3RyZHVwKHN0cik7CiAjZWxzZQogICByZXR1cm4gOjpzdHJkdXAoc3RyKTsKQEAgLTQ2MSwxMSArNDYwLDExIEBACiAgIHZvaWQgQWRkQ29tbWVudChzaXplX3QgcG9zLCBjb25zdCBDb21tZW50JiBjb21tZW50KSB7CiAgICAgcG5nX3RleHRfW3Bvc10uY29tcHJlc3Npb24gPSBQTkdfVEVYVF9DT01QUkVTU0lPTl9OT05FOwogICAgIC8vIEEgUE5HIGNvbW1lbnQncyBrZXkgY2FuIG9ubHkgYmUgNzkgY2hhcmFjdGVycyBsb25nLgotICAgIGlmIChjb21tZW50LmtleS5sZW5ndGgoKSA+IDc5KQorICAgIGlmIChjb21tZW50LmtleS5zaXplKCkgPiA3OSkKICAgICAgIHJldHVybjsKICAgICBwbmdfdGV4dF9bcG9zXS5rZXkgPSBzdHJkdXAoY29tbWVudC5rZXkuc3Vic3RyKDAsIDc4KS5jX3N0cigpKTsKICAgICBwbmdfdGV4dF9bcG9zXS50ZXh0ID0gc3RyZHVwKGNvbW1lbnQudGV4dC5jX3N0cigpKTsKLSAgICBwbmdfdGV4dF9bcG9zXS50ZXh0X2xlbmd0aCA9IGNvbW1lbnQudGV4dC5sZW5ndGgoKTsKKyAgICBwbmdfdGV4dF9bcG9zXS50ZXh0X2xlbmd0aCA9IGNvbW1lbnQudGV4dC5zaXplKCk7CiAjaWZkZWYgUE5HX2lUWHRfU1VQUE9SVEVECiAgICAgcG5nX3RleHRfW3Bvc10uaXR4dF9sZW5ndGggPSAwOwogICAgIHBuZ190ZXh0X1twb3NdLmxhbmcgPSAwOwpAQCAtNTcxLDcgKzU3MCw3IEBACiAgIHN3aXRjaCAoZm9ybWF0KSB7CiAgICAgY2FzZSBGT1JNQVRfQkdSOgogICAgICAgY29udmVydGVyID0gQ29udmVydEJHUnRvUkdCOwotICAgICAgRkFMTFRIUk9VR0g7CisgICAgICBbW2ZhbGx0aHJvdWdoXV07CiAKICAgICBjYXNlIEZPUk1BVF9SR0I6CiAgICAgICBpbnB1dF9jb2xvcl9jb21wb25lbnRzID0gMzsKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvaW1hZ2VfZGlmZi9pbWFnZV9kaWZmX3BuZy5oIGIvdGVzdGluZy9pbWFnZV9kaWZmL2ltYWdlX2RpZmZfcG5nLmgKaW5kZXggMmMzOWJmMC4uMzcwY2UzMiAxMDA2NDQKLS0tIGEvdGVzdGluZy9pbWFnZV9kaWZmL2ltYWdlX2RpZmZfcG5nLmgKKysrIGIvdGVzdGluZy9pbWFnZV9kaWZmL2ltYWdlX2RpZmZfcG5nLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDEzIFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9pbnZhbGlkX3NlZWthYmxlX3JlYWRfc3RyZWFtLmNwcCBiL3Rlc3RpbmcvaW52YWxpZF9zZWVrYWJsZV9yZWFkX3N0cmVhbS5jcHAKaW5kZXggYTQxMTZiMC4uNzc4NzgzYyAxMDA2NDQKLS0tIGEvdGVzdGluZy9pbnZhbGlkX3NlZWthYmxlX3JlYWRfc3RyZWFtLmNwcAorKysgYi90ZXN0aW5nL2ludmFsaWRfc2Vla2FibGVfcmVhZF9zdHJlYW0uY3BwCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTkgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTksOSArOSw4IEBACiAKIEludmFsaWRTZWVrYWJsZVJlYWRTdHJlYW06On5JbnZhbGlkU2Vla2FibGVSZWFkU3RyZWFtKCkgPSBkZWZhdWx0OwogCi1ib29sIEludmFsaWRTZWVrYWJsZVJlYWRTdHJlYW06OlJlYWRCbG9ja0F0T2Zmc2V0KHZvaWQqIGJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlhfRklMRVNJWkUgb2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkgeworYm9vbCBJbnZhbGlkU2Vla2FibGVSZWFkU3RyZWFtOjpSZWFkQmxvY2tBdE9mZnNldChwZGZpdW06OnNwYW48dWludDhfdD4gYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGWF9GSUxFU0laRSBvZmZzZXQpIHsKICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS90ZXN0aW5nL2ludmFsaWRfc2Vla2FibGVfcmVhZF9zdHJlYW0uaCBiL3Rlc3RpbmcvaW52YWxpZF9zZWVrYWJsZV9yZWFkX3N0cmVhbS5oCmluZGV4IDkzMjJiYzYuLmFlMjRiMWEgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvaW52YWxpZF9zZWVrYWJsZV9yZWFkX3N0cmVhbS5oCisrKyBiL3Rlc3RpbmcvaW52YWxpZF9zZWVrYWJsZV9yZWFkX3N0cmVhbS5oCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTkgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTYsMTcgKzYsMTYgQEAKICNkZWZpbmUgVEVTVElOR19JTlZBTElEX1NFRUtBQkxFX1JFQURfU1RSRUFNX0hfCiAKICNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Z4X3N0cmVhbS5oIgorI2luY2x1ZGUgImNvcmUvZnhjcnQvcmV0YWluX3B0ci5oIgogCiAvLyBBIHN0cmVhbSB1c2VkIGZvciB0ZXN0aW5nIHdoZXJlIHJlYWRzIGFsd2F5cyBmYWlsLgogY2xhc3MgSW52YWxpZFNlZWthYmxlUmVhZFN0cmVhbSBmaW5hbCA6IHB1YmxpYyBJRlhfU2Vla2FibGVSZWFkU3RyZWFtIHsKICBwdWJsaWM6Ci0gIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPgotICBmcmllbmQgUmV0YWluUHRyPFQ+IHBkZml1bTo6TWFrZVJldGFpbihBcmdzJiYuLi4gYXJncyk7CisgIENPTlNUUlVDVF9WSUFfTUFLRV9SRVRBSU47CiAKICAgLy8gSUZYX1NlZWthYmxlUmVhZFN0cmVhbSBvdmVycmlkZXM6Ci0gIGJvb2wgUmVhZEJsb2NrQXRPZmZzZXQodm9pZCogYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgIEZYX0ZJTEVTSVpFIG9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkgb3ZlcnJpZGU7CisgIGJvb2wgUmVhZEJsb2NrQXRPZmZzZXQocGRmaXVtOjpzcGFuPHVpbnQ4X3Q+IGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBGWF9GSUxFU0laRSBvZmZzZXQpIG92ZXJyaWRlOwogICBGWF9GSUxFU0laRSBHZXRTaXplKCkgb3ZlcnJpZGU7CiAKICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9qc19lbWJlZGRlcl90ZXN0LmNwcCBiL3Rlc3RpbmcvanNfZW1iZWRkZXJfdGVzdC5jcHAKaW5kZXggNTdlNmM0ZC4uZDZmODAwYyAxMDA2NDQKLS0tIGEvdGVzdGluZy9qc19lbWJlZGRlcl90ZXN0LmNwcAorKysgYi90ZXN0aW5nL2pzX2VtYmVkZGVyX3Rlc3QuY3BwCkBAIC0xLDQwICsxLDE1IEBACi0vLyBDb3B5cmlnaHQgMjAxNSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogI2luY2x1ZGUgInRlc3RpbmcvanNfZW1iZWRkZXJfdGVzdC5oIgogCi0jaW5jbHVkZSAiZnhqcy9jZnhqc19lbmdpbmUuaCIKLSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL3B0cl91dGlsLmgiCisjaW5jbHVkZSAidGVzdGluZy92OF90ZXN0X2Vudmlyb25tZW50LmgiCiAKLUpTRW1iZWRkZXJUZXN0OjpKU0VtYmVkZGVyVGVzdCgpCi0gICAgOiBtX3BBcnJheUJ1ZmZlckFsbG9jYXRvcigKLSAgICAgICAgICBwZGZpdW06Ok1ha2VVbmlxdWU8Q0ZYX1Y4QXJyYXlCdWZmZXJBbGxvY2F0b3I+KCkpIHt9CitKU0VtYmVkZGVyVGVzdDo6SlNFbWJlZGRlclRlc3QoKSA9IGRlZmF1bHQ7CiAKLUpTRW1iZWRkZXJUZXN0Ojp+SlNFbWJlZGRlclRlc3QoKSB7fQorSlNFbWJlZGRlclRlc3Q6On5KU0VtYmVkZGVyVGVzdCgpID0gZGVmYXVsdDsKIAotdm9pZCBKU0VtYmVkZGVyVGVzdDo6U2V0VXAoKSB7Ci0gIHY4OjpJc29sYXRlOjpDcmVhdGVQYXJhbXMgcGFyYW1zOwotICBwYXJhbXMuYXJyYXlfYnVmZmVyX2FsbG9jYXRvciA9IG1fcEFycmF5QnVmZmVyQWxsb2NhdG9yLmdldCgpOwotICBtX3BJc29sYXRlLnJlc2V0KHY4OjpJc29sYXRlOjpOZXcocGFyYW1zKSk7Ci0KLSAgRW1iZWRkZXJUZXN0OjpTZXRFeHRlcm5hbElzb2xhdGUoaXNvbGF0ZSgpKTsKLSAgRW1iZWRkZXJUZXN0OjpTZXRVcCgpOwotCi0gIHY4OjpJc29sYXRlOjpTY29wZSBpc29sYXRlX3Njb3BlKGlzb2xhdGUoKSk7Ci0gIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVfc2NvcGUoaXNvbGF0ZSgpKTsKLSAgRlhKU19QZXJJc29sYXRlRGF0YTo6U2V0VXAoaXNvbGF0ZSgpKTsKLSAgbV9FbmdpbmUgPSBwZGZpdW06Ok1ha2VVbmlxdWU8Q0ZYSlNfRW5naW5lPihpc29sYXRlKCkpOwotICBtX0VuZ2luZS0+SW5pdGlhbGl6ZUVuZ2luZSgpOwotfQotCi12b2lkIEpTRW1iZWRkZXJUZXN0OjpUZWFyRG93bigpIHsKLSAgbV9FbmdpbmUtPlJlbGVhc2VFbmdpbmUoKTsKLSAgbV9FbmdpbmUucmVzZXQoKTsKLSAgRW1iZWRkZXJUZXN0OjpUZWFyRG93bigpOwotICBtX3BJc29sYXRlLnJlc2V0KCk7Ci19Ci0KLXY4OjpMb2NhbDx2ODo6Q29udGV4dD4gSlNFbWJlZGRlclRlc3Q6OkdldFY4Q29udGV4dCgpIHsKLSAgcmV0dXJuIG1fRW5naW5lLT5HZXRWOENvbnRleHQoKTsKK3Y4OjpJc29sYXRlKiBKU0VtYmVkZGVyVGVzdDo6aXNvbGF0ZSgpIGNvbnN0IHsKKyAgcmV0dXJuIFY4VGVzdEVudmlyb25tZW50OjpHZXRJbnN0YW5jZSgpLT5pc29sYXRlKCk7CiB9CmRpZmYgLS1naXQgYS90ZXN0aW5nL2pzX2VtYmVkZGVyX3Rlc3QuaCBiL3Rlc3RpbmcvanNfZW1iZWRkZXJfdGVzdC5oCmluZGV4IGRjYTBiZDcuLmRkYTI4NWEgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvanNfZW1iZWRkZXJfdGVzdC5oCisrKyBiL3Rlc3RpbmcvanNfZW1iZWRkZXJfdGVzdC5oCkBAIC0xLDM1ICsxLDIyIEBACi0vLyBDb3B5cmlnaHQgMjAxNSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogI2lmbmRlZiBURVNUSU5HX0pTX0VNQkVEREVSX1RFU1RfSF8KICNkZWZpbmUgVEVTVElOR19KU19FTUJFRERFUl9URVNUX0hfCiAKLSNpbmNsdWRlIDxtZW1vcnk+Ci0KLSNpbmNsdWRlICJmeGpzL2NmeF92OC5oIgogI2luY2x1ZGUgInRlc3RpbmcvZW1iZWRkZXJfdGVzdC5oIgotI2luY2x1ZGUgInY4L2luY2x1ZGUvdjguaCIKIAotY2xhc3MgQ0ZYSlNfRW5naW5lOwotY2xhc3MgQ0ZYX1Y4QXJyYXlCdWZmZXJBbGxvY2F0b3I7CituYW1lc3BhY2UgdjggeworY2xhc3MgSXNvbGF0ZTsKK30gIC8vIG5hbWVzcGFjZSB2OAogCiBjbGFzcyBKU0VtYmVkZGVyVGVzdCA6IHB1YmxpYyBFbWJlZGRlclRlc3QgewogIHB1YmxpYzoKICAgSlNFbWJlZGRlclRlc3QoKTsKICAgfkpTRW1iZWRkZXJUZXN0KCkgb3ZlcnJpZGU7CiAKLSAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlOwotICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGU7Ci0KLSAgdjg6Oklzb2xhdGUqIGlzb2xhdGUoKSBjb25zdCB7IHJldHVybiBtX3BJc29sYXRlLmdldCgpOyB9Ci0gIENGWEpTX0VuZ2luZSogZW5naW5lKCkgY29uc3QgeyByZXR1cm4gbV9FbmdpbmUuZ2V0KCk7IH0KLSAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBHZXRWOENvbnRleHQoKTsKLQotIHByaXZhdGU6Ci0gIHN0ZDo6dW5pcXVlX3B0cjxDRlhfVjhBcnJheUJ1ZmZlckFsbG9jYXRvcj4gbV9wQXJyYXlCdWZmZXJBbGxvY2F0b3I7Ci0gIHN0ZDo6dW5pcXVlX3B0cjx2ODo6SXNvbGF0ZSwgQ0ZYX1Y4SXNvbGF0ZURlbGV0ZXI+IG1fcElzb2xhdGU7Ci0gIHN0ZDo6dW5pcXVlX3B0cjxDRlhKU19FbmdpbmU+IG1fRW5naW5lOworICB2ODo6SXNvbGF0ZSogaXNvbGF0ZSgpIGNvbnN0OwogfTsKIAogI2VuZGlmICAvLyBURVNUSU5HX0pTX0VNQkVEREVSX1RFU1RfSF8KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcGRmX3Rlc3RfZW52aXJvbm1lbnQuY3BwIGIvdGVzdGluZy9wZGZfdGVzdF9lbnZpcm9ubWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg2NTAyNwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcGRmX3Rlc3RfZW52aXJvbm1lbnQuY3BwCkBAIC0wLDAgKzEsMjAgQEAKKy8vIENvcHlyaWdodCAyMDIwIFRoZSBQREZpdW0gQXV0aG9ycworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2luY2x1ZGUgInRlc3RpbmcvcGRmX3Rlc3RfZW52aXJvbm1lbnQuaCIKKworI2luY2x1ZGUgImNvcmUvZnhnZS9jZnhfZ2Vtb2R1bGUuaCIKKworUERGVGVzdEVudmlyb25tZW50OjpQREZUZXN0RW52aXJvbm1lbnQoKSA9IGRlZmF1bHQ7CisKK1BERlRlc3RFbnZpcm9ubWVudDo6flBERlRlc3RFbnZpcm9ubWVudCgpID0gZGVmYXVsdDsKKworLy8gdGVzdGluZzo6RW52aXJvbm1lbnQ6Cit2b2lkIFBERlRlc3RFbnZpcm9ubWVudDo6U2V0VXAoKSB7CisgIENGWF9HRU1vZHVsZTo6Q3JlYXRlKHRlc3RfZm9udHNfLmZvbnRfcGF0aHMoKSk7Cit9CisKK3ZvaWQgUERGVGVzdEVudmlyb25tZW50OjpUZWFyRG93bigpIHsKKyAgQ0ZYX0dFTW9kdWxlOjpEZXN0cm95KCk7Cit9CmRpZmYgLS1naXQgYS90ZXN0aW5nL3BkZl90ZXN0X2Vudmlyb25tZW50LmggYi90ZXN0aW5nL3BkZl90ZXN0X2Vudmlyb25tZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODE4ZDhlNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcGRmX3Rlc3RfZW52aXJvbm1lbnQuaApAQCAtMCwwICsxLDI0IEBACisvLyBDb3B5cmlnaHQgMjAyMCBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpZm5kZWYgVEVTVElOR19QREZfVEVTVF9FTlZJUk9OTUVOVF9IXworI2RlZmluZSBURVNUSU5HX1BERl9URVNUX0VOVklST05NRU5UX0hfCisKKyNpbmNsdWRlICJ0ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCIKKyNpbmNsdWRlICJ0ZXN0aW5nL3Rlc3RfZm9udHMuaCIKKworY2xhc3MgUERGVGVzdEVudmlyb25tZW50IDogcHVibGljIHRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyBwdWJsaWM6CisgIFBERlRlc3RFbnZpcm9ubWVudCgpOworICB+UERGVGVzdEVudmlyb25tZW50KCkgb3ZlcnJpZGU7CisKKyAgLy8gdGVzdGluZzo6RW52aXJvbm1lbnQ6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZTsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlOworCisgcHJpdmF0ZToKKyAgVGVzdEZvbnRzIHRlc3RfZm9udHNfOworfTsKKworI2VuZGlmICAvLyBURVNUSU5HX1BERl9URVNUX0VOVklST05NRU5UX0hfCmRpZmYgLS1naXQgYS90ZXN0aW5nL3BzZXVkb19yZXRhaW5hYmxlLmggYi90ZXN0aW5nL3BzZXVkb19yZXRhaW5hYmxlLmgKaW5kZXggYzQzOTBkNi4uNmRiZmZmYyAxMDA2NDQKLS0tIGEvdGVzdGluZy9wc2V1ZG9fcmV0YWluYWJsZS5oCisrKyBiL3Rlc3RpbmcvcHNldWRvX3JldGFpbmFibGUuaApAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAyMDE4IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCkBAIC04LDggKzgsOCBAQAogY2xhc3MgUHNldWRvUmV0YWluYWJsZSB7CiAgcHVibGljOgogICBQc2V1ZG9SZXRhaW5hYmxlKCkgPSBkZWZhdWx0OwotICB2b2lkIFJldGFpbigpIHsgKytyZXRhaW5fY291bnRfOyB9Ci0gIHZvaWQgUmVsZWFzZSgpIHsKKyAgdm9pZCBSZXRhaW4oKSBjb25zdCB7ICsrcmV0YWluX2NvdW50XzsgfQorICB2b2lkIFJlbGVhc2UoKSBjb25zdCB7CiAgICAgaWYgKCsrcmVsZWFzZV9jb3VudF8gPT0gcmV0YWluX2NvdW50XykKICAgICAgIGFsaXZlXyA9IGZhbHNlOwogICB9CkBAIC0xOCw5ICsxOCw5IEBACiAgIGludCByZWxlYXNlX2NvdW50KCkgY29uc3QgeyByZXR1cm4gcmVsZWFzZV9jb3VudF87IH0KIAogIHByaXZhdGU6Ci0gIGJvb2wgYWxpdmVfID0gdHJ1ZTsKLSAgaW50IHJldGFpbl9jb3VudF8gPSAwOwotICBpbnQgcmVsZWFzZV9jb3VudF8gPSAwOworICBtdXRhYmxlIGJvb2wgYWxpdmVfID0gdHJ1ZTsKKyAgbXV0YWJsZSBpbnQgcmV0YWluX2NvdW50XyA9IDA7CisgIG11dGFibGUgaW50IHJlbGVhc2VfY291bnRfID0gMDsKIH07CiAKICNlbmRpZiAgLy8gVEVTVElOR19QU0VVRE9fUkVUQUlOQUJMRV9IXwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yYW5nZV9zZXQuY3BwIGIvdGVzdGluZy9yYW5nZV9zZXQuY3BwCmluZGV4IDJmYzU0MGYuLjcyNWZkN2QgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmFuZ2Vfc2V0LmNwcAorKysgYi90ZXN0aW5nL3JhbmdlX3NldC5jcHAKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxNyBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtNyw5ICs3LDExIEBACiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCiAjaW5jbHVkZSAiY29yZS9meGNydC9meF9zeXN0ZW0uaCIKKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL2NoZWNrLmgiCiAKLVJhbmdlU2V0OjpSYW5nZVNldCgpIHt9Ci1SYW5nZVNldDo6flJhbmdlU2V0KCkge30KK1JhbmdlU2V0OjpSYW5nZVNldCgpID0gZGVmYXVsdDsKKworUmFuZ2VTZXQ6On5SYW5nZVNldCgpID0gZGVmYXVsdDsKIAogYm9vbCBSYW5nZVNldDo6Q29udGFpbnMoY29uc3QgUmFuZ2UmIHJhbmdlKSBjb25zdCB7CiAgIGlmIChJc0VtcHR5UmFuZ2UocmFuZ2UpKQpAQCAtNTEsMTUgKzUzLDE0IEBACiAKICAgLS1lbmQ7CiAKLSAgY29uc3QgaW50IG5ld19zdGFydCA9IHN0ZDo6bWluPHNpemVfdD4oc3RhcnQtPmZpcnN0LCBmaXhlZF9yYW5nZS5maXJzdCk7Ci0gIGNvbnN0IGludCBuZXdfZW5kID0gc3RkOjptYXgoZW5kLT5zZWNvbmQsIGZpeGVkX3JhbmdlLnNlY29uZCk7Ci0KKyAgY29uc3Qgc2l6ZV90IG5ld19zdGFydCA9IHN0ZDo6bWluKHN0YXJ0LT5maXJzdCwgZml4ZWRfcmFuZ2UuZmlyc3QpOworICBjb25zdCBzaXplX3QgbmV3X2VuZCA9IHN0ZDo6bWF4KGVuZC0+c2Vjb25kLCBmaXhlZF9yYW5nZS5zZWNvbmQpOwogICByYW5nZXNfLmVyYXNlKHN0YXJ0LCArK2VuZCk7CiAgIHJhbmdlc18uaW5zZXJ0KFJhbmdlKG5ld19zdGFydCwgbmV3X2VuZCkpOwogfQogCiB2b2lkIFJhbmdlU2V0OjpVbmlvbihjb25zdCBSYW5nZVNldCYgcmFuZ2Vfc2V0KSB7Ci0gIEFTU0VSVCgmcmFuZ2Vfc2V0ICE9IHRoaXMpOworICBEQ0hFQ0soJnJhbmdlX3NldCAhPSB0aGlzKTsKICAgZm9yIChjb25zdCBhdXRvJiBpdCA6IHJhbmdlX3NldC5yYW5nZXMoKSkKICAgICBVbmlvbihpdCk7CiB9CmRpZmYgLS1naXQgYS90ZXN0aW5nL3JhbmdlX3NldC5oIGIvdGVzdGluZy9yYW5nZV9zZXQuaAppbmRleCA2ZWQyNGJkLi43YmExMGRmIDEwMDY0NAotLS0gYS90ZXN0aW5nL3JhbmdlX3NldC5oCisrKyBiL3Rlc3RpbmcvcmFuZ2Vfc2V0LmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxNyBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvQ01ZSy1hbHBoYS5qcGYgYi90ZXN0aW5nL3Jlc291cmNlcy9DTVlLLWFscGhhLmpwZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzhlNmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvQ01ZSy1hbHBoYS5qcGYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvQ01ZSy5qcGYgYi90ZXN0aW5nL3Jlc291cmNlcy9DTVlLLmpwZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGYyZWY5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvQ01ZSy5qcGYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvUkdCLWFscGhhLmpwMiBiL3Rlc3RpbmcvcmVzb3VyY2VzL1JHQi1hbHBoYS5qcDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFiNDFkYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL1JHQi1hbHBoYS5qcDIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvUkdCLmpwMiBiL3Rlc3RpbmcvcmVzb3VyY2VzL1JHQi5qcDIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2I3ZDQyOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL1JHQi5qcDIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYW5ub3RfamF2YXNjcmlwdC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2Fubm90X2phdmFzY3JpcHQuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU5YWM0NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2Fubm90X2phdmFzY3JpcHQuaW4KQEAgLTAsMCArMSw0MiBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzQgMCBSXQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9LaWRzIFszIDAgUl0KKyAgL0NvdW50IDEKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0Fubm90cyBbNCAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvUmVjdCBbODUgNzIxIDE1MyA3MzVdCisgIC9GVCAvVHgKKyAgL1AgMyAwIFIKKyAgL1QgKFdpZGdldCkKKyAgL0FBIDw8CisgICAgL0YgPDwKKyAgICAgIC9KUyAoQUZEYXRlX0Zvcm1hdEV4XCgieXl5eS1tbS1kZCJcKTspCisgICAgICAvUyAvSmF2YVNjcmlwdAorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9hbm5vdF9qYXZhc2NyaXB0LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2Fubm90X2phdmFzY3JpcHQucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiZWI1ZGYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9hbm5vdF9qYXZhc2NyaXB0LnBkZgpAQCAtMCwwICsxLDUzIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzQgMCBSXQorICA+PgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0tpZHMgWzMgMCBSXQorICAvQ291bnQgMQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9Bbm5vdHMgWzQgMCBSXQorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvUmVjdCBbODUgNzIxIDE1MyA3MzVdCisgIC9GVCAvVHgKKyAgL1AgMyAwIFIKKyAgL1QgKFdpZGdldCkKKyAgL0FBIDw8CisgICAgL0YgPDwKKyAgICAgIC9KUyAoQUZEYXRlX0Zvcm1hdEV4XCgieXl5eS1tbS1kZCJcKTspCisgICAgICAvUyAvSmF2YVNjcmlwdAorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit4cmVmCiswIDUKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAxMDggMDAwMDAgbiAKKzAwMDAwMDAxOTcgMDAwMDAgbiAKKzAwMDAwMDAyOTIgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgNQorPj4KK3N0YXJ0eHJlZgorNTA0CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYW5ub3RzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYW5ub3RzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmNTc1ZjUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9hbm5vdHMuaW4KQEAgLTAsMCArMSwzNjIgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvQWNyb0Zvcm0gPDwKKyAgICAvRmllbGRzIFsyMyAwIFJdCisgICAgL0RSIDw8CisgICAgICAvRm9udCA8PAorICAgICAgICAvRjEgNyAwIFIKKyAgICAgID4+CisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMgorICAvS2lkcyBbMyAwIFIgNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvRjEgNyAwIFIKKyAgICAgIC9GMiA4IDAgUgorICAgID4+CisgICAgL1Byb2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQ10KKyAgICAvRXh0R1N0YXRlIDw8CisgICAgICAvR1MwIDI0IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA1IDAgUgorICAvQW5ub3RzIFsxNSAwIFIgMTYgMCBSIDE3IDAgUiAxOCAwIFIgMTkgMCBSIDIwIDAgUiAyMSAwIFIgMjIgMCBSIDIzIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDYgMCBSCisgIC9Bbm5vdHMgWzE1IDAgUiAxNiAwIFIgMjYgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorQlQKKzcwIDcwMCBUZAorL0YxIDE4IFRmCisoTGluayBBbm5vdGF0aW9ucyAtIFBhZ2UgMSkgVGoKKzAgLTY1IFRkCisvRjIgMTQgVGYKKygxLiBMaW5rIHdpdGggZGVzdGluYXRpb24gdG8gZmlyc3QgcGFnZSkgVGoKKzEwIC0yMCBUZAorL0YyIDE0IFRmCisoMi4gTGluayB3aXRoIGRlc3RpbmF0aW9uIHRvIHNlY29uZCBwYWdlKSBUagorLTEyIC04NCBUZAorL0YyIDEwIFRmCisoUERGIFJlZmVyZW5jZSwgVmVyc2lvbiAxLjcsIFNlY3Rpb24gOC40LjUgZGVmaW5lcyBBbm5vdGF0aW9ucykgVGoKKzIgLTUzIFRkCisoMy4gIEFuIGV4YW1wbGUgb2YgSGlnaGxpZ2h0IHdpdGggdGV4dCBub3RlcykgVGoKKzAgLTE4IFRkCisoaHR0cHM6Ly9wZGZpdW0uZ29vZ2xlc291cmNlLmNvbS9wZGZpdW0gaXMgbGluayBpbiBwbGFpbiB0ZXh0LCBub3QgbGluayBhbm5vdGF0aW9uLiBUaGVzZSBhcmUgcmVmZXJyZWQgdG8pIFRqCiswIC0xNyBUZAorKGFzIFdlYkxpbmtzIGluIFBERml1bS4pVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorQlQKKzcwIDcwMCBUZAorL0YxIDE4IFRmCisoTGluayBBbm5vdGF0aW9ucyAtIFBhZ2UgMikgVGoKKzAgLTY1IFRkCisvRjIgMTQgVGYKKygxLiBMaW5rIHdpdGggZGVzdGluYXRpb24gdG8gZmlyc3QgcGFnZSkgVGoKKzEwIC0yMCBUZAorL0YyIDE0IFRmCisoMi4gTGluayB3aXRoIGRlc3RpbmF0aW9uIHRvIHNlY29uZCBwYWdlKSBUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvSGVsdmV0aWNhCis+PgorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQorICB7e3N0cmVhbWxlbn19CisgIC9CQm94IFsyOTMgNTMwIDM0OSA1NDJdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL0Zvcm0wIDEwIDAgUgorICAgID4+CisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0dTMCAyNSAwIFIKKyAgICA+PgorICA+PgorPj4KK3N0cmVhbQorL0dTMCBncworL0Zvcm0wIERvCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTAgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9Gb3JtVHlwZSAxCisgIC9Hcm91cCA8PAorICAgIC9TIC9UcmFuc3BhcmVuY3kKKyAgPj4KKyAge3tzdHJlYW1sZW59fQorICAvQkJveCBbMjkzIDUzMCAzNDkgNTQyXQorPj4KK3N0cmVhbQorMS4wIDEuMCAwLjAgcmcKKzI5MyA1MzAgbQorMzQ5IDUzMCBsCiszNDkgNTQyIGwKKzI5MyA1NDIgbAoraCBmCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTEgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9Gb3JtVHlwZSAxCisgIHt7c3RyZWFtbGVufX0KKyAgL0JCb3ggWzgzIDQ0MCAxNzggNDUzXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9Gb3JtMCAxMiAwIFIKKyAgICA+PgorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9HUzAgMjUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitzdHJlYW0KKy9HUzAgZ3MKKy9Gb3JtMCBEbworZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDEyIDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQorICAvR3JvdXAgPDwKKyAgICAvUyAvVHJhbnNwYXJlbmN5CisgID4+CisgIHt7c3RyZWFtbGVufX0KKyAgL0JCb3ggWzgzIDQ0MCAxNzggNDUzXQorPj4KK3N0cmVhbQorMC4wIDEuMCAxLjAgcmcKKzgzIDQ0MCBtCisxNzggNDQwIGwKKzE3OCA0NTMgbAorODMgNDUzIGwKK2ggZgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDEzIDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQorICB7e3N0cmVhbWxlbn19CisgIC9CQm94IFsxNDkgNDc2IDE5MSA0ODddCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL0Zvcm0wIDE0IDAgUgorICAgID4+CisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0dTMCAyNSAwIFIKKyAgICA+PgorICA+PgorPj4KK3N0cmVhbQorL0dTMCBncworL0Zvcm0wIERvCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTQgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9Gb3JtVHlwZSAxCisgIC9Hcm91cCA8PAorICAgIC9TIC9UcmFuc3BhcmVuY3kKKyAgPj4KKyAge3tzdHJlYW1sZW59fQorICAvQkJveCBbMTQ5IDQ3NiAxOTEgNDg3XQorPj4KK3N0cmVhbQorMC4wIDEuMCAwLjAgcmcKKzE0OSA0NzYgbQorMTkxIDQ3NiBsCisxOTEgNDg3IGwKKzE0OSA0ODcgbAoraCBmCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTUgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvTGluaworICAvQlMgPDwKKyAgICAvVyAwCisgID4+CisgIC9SZWN0IFs2OSA2MzMgNTQyIDY1M10KKyAgL0Rlc3QgWzMgMCBSIC9YWVogMjAwIDcyNSAwXQorICAvRiA0Cis+PgorZW5kb2JqCit7e29iamVjdCAxNiAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9CUyA8PAorICAgIC9XIDAKKyAgPj4KKyAgL1JlY3QgWzgwIDYxMyA1NDIgNjMzXQorICAvRGVzdCBbNCAwIFIgL1hZWiAyMDAgNzI1IDBdCisgIC9GIDQKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDE3IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0xpbmsKKyAgL0JTIDw8CisgICAgL1cgMAorICA+PgorICAvUmVjdCBbNjYgNTI5IDE5NiA1NDRdCisgIC9BIDw8CisgICAgL1R5cGUgL0FjdGlvbgorICAgIC9VUkkgKGh0dHBzOi8vd3d3LmFkb2JlLmNvbS9jb250ZW50L2RhbS9hY29tL2VuL2Rldm5ldC9hY3JvYmF0L3BkZnMvcGRmX3JlZmVyZW5jZV8xLTcucGRmKQorICAgIC9TIC9VUkkKKyAgPj4KKyAgL0YgNAorPj4KK2VuZG9iagore3tvYmplY3QgMTggMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvTGluaworICAvQlMgPDwKKyAgICAvVyAwCisgID4+CisgIC9SZWN0IFs4MyA0NDAgMTc4IDQ1M10KKyAgL1F1YWRQb2ludHMgWzgzIDQ1MyAxNzggNDUzIDgzIDQ0MCAxNzggNDQwXQorICAvQSA8PAorICAgIC9UeXBlIC9BY3Rpb24KKyAgICAvVVJJIChodHRwczovL2NzLmNocm9taXVtLm9yZy9jaHJvbWl1bS9zcmMvdGhpcmRfcGFydHkvcGRmaXVtL3B1YmxpYy9mcGRmX3RleHQuaCkKKyAgICAvUyAvVVJJCisgID4+CisgIC9GIDQKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDE5IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0hpZ2hsaWdodAorICAvQVAgPDwKKyAgICAvTiA5IDAgUgorICA+PgorICAvTk0gKEhpZ2hsaWdodC0xKQorICAvRiA0CisgIC9RdWFkUG9pbnRzIFsyOTMgNTQyIDM0OSA1NDIgMjkzIDUzMCAzNDkgNTMwXQorICAvUCAzIDAgUgorICAvQyBbMSAwLjkwMTk2IDBdCisgIC9SZWN0IFsyOTMgNTMwIDM0OSA1NDJdCis+PgorZW5kb2JqCit7e29iamVjdCAyMCAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9IaWdobGlnaHQKKyAgL0FQIDw8CisgICAgL04gMTEgMCBSCisgID4+CisgIC9OTSAoSGlnaGxpZ2h0LTIpCisgIC9GIDQKKyAgL1F1YWRQb2ludHMgWzgzIDQ1MyAxNzggNDUzIDgzIDQ0MCAxNzggNDQwXQorICAvUCAzIDAgUgorICAvQyBbMC4yNjY2NyAwLjc4NDMxIDAuOTYwNzhdCisgIC9SZWN0IFs4MyA0NDAgMTc4IDQ1M10KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIxIDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1BvcHVwCisgIC9QYXJlbnQgMjIgMCBSCisgIC9SZWN0IFsxOTEgMzc3IDQ0MyA0ODhdCis+PgorZW5kb2JqCit7e29iamVjdCAyMiAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9IaWdobGlnaHQKKyAgL1BvcHVwIDIxIDAgUgorICAvQVAgPDwKKyAgICAvTiAxMyAwIFIKKyAgPj4KKyAgL05NIChIaWdobGlnaHQtV2l0aC1Qb3B1cC0xKQorICAvQ29udGVudHMgKFRleHQgTm90ZSkKKyAgL1F1YWRQb2ludHMgWzE0OSA0ODcgMTkxIDQ4NyAxNDkgNDc2IDE5MSA0NzZdCisgIC9QIDMgMCBSCisgIC9DIFswLjE0OTAyIDAuOTAxOTYgMF0KKyAgL1JlY3QgWzE0OSA0NzYgMTkxIDQ4N10KKyAgL0YgNAorPj4KK2VuZG9iagore3tvYmplY3QgMjMgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvQ2gKKyAgL0ZmIDEzMTA3MgorICAvVCAoQ29tYm8xKQorICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKKyAgL1JlY3QgWzcwIDM1MCAxNzAgMzgwXQorICAvT3B0IFsoSGlnaGxpZ2h0KSAoTGluaykgKFBvcHVwKSAoV2lkZ2V0KV0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDI0IDB9fSA8PAorICAvY2EgMQorICAvVHlwZSAvRXh0R1N0YXRlCisgIC9DQSAxCisgIC9CTSAvTm9ybWFsCis+PgorZW5kb2JqCit7e29iamVjdCAyNSAwfX0gPDwKKyAgL2NhIDEKKyAgL1R5cGUgL0V4dEdTdGF0ZQorICAvQ0EgMQorICAvQUlTIGZhbHNlCisgIC9CTSAvTXVsdGlwbHkKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDI2IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1NxdWFyZQorICAvQm9yZGVyIFswIDAgMl0KKyAgL0MgWzEgMCAwXQorICAvRiA0CisgIC9QIDMgMCBSCisgIC9SZWN0IFs1MCAxMDAgNjAgMTIwXQorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYW5ub3RzLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2Fubm90cy5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ1MzQ2YwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2Fubm90cy5wZGYKQEAgLTAsMCArMSwzOTUgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDw8CisgICAgL0ZpZWxkcyBbMjMgMCBSXQorICAgIC9EUiA8PAorICAgICAgL0ZvbnQgPDwKKyAgICAgICAgL0YxIDcgMCBSCisgICAgICA+PgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMgorICAvS2lkcyBbMyAwIFIgNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvRjEgNyAwIFIKKyAgICAgIC9GMiA4IDAgUgorICAgID4+CisgICAgL1Byb2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQ10KKyAgICAvRXh0R1N0YXRlIDw8CisgICAgICAvR1MwIDI0IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDUgMCBSCisgIC9Bbm5vdHMgWzE1IDAgUiAxNiAwIFIgMTcgMCBSIDE4IDAgUiAxOSAwIFIgMjAgMCBSIDIxIDAgUiAyMiAwIFIgMjMgMCBSXQorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA2IDAgUgorICAvQW5ub3RzIFsxNSAwIFIgMTYgMCBSIDI2IDAgUl0KKz4+CitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL0xlbmd0aCA0ODYKKz4+CitzdHJlYW0KK0JUCis3MCA3MDAgVGQKKy9GMSAxOCBUZgorKExpbmsgQW5ub3RhdGlvbnMgLSBQYWdlIDEpIFRqCiswIC02NSBUZAorL0YyIDE0IFRmCisoMS4gTGluayB3aXRoIGRlc3RpbmF0aW9uIHRvIGZpcnN0IHBhZ2UpIFRqCisxMCAtMjAgVGQKKy9GMiAxNCBUZgorKDIuIExpbmsgd2l0aCBkZXN0aW5hdGlvbiB0byBzZWNvbmQgcGFnZSkgVGoKKy0xMiAtODQgVGQKKy9GMiAxMCBUZgorKFBERiBSZWZlcmVuY2UsIFZlcnNpb24gMS43LCBTZWN0aW9uIDguNC41IGRlZmluZXMgQW5ub3RhdGlvbnMpIFRqCisyIC01MyBUZAorKDMuICBBbiBleGFtcGxlIG9mIEhpZ2hsaWdodCB3aXRoIHRleHQgbm90ZXMpIFRqCiswIC0xOCBUZAorKGh0dHBzOi8vcGRmaXVtLmdvb2dsZXNvdXJjZS5jb20vcGRmaXVtIGlzIGxpbmsgaW4gcGxhaW4gdGV4dCwgbm90IGxpbmsgYW5ub3RhdGlvbi4gVGhlc2UgYXJlIHJlZmVycmVkIHRvKSBUagorMCAtMTcgVGQKKyhhcyBXZWJMaW5rcyBpbiBQREZpdW0uKVRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL0xlbmd0aCAxODUKKz4+CitzdHJlYW0KK0JUCis3MCA3MDAgVGQKKy9GMSAxOCBUZgorKExpbmsgQW5ub3RhdGlvbnMgLSBQYWdlIDIpIFRqCiswIC02NSBUZAorL0YyIDE0IFRmCisoMS4gTGluayB3aXRoIGRlc3RpbmF0aW9uIHRvIGZpcnN0IHBhZ2UpIFRqCisxMCAtMjAgVGQKKy9GMiAxNCBUZgorKDIuIExpbmsgd2l0aCBkZXN0aW5hdGlvbiB0byBzZWNvbmQgcGFnZSkgVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagorNyAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgorPj4KK2VuZG9iagorOCAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKz4+CitlbmRvYmoKKzkgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0xlbmd0aCAxOAorICAvQkJveCBbMjkzIDUzMCAzNDkgNTQyXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9Gb3JtMCAxMCAwIFIKKyAgICA+PgorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9HUzAgMjUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitzdHJlYW0KKy9HUzAgZ3MKKy9Gb3JtMCBEbworZW5kc3RyZWFtCitlbmRvYmoKKzEwIDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9Gb3JtVHlwZSAxCisgIC9Hcm91cCA8PAorICAgIC9TIC9UcmFuc3BhcmVuY3kKKyAgPj4KKyAgL0xlbmd0aCA1OQorICAvQkJveCBbMjkzIDUzMCAzNDkgNTQyXQorPj4KK3N0cmVhbQorMS4wIDEuMCAwLjAgcmcKKzI5MyA1MzAgbQorMzQ5IDUzMCBsCiszNDkgNTQyIGwKKzI5MyA1NDIgbAoraCBmCitlbmRzdHJlYW0KK2VuZG9iagorMTEgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0xlbmd0aCAxOAorICAvQkJveCBbODMgNDQwIDE3OCA0NTNdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL0Zvcm0wIDEyIDAgUgorICAgID4+CisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0dTMCAyNSAwIFIKKyAgICA+PgorICA+PgorPj4KK3N0cmVhbQorL0dTMCBncworL0Zvcm0wIERvCitlbmRzdHJlYW0KK2VuZG9iagorMTIgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0dyb3VwIDw8CisgICAgL1MgL1RyYW5zcGFyZW5jeQorICA+PgorICAvTGVuZ3RoIDU3CisgIC9CQm94IFs4MyA0NDAgMTc4IDQ1M10KKz4+CitzdHJlYW0KKzAuMCAxLjAgMS4wIHJnCis4MyA0NDAgbQorMTc4IDQ0MCBsCisxNzggNDUzIGwKKzgzIDQ1MyBsCitoIGYKK2VuZHN0cmVhbQorZW5kb2JqCisxMyAwIG9iaiA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQorICAvTGVuZ3RoIDE4CisgIC9CQm94IFsxNDkgNDc2IDE5MSA0ODddCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL0Zvcm0wIDE0IDAgUgorICAgID4+CisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0dTMCAyNSAwIFIKKyAgICA+PgorICA+PgorPj4KK3N0cmVhbQorL0dTMCBncworL0Zvcm0wIERvCitlbmRzdHJlYW0KK2VuZG9iagorMTQgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0dyb3VwIDw8CisgICAgL1MgL1RyYW5zcGFyZW5jeQorICA+PgorICAvTGVuZ3RoIDU5CisgIC9CQm94IFsxNDkgNDc2IDE5MSA0ODddCis+Pgorc3RyZWFtCiswLjAgMS4wIDAuMCByZworMTQ5IDQ3NiBtCisxOTEgNDc2IGwKKzE5MSA0ODcgbAorMTQ5IDQ4NyBsCitoIGYKK2VuZHN0cmVhbQorZW5kb2JqCisxNSAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0xpbmsKKyAgL0JTIDw8CisgICAgL1cgMAorICA+PgorICAvUmVjdCBbNjkgNjMzIDU0MiA2NTNdCisgIC9EZXN0IFszIDAgUiAvWFlaIDIwMCA3MjUgMF0KKyAgL0YgNAorPj4KK2VuZG9iagorMTYgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9CUyA8PAorICAgIC9XIDAKKyAgPj4KKyAgL1JlY3QgWzgwIDYxMyA1NDIgNjMzXQorICAvRGVzdCBbNCAwIFIgL1hZWiAyMDAgNzI1IDBdCisgIC9GIDQKKz4+CitlbmRvYmoKKzE3IDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvTGluaworICAvQlMgPDwKKyAgICAvVyAwCisgID4+CisgIC9SZWN0IFs2NiA1MjkgMTk2IDU0NF0KKyAgL0EgPDwKKyAgICAvVHlwZSAvQWN0aW9uCisgICAgL1VSSSAoaHR0cHM6Ly93d3cuYWRvYmUuY29tL2NvbnRlbnQvZGFtL2Fjb20vZW4vZGV2bmV0L2Fjcm9iYXQvcGRmcy9wZGZfcmVmZXJlbmNlXzEtNy5wZGYpCisgICAgL1MgL1VSSQorICA+PgorICAvRiA0Cis+PgorZW5kb2JqCisxOCAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0xpbmsKKyAgL0JTIDw8CisgICAgL1cgMAorICA+PgorICAvUmVjdCBbODMgNDQwIDE3OCA0NTNdCisgIC9RdWFkUG9pbnRzIFs4MyA0NTMgMTc4IDQ1MyA4MyA0NDAgMTc4IDQ0MF0KKyAgL0EgPDwKKyAgICAvVHlwZSAvQWN0aW9uCisgICAgL1VSSSAoaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL3RoaXJkX3BhcnR5L3BkZml1bS9wdWJsaWMvZnBkZl90ZXh0LmgpCisgICAgL1MgL1VSSQorICA+PgorICAvRiA0Cis+PgorZW5kb2JqCisxOSAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0hpZ2hsaWdodAorICAvQVAgPDwKKyAgICAvTiA5IDAgUgorICA+PgorICAvTk0gKEhpZ2hsaWdodC0xKQorICAvRiA0CisgIC9RdWFkUG9pbnRzIFsyOTMgNTQyIDM0OSA1NDIgMjkzIDUzMCAzNDkgNTMwXQorICAvUCAzIDAgUgorICAvQyBbMSAwLjkwMTk2IDBdCisgIC9SZWN0IFsyOTMgNTMwIDM0OSA1NDJdCis+PgorZW5kb2JqCisyMCAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0hpZ2hsaWdodAorICAvQVAgPDwKKyAgICAvTiAxMSAwIFIKKyAgPj4KKyAgL05NIChIaWdobGlnaHQtMikKKyAgL0YgNAorICAvUXVhZFBvaW50cyBbODMgNDUzIDE3OCA0NTMgODMgNDQwIDE3OCA0NDBdCisgIC9QIDMgMCBSCisgIC9DIFswLjI2NjY3IDAuNzg0MzEgMC45NjA3OF0KKyAgL1JlY3QgWzgzIDQ0MCAxNzggNDUzXQorPj4KK2VuZG9iagorMjEgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9Qb3B1cAorICAvUGFyZW50IDIyIDAgUgorICAvUmVjdCBbMTkxIDM3NyA0NDMgNDg4XQorPj4KK2VuZG9iagorMjIgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9IaWdobGlnaHQKKyAgL1BvcHVwIDIxIDAgUgorICAvQVAgPDwKKyAgICAvTiAxMyAwIFIKKyAgPj4KKyAgL05NIChIaWdobGlnaHQtV2l0aC1Qb3B1cC0xKQorICAvQ29udGVudHMgKFRleHQgTm90ZSkKKyAgL1F1YWRQb2ludHMgWzE0OSA0ODcgMTkxIDQ4NyAxNDkgNDc2IDE5MSA0NzZdCisgIC9QIDMgMCBSCisgIC9DIFswLjE0OTAyIDAuOTAxOTYgMF0KKyAgL1JlY3QgWzE0OSA0NzYgMTkxIDQ4N10KKyAgL0YgNAorPj4KK2VuZG9iagorMjMgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9DaAorICAvRmYgMTMxMDcyCisgIC9UIChDb21ibzEpCisgIC9EQSAoMCAwIDAgcmcgL0YxIDEyIFRmKQorICAvUmVjdCBbNzAgMzUwIDE3MCAzODBdCisgIC9PcHQgWyhIaWdobGlnaHQpIChMaW5rKSAoUG9wdXApIChXaWRnZXQpXQorPj4KK2VuZG9iagorMjQgMCBvYmogPDwKKyAgL2NhIDEKKyAgL1R5cGUgL0V4dEdTdGF0ZQorICAvQ0EgMQorICAvQk0gL05vcm1hbAorPj4KK2VuZG9iagorMjUgMCBvYmogPDwKKyAgL2NhIDEKKyAgL1R5cGUgL0V4dEdTdGF0ZQorICAvQ0EgMQorICAvQUlTIGZhbHNlCisgIC9CTSAvTXVsdGlwbHkKKz4+CitlbmRvYmoKKzI2IDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvU3F1YXJlCisgIC9Cb3JkZXIgWzAgMCAyXQorICAvQyBbMSAwIDBdCisgIC9GIDQKKyAgL1AgMyAwIFIKKyAgL1JlY3QgWzUwIDEwMCA2MCAxMjBdCis+PgorZW5kb2JqCit4cmVmCiswIDI3CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMTY5IDAwMDAwIG4gCiswMDAwMDAwNDM5IDAwMDAwIG4gCiswMDAwMDAwNTgzIDAwMDAwIG4gCiswMDAwMDAwNjg1IDAwMDAwIG4gCiswMDAwMDAxMjIzIDAwMDAwIG4gCiswMDAwMDAxNDYwIDAwMDAwIG4gCiswMDAwMDAxNTM4IDAwMDAwIG4gCiswMDAwMDAxNjE0IDAwMDAwIG4gCiswMDAwMDAxODY0IDAwMDAwIG4gCiswMDAwMDAyMDg3IDAwMDAwIG4gCiswMDAwMDAyMzM3IDAwMDAwIG4gCiswMDAwMDAyNTU3IDAwMDAwIG4gCiswMDAwMDAyODA4IDAwMDAwIG4gCiswMDAwMDAzMDMxIDAwMDAwIG4gCiswMDAwMDAzMTcxIDAwMDAwIG4gCiswMDAwMDAzMzExIDAwMDAwIG4gCiswMDAwMDAzNTU4IDAwMDAwIG4gCiswMDAwMDAzODQyIDAwMDAwIG4gCiswMDAwMDA0MDU5IDAwMDAwIG4gCiswMDAwMDA0Mjg2IDAwMDAwIG4gCiswMDAwMDA0Mzg0IDAwMDAwIG4gCiswMDAwMDA0NjU5IDAwMDAwIG4gCiswMDAwMDA0ODQ5IDAwMDAwIG4gCiswMDAwMDA0OTIwIDAwMDAwIG4gCiswMDAwMDA1MDA2IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDI3Cis+Pgorc3RhcnR4cmVmCis1MTM1CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYW5ub3RzX2FjdGlvbl9oYW5kbGluZy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2Fubm90c19hY3Rpb25faGFuZGxpbmcuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTVjNzI4YgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2Fubm90c19hY3Rpb25faGFuZGxpbmcuaW4KQEAgLTAsMCArMSwxMzIgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvTmFtZXMgMTIgMCBSCisgIC9BY3JvRm9ybSBbNiAwIFIgNyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDIKKyAgL0tpZHMgWzMgMCBSIDQgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQW5ub3RzIFs2IDAgUiA3IDAgUiA4IDAgUiA5IDAgUiAxMCAwIFIgMTEgMCBSXQorICAvQ29udGVudHMgNSAwIFIKKyAgL1RhYnMgL1IKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1RhYnMgL1IKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0JUCis3MCAzNDAgVGQKKzE0IFRmCisoRXh0ZXJuYWwgTGluayApIFRqCiswIC0zNSBUZAorMTQgVGYKKyhJbnRlcm5hbCBMaW5rICkgVGoKKzAgLTM1IFRkCisxNCBUZgorKExpbmsxIHRvIHRvcCApIFRqCiswIC0zNSBUZAorMTQgVGYKKyhMaW5rMiB0byB0b3AgKSBUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL1R4CisgIC9QYXJlbnQgMyAwIFIKKyAgL1QgKFRleHRGaWVsZCkKKyAgL1JlY3QgWzY5IDY3MCAyMjAgNjkwXQorPj4KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9CdG4KKyAgL1JlY3QgWzY5IDM2MCAyMjAgMzgwXQorICAvQSA8PAorICAgIC9VUkkgKGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20pCisgICAgL1MgL1VSSQorICA+PgorICAvRiA0CisgIC9UIChidXR0b24pCisgIC9GZiA2NTUzNgorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9SZWN0IFs2OSAzMzggMTgwIDM1OF0KKyAgL0EgPDwKKyAgICAvVHlwZSAvQWN0aW9uCisgICAgL1MgL1VSSQorICAgIC9VUkkgKGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnLykKKyAgPj4KKyAgL0YgNAorPj4KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9SZWN0IFs2OSAzMDUgMTgwIDMyNV0KKyAgL0JTIDw8CisgICAgL1cgMAorICA+PgorICAvRGVzdCBbNCAwIFIgL1hZWiAyMDAgNzI1IDBdCisgIC9GIDQKKz4+Cit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9SZWN0IFs2OSAyNzAgMTgwIDI5MF0KKyAgL0JTIDw8CisgICAgL1cgMAorICA+PgorICAvRGVzdCAvdG9wCisgIC9GIDQKKz4+Cit7e29iamVjdCAxMSAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9SZWN0IFs2OSAyMzUgMTgwIDI1NV0KKyAgL0JTIDw8CisgICAgL1cgMAorICA+PgorICAvRGVzdCAodGFyZ2V0MTApCisgIC9GIDQKKz4+Cit7e29iamVjdCAxMiAwfX0gPDwKKyAgL0Rlc3RzIDEzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTMgMH19IDw8CisgIC9OYW1lcyBbCisgICAgKHRhcmdldDEwKSAxNCAwIFIKKyAgICAvdG9wIDE0IDAgUgorICBdCis+PgorZW5kb2JqCit7e29iamVjdCAxNCAwfX0gPDwKKyAgL0QgWzMgMCBSIC9YWVogMTAwIDIwMCAwXQorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2Fubm90c19hY3Rpb25faGFuZGxpbmcucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvYW5ub3RzX2FjdGlvbl9oYW5kbGluZy5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjhiNmMyYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2Fubm90c19hY3Rpb25faGFuZGxpbmcucGRmCkBAIC0wLDAgKzEsMTUzIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9OYW1lcyAxMiAwIFIKKyAgL0Fjcm9Gb3JtIFs2IDAgUiA3IDAgUl0KKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAyCisgIC9LaWRzIFszIDAgUiA0IDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQW5ub3RzIFs2IDAgUiA3IDAgUiA4IDAgUiA5IDAgUiAxMCAwIFIgMTEgMCBSXQorICAvQ29udGVudHMgNSAwIFIKKyAgL1RhYnMgL1IKKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvVGFicyAvUgorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvTGVuZ3RoIDE0NQorPj4KK3N0cmVhbQorQlQKKzcwIDM0MCBUZAorMTQgVGYKKyhFeHRlcm5hbCBMaW5rICkgVGoKKzAgLTM1IFRkCisxNCBUZgorKEludGVybmFsIExpbmsgKSBUagorMCAtMzUgVGQKKzE0IFRmCisoTGluazEgdG8gdG9wICkgVGoKKzAgLTM1IFRkCisxNCBUZgorKExpbmsyIHRvIHRvcCApIFRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9UeAorICAvUGFyZW50IDMgMCBSCisgIC9UIChUZXh0RmllbGQpCisgIC9SZWN0IFs2OSA2NzAgMjIwIDY5MF0KKz4+CitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9CdG4KKyAgL1JlY3QgWzY5IDM2MCAyMjAgMzgwXQorICAvQSA8PAorICAgIC9VUkkgKGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20pCisgICAgL1MgL1VSSQorICA+PgorICAvRiA0CisgIC9UIChidXR0b24pCisgIC9GZiA2NTUzNgorPj4KK2VuZG9iagorOCAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0xpbmsKKyAgL1JlY3QgWzY5IDMzOCAxODAgMzU4XQorICAvQSA8PAorICAgIC9UeXBlIC9BY3Rpb24KKyAgICAvUyAvVVJJCisgICAgL1VSSSAoaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvKQorICA+PgorICAvRiA0Cis+PgorZW5kb2JqCis5IDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvTGluaworICAvUmVjdCBbNjkgMzA1IDE4MCAzMjVdCisgIC9CUyA8PAorICAgIC9XIDAKKyAgPj4KKyAgL0Rlc3QgWzQgMCBSIC9YWVogMjAwIDcyNSAwXQorICAvRiA0Cis+PgorMTAgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9SZWN0IFs2OSAyNzAgMTgwIDI5MF0KKyAgL0JTIDw8CisgICAgL1cgMAorICA+PgorICAvRGVzdCAvdG9wCisgIC9GIDQKKz4+CisxMSAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0xpbmsKKyAgL1JlY3QgWzY5IDIzNSAxODAgMjU1XQorICAvQlMgPDwKKyAgICAvVyAwCisgID4+CisgIC9EZXN0ICh0YXJnZXQxMCkKKyAgL0YgNAorPj4KKzEyIDAgb2JqIDw8CisgIC9EZXN0cyAxMyAwIFIKKz4+CitlbmRvYmoKKzEzIDAgb2JqIDw8CisgIC9OYW1lcyBbCisgICAgKHRhcmdldDEwKSAxNCAwIFIKKyAgICAvdG9wIDE0IDAgUgorICBdCis+PgorZW5kb2JqCisxNCAwIG9iaiA8PAorICAvRCBbMyAwIFIgL1hZWiAxMDAgMjAwIDBdCis+PgorZW5kb2JqCit4cmVmCiswIDE1CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMTEwIDAwMDAwIG4gCiswMDAwMDAwMTc5IDAwMDAwIG4gCiswMDAwMDAwMzA5IDAwMDAwIG4gCiswMDAwMDAwMzcxIDAwMDAwIG4gCiswMDAwMDAwNTY4IDAwMDAwIG4gCiswMDAwMDAwNjkxIDAwMDAwIG4gCiswMDAwMDAwODc0IDAwMDAwIG4gCiswMDAwMDAxMDM4IDAwMDAwIG4gCiswMDAwMDAxMTcwIDAwMDAwIG4gCiswMDAwMDAxMjg1IDAwMDAwIG4gCiswMDAwMDAxNDA2IDAwMDAwIG4gCiswMDAwMDAxNDQ0IDAwMDAwIG4gCiswMDAwMDAxNTE5IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDE1Cis+Pgorc3RhcnR4cmVmCisxNTY5CislJUVPRgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2JhZF9kaWN0X2tleXMuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9iYWRfZGljdF9rZXlzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmNTNjMjgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9iYWRfZGljdF9rZXlzLmluCkBAIC0wLDAgKzEsMjMgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDMwMCAzMDBdCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKyAgLyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9iYWRfZGljdF9rZXlzLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2JhZF9kaWN0X2tleXMucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1NWM0MzQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9iYWRfZGljdF9rZXlzLnBkZgpAQCAtMCwwICsxLDMzIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvTWVkaWFCb3ggWzAgMCAzMDAgMzAwXQorICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCisgIC8gWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCis+PgorZW5kb2JqCit4cmVmCiswIDQKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxNjkgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgNAorPj4KK3N0YXJ0eHJlZgorMjIwCislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYmlndGFibGVfbWluaS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2JpZ3RhYmxlX21pbmkuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U4MDk5MgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2JpZ3RhYmxlX21pbmkuaW4KQEAgLTAsMCArMSwxMTMgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvSW1hZ2VCIC9UZXh0XQorICAgIC9Gb250IDw8CisgICAgICAvRjEgNSAwIFIKKyAgICAgIC9GMiA2IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxIEJUCisxIDAgMCAxIDI1MCA2NjcgVG0KKy9GMiA4Ljk2NjM4IFRmCistMjQzLjYzNSAtMTUuODQgVGQKKyhmKVRqCisvRjEgOC45NjYzOCBUZgorNC41NTQ5MSAwIFRkCisoZilUagorMi44NzQ3NiAwIFRkCisoYXkpVGoKKzcuNzkyNTMgMCBUZAorKCxqZWYpVGoKKzExLjUwNiAwIFRkCisoZixzYW5qYXkpVGoKKzI3LjQ1NTggMCBUZAorKCx3aWxzb25oLGspVGoKKzM3LjE4MDEgMCBUZAorKGVycilUagorOS41ODM3MiAwIFRkCisoLG0zYix0dXNoYXIpVGoKKzQxLjg1MzcgMCBUZAorKCwCaylUagorMTEuNjM0OSAwIFRkCisoZXMsZ3J1YmVyKVRqCisvRjIgOC45NjYzOCBUZgorMzIuOTY5NCAwIFRkCisoZylUagorL0YxIDguOTY2MzggVGYKKzQuNTU0OTEgMCBUZAorKEBnb29nbGUuY29tKVRqCitFVCBRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvVGltZXMtUm9tYW4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvRmlyc3RDaGFyIDEwMgorICAvQmFzZUZvbnQgL1JGU1FIUStDTVNZOQorICAvRm9udERlc2NyaXB0b3IgNyAwIFIKKyAgL0xhc3RDaGFyIDEwMworICAvV2lkdGhzIFs1MDggNTA4XQorPj4KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCisgIC9Bc2NlbnQgNzUwCisgIC9DYXBIZWlnaHQgNzUwCisgIC9DaGFyU2V0ICgvYnJhY2VsZWZ0L2JyYWNlcmlnaHQpCisgIC9EZXNjZW50IC0yNTAKKyAgL0ZsYWdzIDQKKyAgL0ZvbnRCQm94IFswIC0yNTAgNDQwIDc1MF0KKyAgL0ZvbnRGaWxlMyA4IDAgUgorICAvRm9udE5hbWUgL1JGU1FIUStDTVNZOQorICAvSXRhbGljQW5nbGUgMAorICAvU3RlbVYgNjUKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9TdWJ0eXBlIC9UeXBlMUMKKyAgL0ZpbHRlciBbL0FTQ0lJODVEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitHaFFZPD90IU1QQTdYYTFFWE5CTCNoNCVrJT9AZHUjcTVfNUIpRWdpb0wicClwS3MhajlAX0EhWEBuIkEjXnMvbnIsMGFZPyFpLDVSPz5uQQorNDNCUnVUWCN0JTRla0QyX2NdcFNkKmc/SV8oZG1WLW8zazw6VmV1cCxVNTAqWWxyLmk7JGJIQ2M6ZmdoZTVMPjFhXGA8RmtwVFI8OGhFZGkKKy5TRUo6Pk8lYE4+PlNMZD4sOilHVDk8QkJhMiNMK1BhOVYxJkFvKCJeXlA8LyF1JlFsN1BoZFk5VDUjNkllUEdpT2dPYU5kTHNSZylPSGkrCituK2EuZlsvNF83bG5wOk9YUCklNlhFUiJXS2A6QzIqJkYlcGxbTF0vTEgwUyNySms6U1tjb0VqYUEwcD1sYEJJNEJQWyRMQ24wOTg2MmpLcworWSlGN1deITVCKGguW2tEVVkqMVdcZUBsOG1FJU4/XjhSTjJxTlVDY2UhYldQakx0Rjg9NFpnLFIsMSE6SFI2XlYvYlxUSWgwWmAxMWBoWloKKypCTydaYTFDW3BoKWRTbT5hRSM+ay1BJ19oNCkhYnFKRCRqampAL19idSpCTj8uVWRASFYwWSZsMVZnJDFGKWVeXTo2RVIzSVYoVGJqMTtTCitCcG9zUTBEZi9NRGlUY29ZTzRCU1lcJiolPGFKczE7Si86Lj4/PiRVRzctcHNlRilSLlQnYTtALFBONUJYXXNXUWY8Km82SDpSR1oqZl5QagorcWtkLCptVkEjMWxBSmVIXCVkISlHQW0zWyVfZ0FGNU9COG1yPihwRV41X0ZqW2k/M0JxMFg3L0QpNkVdKGA5YV9nYVVvS34+CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYmlndGFibGVfbWluaS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9iaWd0YWJsZV9taW5pLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGIzZTAyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYmlndGFibGVfbWluaS5wZGYKQEAgLTAsMCArMSwxMjggQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Qcm9jU2V0IFsvUERGIC9JbWFnZUIgL1RleHRdCisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgICAgL0YyIDYgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAzNzQKKz4+CitzdHJlYW0KK3EgQlQKKzEgMCAwIDEgMjUwIDY2NyBUbQorL0YyIDguOTY2MzggVGYKKy0yNDMuNjM1IC0xNS44NCBUZAorKGYpVGoKKy9GMSA4Ljk2NjM4IFRmCis0LjU1NDkxIDAgVGQKKyhmKVRqCisyLjg3NDc2IDAgVGQKKyhheSlUagorNy43OTI1MyAwIFRkCisoLGplZilUagorMTEuNTA2IDAgVGQKKyhmLHNhbmpheSlUagorMjcuNDU1OCAwIFRkCisoLHdpbHNvbmgsaylUagorMzcuMTgwMSAwIFRkCisoZXJyKVRqCis5LjU4MzcyIDAgVGQKKygsbTNiLHR1c2hhcilUagorNDEuODUzNyAwIFRkCisoLAJrKVRqCisxMS42MzQ5IDAgVGQKKyhlcyxncnViZXIpVGoKKy9GMiA4Ljk2NjM4IFRmCiszMi45Njk0IDAgVGQKKyhnKVRqCisvRjEgOC45NjYzOCBUZgorNC41NTQ5MSAwIFRkCisoQGdvb2dsZS5jb20pVGoKK0VUIFEKK2VuZHN0cmVhbQorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuCis+PgorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvRmlyc3RDaGFyIDEwMgorICAvQmFzZUZvbnQgL1JGU1FIUStDTVNZOQorICAvRm9udERlc2NyaXB0b3IgNyAwIFIKKyAgL0xhc3RDaGFyIDEwMworICAvV2lkdGhzIFs1MDggNTA4XQorPj4KK2VuZG9iagorNyAwIG9iaiA8PAorICAvVHlwZSAvRm9udERlc2NyaXB0b3IKKyAgL0FzY2VudCA3NTAKKyAgL0NhcEhlaWdodCA3NTAKKyAgL0NoYXJTZXQgKC9icmFjZWxlZnQvYnJhY2VyaWdodCkKKyAgL0Rlc2NlbnQgLTI1MAorICAvRmxhZ3MgNAorICAvRm9udEJCb3ggWzAgLTI1MCA0NDAgNzUwXQorICAvRm9udEZpbGUzIDggMCBSCisgIC9Gb250TmFtZSAvUkZTUUhRK0NNU1k5CisgIC9JdGFsaWNBbmdsZSAwCisgIC9TdGVtViA2NQorPj4KK2VuZG9iagorOCAwIG9iaiA8PAorICAvU3VidHlwZSAvVHlwZTFDCisgIC9GaWx0ZXIgWy9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL0xlbmd0aCA2NDAKKz4+CitzdHJlYW0KK0doUVk8P3QhTVBBN1hhMUVYTkJMI2g0JWslP0BkdSNxNV81QilFZ2lvTCJwKXBLcyFqOUBfQSFYQG4iQSNecy9uciwwYVk/IWksNVI/Pm5BCis0M0JSdVRYI3QlNGVrRDJfY11wU2QqZz9JXyhkbVYtbzNrPDpWZXVwLFU1MCpZbHIuaTskYkhDYzpmZ2hlNUw+MWFcYDxGa3BUUjw4aEVkaQorLlNFSjo+TyVgTj4+U0xkPiw6KUdUOTxCQmEyI0wrUGE5VjEmQW8oIl5eUDwvIXUmUWw3UGhkWTlUNSM2SWVQR2lPZ09hTmRMc1JnKU9IaSsKK24rYS5mWy80XzdsbnA6T1hQKSU2WEVSIldLYDpDMiomRiVwbFtMXS9MSDBTI3JKazpTW2NvRWphQTBwPWxgQkk0QlBbJExDbjA5ODYyaktzCitZKUY3V14hNUIoaC5ba0RVWSoxV1xlQGw4bUUlTj9eOFJOMnFOVUNjZSFiV1BqTHRGOD00WmcsUiwxITpIUjZeVi9iXFRJaDBaYDExYGhaWgorKkJPJ1phMUNbcGgpZFNtPmFFIz5rLUEnX2g0KSFicUpEJGpqakAvX2J1KkJOPy5VZEBIVjBZJmwxVmckMUYpZV5dOjZFUjNJVihUYmoxO1MKK0Jwb3NRMERmL01EaVRjb1lPNEJTWVwmKiU8YUpzMTtKLzouPj8+JFVHNy1wc2VGKVIuVCdhO0AsUE41Qlhdc1dRZjwqbzZIOlJHWipmXlBqCitxa2QsKm1WQSMxbEFKZUhcJWQhKUdBbTNbJV9nQUY1T0I4bXI+KHBFXjVfRmpbaT8zQnEwWDcvRCk2RV0oYDlhX2dhVW9Lfj4KK2VuZHN0cmVhbQorZW5kb2JqCit4cmVmCiswIDkKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxMzEgMDAwMDAgbiAKKzAwMDAwMDAzMzMgMDAwMDAgbiAKKzAwMDAwMDA3NTkgMDAwMDAgbiAKKzAwMDAwMDA4MzcgMDAwMDAgbiAKKzAwMDAwMDA5OTMgMDAwMDAgbiAKKzAwMDAwMDEyMzQgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgOQorPj4KK3N0YXJ0eHJlZgorMTk4NQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2Jvb2ttYXJrcy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2Jvb2ttYXJrcy5pbgppbmRleCA3OTNmNmFlLi5iMDQ4OWE1IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9ib29rbWFya3MuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYm9va21hcmtzLmluCkBAIC0yLDcgKzIsNyBAQAoge3tvYmplY3QgMSAwfX0gPDwKICAgL1R5cGUgL0NhdGFsb2cKICAgL1BhZ2VzIDIgMCBSCi0gIC9PdXRsaW5lcyAxNCAwIFIKKyAgL091dGxpbmVzIDggMCBSCiA+PgogZW5kb2JqCiB7e29iamVjdCAyIDB9fSA8PApAQCAtMTksOSArMTksMTEgQEAKICAgL1R5cGUgL1BhZ2UKICAgL1BhcmVudCAyIDAgUgogICAvUmVzb3VyY2VzIDw8Ci0gICAgL0ZvbnQgPDwvRjEgMTUgMCBSPj4KKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgPj4KICAgPj4KLSAgL0NvbnRlbnRzIFsyMSAwIFJdCisgIC9Db250ZW50cyBbNiAwIFJdCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgogZW5kb2JqCkBAIC0zMCw0NiArMzIsMjQgQEAKICAgL1R5cGUgL1BhZ2UKICAgL1BhcmVudCAyIDAgUgogICAvUmVzb3VyY2VzICA8PAotICAgIC9Gb250IDw8L0YxIDE1IDAgUj4+CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgID4+CiAgID4+Ci0gIC9Db250ZW50cyBbMjIgMCBSXQorICAvQ29udGVudHMgWzcgMCBSXQogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KIGVuZG9iagotJSBGaXJzdCBib29rbWFyawote3tvYmplY3QgMTAgMH19IDw8Ci0gIC9UaXRsZSAoQSBHb29kIEJlZ2lubmluZykKLSAgL1BhcmVudCAxNCAwIFIKLSAgL05leHQgMTEgMCBSCi0gIC9EZXN0IChmb28pCi0+PgotZW5kb2JqCi0lIExhc3QgYm9va21hcmsKLXt7b2JqZWN0IDExIDB9fSA8PAotICAvVGl0bGUgKEEgR29vZCBFbmRpbmcpCi0gIC9QYXJlbnQgMTQgMCBSCi0gIC9QcmV2IDEwIDAgUgotICAvRGVzdCAoYmFyKQotPj4KLWVuZG9iagotJSBSb290IGJvb2ttYXJrCi17e29iamVjdCAxNCAwfX0gPDwKLSAgL1R5cGUgL091dGxpbmVzCi0gIC9GaXJzdCAxMCAwIFIKLSAgL0xhc3QgIDExIDAgUgotICAvQ291bnQgMgotPj4KLWVuZG9iagogJSBGb250IHJlc291cmNlLgote3tvYmplY3QgMTUgMH19IDw8Cit7e29iamVjdCA1IDB9fSA8PAogICAvVHlwZSAvRm9udAogICAvU3VidHlwZSAvVHlwZTEKICAgL0Jhc2VGb250IC9BcmlhbAogPj4KIGVuZG9iagogJSBDb250ZW50IGZvciBwYWdlIDAuCi17e29iamVjdCAyMSAwfX0gPDwKLSAgL0xlbmd0aCAwCit7e29iamVjdCA2IDB9fSA8PAorICB7e3N0cmVhbWxlbn19CiA+Pgogc3RyZWFtCiBCVApAQCAtNzksOCArNTksOCBAQAogZW5kc3RyZWFtCiBlbmRvYmoKICUgQ29udGVudCBmb3IgcGFnZSAxLgote3tvYmplY3QgMjIgMH19IDw8Ci0gIC9MZW5ndGggMAore3tvYmplY3QgNyAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQogPj4KIHN0cmVhbQogQlQKQEAgLTg5LDYgKzY5LDcyIEBACiBFVAogZW5kc3RyZWFtCiBlbmRvYmoKKyUgUm9vdCBib29rbWFyawore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL091dGxpbmVzCisgIC9Db3VudCAzCisgIC9GaXJzdCA5IDAgUgorICAvTGFzdCAxMiAwIFIKKz4+CitlbmRvYmoKKyUgRmlyc3QgY2hpbGQgYm9va21hcmsgKGxlYWYgbm9kZSkKK3t7b2JqZWN0IDkgMH19IDw8CisgIC9UaXRsZSAoQSBHb29kIEJlZ2lubmluZykKKyAgL1BhcmVudCA4IDAgUgorICAvTmV4dCAxMCAwIFIKKyAgL0Rlc3QgKGZvbykKKz4+CitlbmRvYmoKKyUgU2Vjb25kIGNoaWxkIGJvb2ttYXJrIChvcGVuKQore3tvYmplY3QgMTAgMH19IDw8CisgIC9UaXRsZSAoT3BlbiBNaWRkbGUpCisgIC9QYXJlbnQgOCAwIFIKKyAgL0ZpcnN0IDExIDAgUgorICAvTGFzdCAxMSAwIFIKKyAgL1ByZXYgOSAwIFIKKyAgL05leHQgMTIgMCBSCisgIC9Db3VudCAxCisgIC9BIDw8CisgICAgL1R5cGUgL0FjdGlvbgorICAgIC9TIC9VUkkKKyAgICAvVVJJIChodHRwczovL3RoZXBsYXkudGVzdCkKKyAgPj4KKz4+CitlbmRvYmoKKyUgRmlyc3QgZ3JhbmRjaGlsZCBib29rbWFyawore3tvYmplY3QgMTEgMH19IDw8CisgIC9UaXRsZSAoT3BlbiBNaWRkbGUgRGVzY2VuZGFudCkKKyAgL1BhcmVudCAxMCAwIFIKKyAgL0Rlc3QgWzMgMCBSIC9YWVogMTAwIDIwMCAwXQorPj4KK2VuZG9iagorJSBUaGlyZCBjaGlsZCBib29rbWFyayAoY2xvc2VkKQore3tvYmplY3QgMTIgMH19IDw8CisgIC9UaXRsZSAoQSBHb29kIENsb3NlZCBFbmRpbmcpCisgIC9QYXJlbnQgOCAwIFIKKyAgL0ZpcnN0IDEzIDAgUgorICAvTGFzdCAxNCAwIFIKKyAgL1ByZXYgMTAgMCBSCisgIC9Db3VudCAtMgorICAvRGVzdCAoYmFyKQorPj4KK2VuZG9iagorJSBTZWNvbmQgZ3JhbmRjaGlsZCBib29rbWFyawore3tvYmplY3QgMTMgMH19IDw8CisgIC9UaXRsZSAoQSBHb29kIENsb3NlZCBFbmRpbmcgRGVzY2VuZGFudCkKKyAgL1BhcmVudCAxMiAwIFIKKyAgL05leHQgMTQgMCBSCisgIC9EZXN0IChiYXIpCis+PgorZW5kb2JqCislIFRoaXJkIGdyYW5kY2hpbGQgYm9va21hcmsKK3t7b2JqZWN0IDE0IDB9fSA8PAorICAvVGl0bGUgKEEgR29vZCBDbG9zZWQgRW5kaW5nIERlc2NlbmRhbnQgMikKKyAgL1BhcmVudCAxMiAwIFIKKyAgL1ByZXYgMTMgMCBSCisgIC9EZXN0IChiYXIpCis+PgorZW5kb2JqCiB7e3hyZWZ9fQoge3t0cmFpbGVyfX0KIHt7c3RhcnR4cmVmfX0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2Jvb2ttYXJrcy5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9ib29rbWFya3MucGRmCmluZGV4IDhjMmViNWEuLjc1N2Y4NTkgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2Jvb2ttYXJrcy5wZGYKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYm9va21hcmtzLnBkZgpAQCAtMyw3ICszLDcgQEAKIDEgMCBvYmogPDwKICAgL1R5cGUgL0NhdGFsb2cKICAgL1BhZ2VzIDIgMCBSCi0gIC9PdXRsaW5lcyAxNCAwIFIKKyAgL091dGxpbmVzIDggMCBSCiA+PgogZW5kb2JqCiAyIDAgb2JqIDw8CkBAIC0yMCw5ICsyMCwxMSBAQAogICAvVHlwZSAvUGFnZQogICAvUGFyZW50IDIgMCBSCiAgIC9SZXNvdXJjZXMgPDwKLSAgICAvRm9udCA8PC9GMSAxNSAwIFI+PgorICAgIC9Gb250IDw8CisgICAgICAvRjEgNSAwIFIKKyAgICA+PgogICA+PgotICAvQ29udGVudHMgWzIxIDAgUl0KKyAgL0NvbnRlbnRzIFs2IDAgUl0KICAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KID4+CiBlbmRvYmoKQEAgLTMxLDQ2ICszMywyNCBAQAogICAvVHlwZSAvUGFnZQogICAvUGFyZW50IDIgMCBSCiAgIC9SZXNvdXJjZXMgIDw8Ci0gICAgL0ZvbnQgPDwvRjEgMTUgMCBSPj4KKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgPj4KICAgPj4KLSAgL0NvbnRlbnRzIFsyMiAwIFJdCisgIC9Db250ZW50cyBbNyAwIFJdCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgogZW5kb2JqCi0lIEZpcnN0IGJvb2ttYXJrCi0xMCAwIG9iaiA8PAotICAvVGl0bGUgKEEgR29vZCBCZWdpbm5pbmcpCi0gIC9QYXJlbnQgMTQgMCBSCi0gIC9OZXh0IDExIDAgUgotICAvRGVzdCAoZm9vKQotPj4KLWVuZG9iagotJSBMYXN0IGJvb2ttYXJrCi0xMSAwIG9iaiA8PAotICAvVGl0bGUgKEEgR29vZCBFbmRpbmcpCi0gIC9QYXJlbnQgMTQgMCBSCi0gIC9QcmV2IDEwIDAgUgotICAvRGVzdCAoYmFyKQotPj4KLWVuZG9iagotJSBSb290IGJvb2ttYXJrCi0xNCAwIG9iaiA8PAotICAvVHlwZSAvT3V0bGluZXMKLSAgL0ZpcnN0IDEwIDAgUgotICAvTGFzdCAgMTEgMCBSCi0gIC9Db3VudCAyCi0+PgotZW5kb2JqCiAlIEZvbnQgcmVzb3VyY2UuCi0xNSAwIG9iaiA8PAorNSAwIG9iaiA8PAogICAvVHlwZSAvRm9udAogICAvU3VidHlwZSAvVHlwZTEKICAgL0Jhc2VGb250IC9BcmlhbAogPj4KIGVuZG9iagogJSBDb250ZW50IGZvciBwYWdlIDAuCi0yMSAwIG9iaiA8PAotICAvTGVuZ3RoIDAKKzYgMCBvYmogPDwKKyAgL0xlbmd0aCAzNwogPj4KIHN0cmVhbQogQlQKQEAgLTgwLDggKzYwLDggQEAKIGVuZHN0cmVhbQogZW5kb2JqCiAlIENvbnRlbnQgZm9yIHBhZ2UgMS4KLTIyIDAgb2JqIDw8Ci0gIC9MZW5ndGggMAorNyAwIG9iaiA8PAorICAvTGVuZ3RoIDM3CiA+Pgogc3RyZWFtCiBCVApAQCAtOTAsMzIgKzcwLDkzIEBACiBFVAogZW5kc3RyZWFtCiBlbmRvYmoKKyUgUm9vdCBib29rbWFyaworOCAwIG9iaiA8PAorICAvVHlwZSAvT3V0bGluZXMKKyAgL0NvdW50IDMKKyAgL0ZpcnN0IDkgMCBSCisgIC9MYXN0IDEyIDAgUgorPj4KK2VuZG9iagorJSBGaXJzdCBjaGlsZCBib29rbWFyayAobGVhZiBub2RlKQorOSAwIG9iaiA8PAorICAvVGl0bGUgKEEgR29vZCBCZWdpbm5pbmcpCisgIC9QYXJlbnQgOCAwIFIKKyAgL05leHQgMTAgMCBSCisgIC9EZXN0IChmb28pCis+PgorZW5kb2JqCislIFNlY29uZCBjaGlsZCBib29rbWFyayAob3BlbikKKzEwIDAgb2JqIDw8CisgIC9UaXRsZSAoT3BlbiBNaWRkbGUpCisgIC9QYXJlbnQgOCAwIFIKKyAgL0ZpcnN0IDExIDAgUgorICAvTGFzdCAxMSAwIFIKKyAgL1ByZXYgOSAwIFIKKyAgL05leHQgMTIgMCBSCisgIC9Db3VudCAxCisgIC9BIDw8CisgICAgL1R5cGUgL0FjdGlvbgorICAgIC9TIC9VUkkKKyAgICAvVVJJIChodHRwczovL3RoZXBsYXkudGVzdCkKKyAgPj4KKz4+CitlbmRvYmoKKyUgRmlyc3QgZ3JhbmRjaGlsZCBib29rbWFyaworMTEgMCBvYmogPDwKKyAgL1RpdGxlIChPcGVuIE1pZGRsZSBEZXNjZW5kYW50KQorICAvUGFyZW50IDEwIDAgUgorICAvRGVzdCBbMyAwIFIgL1hZWiAxMDAgMjAwIDBdCis+PgorZW5kb2JqCislIFRoaXJkIGNoaWxkIGJvb2ttYXJrIChjbG9zZWQpCisxMiAwIG9iaiA8PAorICAvVGl0bGUgKEEgR29vZCBDbG9zZWQgRW5kaW5nKQorICAvUGFyZW50IDggMCBSCisgIC9GaXJzdCAxMyAwIFIKKyAgL0xhc3QgMTQgMCBSCisgIC9QcmV2IDEwIDAgUgorICAvQ291bnQgLTIKKyAgL0Rlc3QgKGJhcikKKz4+CitlbmRvYmoKKyUgU2Vjb25kIGdyYW5kY2hpbGQgYm9va21hcmsKKzEzIDAgb2JqIDw8CisgIC9UaXRsZSAoQSBHb29kIENsb3NlZCBFbmRpbmcgRGVzY2VuZGFudCkKKyAgL1BhcmVudCAxMiAwIFIKKyAgL05leHQgMTQgMCBSCisgIC9EZXN0IChiYXIpCis+PgorZW5kb2JqCislIFRoaXJkIGdyYW5kY2hpbGQgYm9va21hcmsKKzE0IDAgb2JqIDw8CisgIC9UaXRsZSAoQSBHb29kIENsb3NlZCBFbmRpbmcgRGVzY2VuZGFudCAyKQorICAvUGFyZW50IDEyIDAgUgorICAvUHJldiAxMyAwIFIKKyAgL0Rlc3QgKGJhcikKKz4+CitlbmRvYmoKIHhyZWYKLTAgMjMKKzAgMTUKIDAwMDAwMDAwMDAgNjU1MzUgZiAKIDAwMDAwMDAwMTUgMDAwMDAgbiAKLTAwMDAwMDAwODcgMDAwMDAgbiAKLTAwMDAwMDAxODUgMDAwMDAgbiAKLTAwMDAwMDAzNDYgMDAwMDAgbiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDA1MDggMDAwMDAgbiAKLTAwMDAwMDA2MjAgMDAwMDAgbiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDA3MjkgMDAwMDAgbiAKLTAwMDAwMDA4MjkgMDAwMDAgbiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDA5MjQgMDAwMDAgbiAKLTAwMDAwMDEwMzQgMDAwMDAgbiAKLXRyYWlsZXI8PCAvUm9vdCAxIDAgUiAvU2l6ZSAyMyA+PgorMDAwMDAwMDA4NiAwMDAwMCBuIAorMDAwMDAwMDE4NCAwMDAwMCBuIAorMDAwMDAwMDM1NSAwMDAwMCBuIAorMDAwMDAwMDUyNyAwMDAwMCBuIAorMDAwMDAwMDYyMSAwMDAwMCBuIAorMDAwMDAwMDczMSAwMDAwMCBuIAorMDAwMDAwMDgzNSAwMDAwMCBuIAorMDAwMDAwMDk1MCAwMDAwMCBuIAorMDAwMDAwMTA3NSAwMDAwMCBuIAorMDAwMDAwMTMxMCAwMDAwMCBuIAorMDAwMDAwMTQ0NiAwMDAwMCBuIAorMDAwMDAwMTYxNyAwMDAwMCBuIAorMDAwMDAwMTc1NiAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAxNQorPj4KIHN0YXJ0eHJlZgotMTEyMgorMTg2OQogJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMDU1ODY5LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEwNTU4NjkuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZjYmY1ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMDU1ODY5LmluCkBAIC0wLDAgKzEsNjIgQEAKK3t7aGVhZGVyfX0KK3t7aW5jbHVkZSB4ZmFfY2F0YWxvZ18xXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIHhmYV9vYmplY3RfMl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSB4ZmFfcHJlYW1ibGVfM18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSB4ZmFfY29uZmlnXzRfMC5mcmFnbWVudH19Cit7e29iamVjdCA1IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8dGVtcGxhdGUgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLXRlbXBsYXRlLzIuNi8iPgorICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBsb2NhbGU9ImVuX1VTIiBuYW1lPSJmb3JtMSIgcmVzdG9yZVN0YXRlPSJhdXRvIj4KKyAgICA8cGFnZVNldD4KKyAgICAgIDxwYWdlQXJlYSBpZD0iUGFnZTEiIG5hbWU9IlBhZ2UxIj4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjEwLjVpbiIgdz0iOGluIiB4PSIwLjI1aW4iIHk9IjAuMjVpbiIvPgorICAgICAgICA8bWVkaXVtIGxvbmc9IjExaW4iIHNob3J0PSI4LjVpbiIgc3RvY2s9ImxldHRlciIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPHN1YmZvcm0gaD0iMTAuNWluIiB3PSI4aW4iIG5hbWU9InN1YmZvcm0yIj4KKyAgICAgIDxmaWVsZCBoPSIxMG1tIiBuYW1lPSJjaG9pY2VMaXN0MCIgdz0iNTBtbSIgeD0iNW1tIiB5PSI1MG1tIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDxjaG9pY2VMaXN0Lz4KKyAgICAgICAgPC91aT4KKyAgICAgICAgPGl0ZW1zPgorICAgICAgICAgIDx0ZXh0PlNpbmdsZTwvdGV4dD4KKyAgICAgICAgPC9pdGVtcz4KKyAgICAgIDwvZmllbGQ+CisgICAgICA8ZmllbGQgbmFtZT0iY2hvaWNlTGlzdDEiIGg9IjIwMG1tIiB3PSIyMDBtbSIgeD0iMW1tIiB5PSIxbW0iPgorICAgICAgICA8dWk+CisgICAgICAgICAgPHRleHRFZGl0Lz4KKyAgICAgICAgPC91aT4KKyAgICAgICAgPHZhbHVlPgorICAgICAgICAgIDx0ZXh0PnBkZml1bTwvdGV4dD4KKyAgICAgICAgPC92YWx1ZT4KKyAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJjaGFuZ2UiPgorICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICBjaGFuZ2VfY291bnQgKz0gMTsKKyAgICAgICAgICAgIGlmIChjaGFuZ2VfY291bnQgPT0gMikgeworICAgICAgICAgICAgICAgIGYxID0geGZhLnJlc29sdmVOb2RlKCJ4ZmEuZm9ybS4uY2hvaWNlTGlzdDAiKTsKKyAgICAgICAgICAgICAgICB4ZmEuaG9zdC5zZXRGb2N1cyhmMSk7CisgICAgICAgICAgICAgICAgeGZhLnRlbXBsYXRlLnJlbWVyZ2UoKTsKKyAgICAgICAgICAgICAgICB4ZmEuaG9zdC5vcGVuTGlzdChmMSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDwvZXZlbnQ+CisgICAgICA8L2ZpZWxkPgorICAgIDwvc3ViZm9ybT4KKyAgICA8ZXZlbnQgYWN0aXZpdHk9ImRvY1JlYWR5Ij4KKyAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgIGNoYW5nZV9jb3VudCA9IDA7CisgICAgICA8L3NjcmlwdD4KKyAgICA8L2V2ZW50PgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7aW5jbHVkZSB4ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgeGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIHhmYV9wYWdlc184XzAuZnJhZ21lbnR9fQore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEwNTU4NjkucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEwNTU4NjkucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMmQwMjkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTA1NTg2OS5wZGYKQEAgLTAsMCArMSwyNzEgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvQWNyb0Zvcm0gMiAwIFIKKyAgL0V4dGVuc2lvbnMgPDwKKyAgICAvQURCRSA8PAorICAgICAgL0Jhc2VWZXJzaW9uIC8xLjcKKyAgICAgIC9FeHRlbnNpb25MZXZlbCA4CisgICAgPj4KKyAgPj4KKyAgL05lZWRzUmVuZGVyaW5nIHRydWUKKyAgL1BhZ2VzIDggMCBSCisgIC9UeXBlIC9DYXRhbG9nCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9YRkEgWworICAgIChwcmVhbWJsZSkKKyAgICAzIDAgUgorICAgIChjb25maWcpCisgICAgNCAwIFIKKyAgICAodGVtcGxhdGUpCisgICAgNSAwIFIKKyAgICAobG9jYWxlU2V0KQorICAgIDYgMCBSCisgICAgKHBvc3RhbWJsZSkKKyAgICA3IDAgUgorICBdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9MZW5ndGggMTI0Cis+Pgorc3RyZWFtCis8eGRwOnhkcCB4bWxuczp4ZHA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGRwLyIgdGltZVN0YW1wPSIyMDE4LTAyLTIzVDIxOjM3OjExWiIgdXVpZD0iMjE0ODI3OTgtN2JmMC00MGE0LWJjNWQtM2NlZmRjY2YzMmI1Ij4KK2VuZHN0cmVhbQorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9MZW5ndGggNjQyCis+Pgorc3RyZWFtCis8Y29uZmlnIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hjaS8zLjAvIj4KKzxhZ2VudCBuYW1lPSJkZXNpZ25lciI+CisgIDxkZXN0aW5hdGlvbj5wZGY8L2Rlc3RpbmF0aW9uPgorICA8cGRmPgorICAgIDxmb250SW5mby8+CisgIDwvcGRmPgorPC9hZ2VudD4KKzxwcmVzZW50PgorICA8cGRmPgorICAgIDx2ZXJzaW9uPjEuNzwvdmVyc2lvbj4KKyAgICA8YWRvYmVFeHRlbnNpb25MZXZlbD44PC9hZG9iZUV4dGVuc2lvbkxldmVsPgorICAgIDxyZW5kZXJQb2xpY3k+Y2xpZW50PC9yZW5kZXJQb2xpY3k+CisgICAgPHNjcmlwdE1vZGVsPlhGQTwvc2NyaXB0TW9kZWw+CisgICAgPGludGVyYWN0aXZlPjE8L2ludGVyYWN0aXZlPgorICA8L3BkZj4KKyAgPHhkcD4KKyAgICA8cGFja2V0cz4qPC9wYWNrZXRzPgorICA8L3hkcD4KKyAgPGRlc3RpbmF0aW9uPnBkZjwvZGVzdGluYXRpb24+CisgIDxzY3JpcHQ+CisgICAgPHJ1blNjcmlwdHM+c2VydmVyPC9ydW5TY3JpcHRzPgorICA8L3NjcmlwdD4KKzwvcHJlc2VudD4KKzxhY3JvYmF0PgorICA8YWNyb2JhdDc+CisgICAgPGR5bmFtaWNSZW5kZXI+cmVxdWlyZWQ8L2R5bmFtaWNSZW5kZXI+CisgIDwvYWNyb2JhdDc+CisgIDx2YWxpZGF0ZT5wcmVTdWJtaXQ8L3ZhbGlkYXRlPgorPC9hY3JvYmF0PgorPC9jb25maWc+CitlbmRzdHJlYW0KK2VuZG9iagorNSAwIG9iaiA8PAorICAvTGVuZ3RoIDEzNjEKKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZSB4bWxucz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvMi42LyI+CisgIDxzdWJmb3JtIGxheW91dD0idGIiIGxvY2FsZT0iZW5fVVMiIG5hbWU9ImZvcm0xIiByZXN0b3JlU3RhdGU9ImF1dG8iPgorICAgIDxwYWdlU2V0PgorICAgICAgPHBhZ2VBcmVhIGlkPSJQYWdlMSIgbmFtZT0iUGFnZTEiPgorICAgICAgICA8Y29udGVudEFyZWEgaD0iMTAuNWluIiB3PSI4aW4iIHg9IjAuMjVpbiIgeT0iMC4yNWluIi8+CisgICAgICAgIDxtZWRpdW0gbG9uZz0iMTFpbiIgc2hvcnQ9IjguNWluIiBzdG9jaz0ibGV0dGVyIi8+CisgICAgICA8L3BhZ2VBcmVhPgorICAgIDwvcGFnZVNldD4KKyAgICA8c3ViZm9ybSBoPSIxMC41aW4iIHc9IjhpbiIgbmFtZT0ic3ViZm9ybTIiPgorICAgICAgPGZpZWxkIGg9IjEwbW0iIG5hbWU9ImNob2ljZUxpc3QwIiB3PSI1MG1tIiB4PSI1bW0iIHk9IjUwbW0iPgorICAgICAgICA8dWk+CisgICAgICAgICAgPGNob2ljZUxpc3QvPgorICAgICAgICA8L3VpPgorICAgICAgICA8aXRlbXM+CisgICAgICAgICAgPHRleHQ+U2luZ2xlPC90ZXh0PgorICAgICAgICA8L2l0ZW1zPgorICAgICAgPC9maWVsZD4KKyAgICAgIDxmaWVsZCBuYW1lPSJjaG9pY2VMaXN0MSIgaD0iMjAwbW0iIHc9IjIwMG1tIiB4PSIxbW0iIHk9IjFtbSI+CisgICAgICAgIDx1aT4KKyAgICAgICAgICA8dGV4dEVkaXQvPgorICAgICAgICA8L3VpPgorICAgICAgICA8dmFsdWU+CisgICAgICAgICAgPHRleHQ+cGRmaXVtPC90ZXh0PgorICAgICAgICA8L3ZhbHVlPgorICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9ImNoYW5nZSI+CisgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIGNoYW5nZV9jb3VudCArPSAxOworICAgICAgICAgICAgaWYgKGNoYW5nZV9jb3VudCA9PSAyKSB7CisgICAgICAgICAgICAgICAgZjEgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5jaG9pY2VMaXN0MCIpOworICAgICAgICAgICAgICAgIHhmYS5ob3N0LnNldEZvY3VzKGYxKTsKKyAgICAgICAgICAgICAgICB4ZmEudGVtcGxhdGUucmVtZXJnZSgpOworICAgICAgICAgICAgICAgIHhmYS5ob3N0Lm9wZW5MaXN0KGYxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPC9ldmVudD4KKyAgICAgIDwvZmllbGQ+CisgICAgPC9zdWJmb3JtPgorICAgIDxldmVudCBhY3Rpdml0eT0iZG9jUmVhZHkiPgorICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgY2hhbmdlX2NvdW50ID0gMDsKKyAgICAgIDwvc2NyaXB0PgorICAgIDwvZXZlbnQ+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagorNiAwIG9iaiA8PAorICAvTGVuZ3RoIDM0NTUKKz4+CitzdHJlYW0KKzxsb2NhbGVTZXQgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWxvY2FsZS1zZXQvMi43LyI+CisgIDxsb2NhbGUgbmFtZT0iZW5fVVMiIGRlc2M9IkVuZ2xpc2ggKFVuaXRlZCBTdGF0ZXMpIj4KKyAgICA8Y2FsZW5kYXJTeW1ib2xzIG5hbWU9ImdyZWdvcmlhbiI+CisgICAgICA8bW9udGhOYW1lcz4KKyAgICAgICAgPG1vbnRoPkphbnVhcnk8L21vbnRoPgorICAgICAgICA8bW9udGg+RmVicnVhcnk8L21vbnRoPgorICAgICAgICA8bW9udGg+TWFyY2g8L21vbnRoPgorICAgICAgICA8bW9udGg+QXByaWw8L21vbnRoPgorICAgICAgICA8bW9udGg+TWF5PC9tb250aD4KKyAgICAgICAgPG1vbnRoPkp1bmU8L21vbnRoPgorICAgICAgICA8bW9udGg+SnVseTwvbW9udGg+CisgICAgICAgIDxtb250aD5BdWd1c3Q8L21vbnRoPgorICAgICAgICA8bW9udGg+U2VwdGVtYmVyPC9tb250aD4KKyAgICAgICAgPG1vbnRoPk9jdG9iZXI8L21vbnRoPgorICAgICAgICA8bW9udGg+Tm92ZW1iZXI8L21vbnRoPgorICAgICAgICA8bW9udGg+RGVjZW1iZXI8L21vbnRoPgorICAgICAgPC9tb250aE5hbWVzPgorICAgICAgPG1vbnRoTmFtZXMgYWJicj0iMSI+CisgICAgICAgIDxtb250aD5KYW48L21vbnRoPgorICAgICAgICA8bW9udGg+RmViPC9tb250aD4KKyAgICAgICAgPG1vbnRoPk1hcjwvbW9udGg+CisgICAgICAgIDxtb250aD5BcHI8L21vbnRoPgorICAgICAgICA8bW9udGg+TWF5PC9tb250aD4KKyAgICAgICAgPG1vbnRoPkp1bjwvbW9udGg+CisgICAgICAgIDxtb250aD5KdWw8L21vbnRoPgorICAgICAgICA8bW9udGg+QXVnPC9tb250aD4KKyAgICAgICAgPG1vbnRoPlNlcDwvbW9udGg+CisgICAgICAgIDxtb250aD5PY3Q8L21vbnRoPgorICAgICAgICA8bW9udGg+Tm92PC9tb250aD4KKyAgICAgICAgPG1vbnRoPkRlYzwvbW9udGg+CisgICAgICA8L21vbnRoTmFtZXM+CisgICAgICA8ZGF5TmFtZXM+CisgICAgICAgIDxkYXk+U3VuZGF5PC9kYXk+CisgICAgICAgIDxkYXk+TW9uZGF5PC9kYXk+CisgICAgICAgIDxkYXk+VHVlc2RheTwvZGF5PgorICAgICAgICA8ZGF5PldlZG5lc2RheTwvZGF5PgorICAgICAgICA8ZGF5PlRodXJzZGF5PC9kYXk+CisgICAgICAgIDxkYXk+RnJpZGF5PC9kYXk+CisgICAgICAgIDxkYXk+U2F0dXJkYXk8L2RheT4KKyAgICAgIDwvZGF5TmFtZXM+CisgICAgICA8ZGF5TmFtZXMgYWJicj0iMSI+CisgICAgICAgIDxkYXk+U3VuPC9kYXk+CisgICAgICAgIDxkYXk+TW9uPC9kYXk+CisgICAgICAgIDxkYXk+VHVlPC9kYXk+CisgICAgICAgIDxkYXk+V2VkPC9kYXk+CisgICAgICAgIDxkYXk+VGh1PC9kYXk+CisgICAgICAgIDxkYXk+RnJpPC9kYXk+CisgICAgICAgIDxkYXk+U2F0PC9kYXk+CisgICAgICA8L2RheU5hbWVzPgorICAgICAgPG1lcmlkaWVtTmFtZXM+CisgICAgICAgIDxtZXJpZGllbT5BTTwvbWVyaWRpZW0+CisgICAgICAgIDxtZXJpZGllbT5QTTwvbWVyaWRpZW0+CisgICAgICA8L21lcmlkaWVtTmFtZXM+CisgICAgICA8ZXJhTmFtZXM+CisgICAgICAgIDxlcmE+QkM8L2VyYT4KKyAgICAgICAgPGVyYT5BRDwvZXJhPgorICAgICAgPC9lcmFOYW1lcz4KKyAgICA8L2NhbGVuZGFyU3ltYm9scz4KKyAgICA8ZGF0ZVBhdHRlcm5zPgorICAgICAgPGRhdGVQYXR0ZXJuIG5hbWU9ImZ1bGwiPkVFRUUsIE1NTU0gRCwgWVlZWTwvZGF0ZVBhdHRlcm4+CisgICAgICA8ZGF0ZVBhdHRlcm4gbmFtZT0ibG9uZyI+TU1NTSBELCBZWVlZPC9kYXRlUGF0dGVybj4KKyAgICAgIDxkYXRlUGF0dGVybiBuYW1lPSJtZWQiPk1NTSBELCBZWVlZPC9kYXRlUGF0dGVybj4KKyAgICAgIDxkYXRlUGF0dGVybiBuYW1lPSJzaG9ydCI+TS9EL1lZPC9kYXRlUGF0dGVybj4KKyAgICA8L2RhdGVQYXR0ZXJucz4KKyAgICA8dGltZVBhdHRlcm5zPgorICAgICAgPHRpbWVQYXR0ZXJuIG5hbWU9ImZ1bGwiPmg6TU06U1MgQSBaPC90aW1lUGF0dGVybj4KKyAgICAgIDx0aW1lUGF0dGVybiBuYW1lPSJsb25nIj5oOk1NOlNTIEEgWjwvdGltZVBhdHRlcm4+CisgICAgICA8dGltZVBhdHRlcm4gbmFtZT0ibWVkIj5oOk1NOlNTIEE8L3RpbWVQYXR0ZXJuPgorICAgICAgPHRpbWVQYXR0ZXJuIG5hbWU9InNob3J0Ij5oOk1NIEE8L3RpbWVQYXR0ZXJuPgorICAgIDwvdGltZVBhdHRlcm5zPgorICAgIDxkYXRlVGltZVN5bWJvbHM+R3lNZGtIbXNTRURGd1dhaEt6WjwvZGF0ZVRpbWVTeW1ib2xzPgorICAgIDxudW1iZXJQYXR0ZXJucz4KKyAgICAgIDxudW1iZXJQYXR0ZXJuIG5hbWU9Im51bWVyaWMiPnoseno5Lnp6ejwvbnVtYmVyUGF0dGVybj4KKyAgICAgIDxudW1iZXJQYXR0ZXJuIG5hbWU9ImN1cnJlbmN5Ij4keix6ejkuOTl8KCR6LHp6OS45OSk8L251bWJlclBhdHRlcm4+CisgICAgICA8bnVtYmVyUGF0dGVybiBuYW1lPSJwZXJjZW50Ij56LHp6OSU8L251bWJlclBhdHRlcm4+CisgICAgPC9udW1iZXJQYXR0ZXJucz4KKyAgICA8bnVtYmVyU3ltYm9scz4KKyAgICAgIDxudW1iZXJTeW1ib2wgbmFtZT0iZGVjaW1hbCI+LjwvbnVtYmVyU3ltYm9sPgorICAgICAgPG51bWJlclN5bWJvbCBuYW1lPSJncm91cGluZyI+LDwvbnVtYmVyU3ltYm9sPgorICAgICAgPG51bWJlclN5bWJvbCBuYW1lPSJwZXJjZW50Ij4lPC9udW1iZXJTeW1ib2w+CisgICAgICA8bnVtYmVyU3ltYm9sIG5hbWU9Im1pbnVzIj4tPC9udW1iZXJTeW1ib2w+CisgICAgICA8bnVtYmVyU3ltYm9sIG5hbWU9Inplcm8iPjA8L251bWJlclN5bWJvbD4KKyAgICA8L251bWJlclN5bWJvbHM+CisgICAgPGN1cnJlbmN5U3ltYm9scz4KKyAgICAgIDxjdXJyZW5jeVN5bWJvbCBuYW1lPSJzeW1ib2wiPiQ8L2N1cnJlbmN5U3ltYm9sPgorICAgICAgPGN1cnJlbmN5U3ltYm9sIG5hbWU9Imlzb25hbWUiPlVTRDwvY3VycmVuY3lTeW1ib2w+CisgICAgICA8Y3VycmVuY3lTeW1ib2wgbmFtZT0iZGVjaW1hbCI+LjwvY3VycmVuY3lTeW1ib2w+CisgICAgPC9jdXJyZW5jeVN5bWJvbHM+CisgICAgPHR5cGVmYWNlcz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJNeXJpYWQgUHJvIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iTWluaW9uIFBybyIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IkNvdXJpZXIgU3RkIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQWRvYmUgUGkgU3RkIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQWRvYmUgSGVicmV3Ii8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQWRvYmUgQXJhYmljIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQWRvYmUgVGhhaSIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IktvenVrYSBHb3RoaWMgUHJvLVZJIE0iLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJLb3p1a2EgTWluY2hvIFByby1WSSBSIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQWRvYmUgTWluZyBTdGQgTCIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IkFkb2JlIFNvbmcgU3RkIEwiLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJBZG9iZSBNeXVuZ2pvIFN0ZCBNIi8+CisgICAgPC90eXBlZmFjZXM+CisgIDwvbG9jYWxlPgorPC9sb2NhbGVTZXQ+CitlbmRzdHJlYW0KK2VuZG9iagorNyAwIG9iaiA8PAorICAvTGVuZ3RoIDExCis+Pgorc3RyZWFtCis8L3hkcDp4ZHA+CitlbmRzdHJlYW0KK2VuZG9iagorOCAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzkgMCBSXQorPj4KK2VuZG9iagorOSAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDggMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCis+PgorZW5kb2JqCit4cmVmCiswIDEwCiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMTk5IDAwMDAwIG4gCiswMDAwMDAwMzU4IDAwMDAwIG4gCiswMDAwMDAwNTM0IDAwMDAwIG4gCiswMDAwMDAxMjI4IDAwMDAwIG4gCiswMDAwMDAyNjQyIDAwMDAwIG4gCiswMDAwMDA2MTUwIDAwMDAwIG4gCiswMDAwMDA2MjEyIDAwMDAwIG4gCiswMDAwMDA2Mjc1IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDEwCis+Pgorc3RhcnR4cmVmCis2MzUyCislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEwNTg2NTMuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTA1ODY1My5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTczYzU0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEwNTg2NTMuaW4KQEAgLTAsMCArMSw3MyBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIHhmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgeGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIHhmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIHhmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZSB4bWxucz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvMi42LyI+CisgIDxzdWJmb3JtIGxheW91dD0idGIiIGxvY2FsZT0iZW5fVVMiIG5hbWU9ImZvcm0xIiByZXN0b3JlU3RhdGU9ImF1dG8iPgorICAgIDxwYWdlU2V0PgorICAgICAgPHBhZ2VBcmVhIGlkPSJQYWdlMSIgbmFtZT0iUGFnZTEiPgorICAgICAgICA8Y29udGVudEFyZWEgaD0iMTAuNWluIiB3PSI4aW4iIHg9IjAuMjVpbiIgeT0iMC4yNWluIi8+CisgICAgICAgIDxtZWRpdW0gbG9uZz0iMTFpbiIgc2hvcnQ9IjguNWluIiBzdG9jaz0ibGV0dGVyIi8+CisgICAgICA8L3BhZ2VBcmVhPgorICAgIDwvcGFnZVNldD4KKyAgICA8c3ViZm9ybSBoPSIxMC41aW4iIHc9IjhpbiIgbmFtZT0ic3ViZm9ybTIiPgorICAgICAgPGZpZWxkIG5hbWU9ImYxIiBoPSIxMG1tIiB3PSIxMG1tIiB4PSIyMG1tIiB5PSIyMG1tIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDxjaG9pY2VMaXN0Lz4KKyAgICAgICAgPC91aT4KKyAgICAgICAgPGl0ZW1zIHNhdmU9IjEiPgorICAgICAgICAgIDx0ZXh0PmFhYWFhYWFhYWE8L3RleHQ+CisgICAgICAgIDwvaXRlbXM+CisgICAgICA8L2ZpZWxkPgorICAgICAgPHN1YmZvcm0gbmFtZT0iZjQiIHg9IjFtbSIgeT0iMW1tIj4KKyAgICAgICAgPG9jY3VyIG1heD0iLTEiLz4KKyAgICAgICAgPGZpZWxkIG5hbWU9ImYyIiBoPSIzNTBtbSIgdz0iMjAwbW0iPgorICAgICAgICAgIDx1aT4KKyAgICAgICAgICAgIDxjaG9pY2VMaXN0IHRleHRFbnRyeT0iMSI+CisgICAgICAgICAgICA8L2Nob2ljZUxpc3Q+CisgICAgICAgICAgPC91aT4KKyAgICAgICAgICA8aXRlbXM+CisgICAgICAgICAgICAgICAgPHRleHQ+QWxiYW5pYTwvdGV4dD4KKyAgICAgICAgICAgICAgICA8dGV4dD5BbmRvcnJhPC90ZXh0PgorICAgICAgICAgICAgICAgIDx0ZXh0PkFybWVuaWE8L3RleHQ+CisgICAgICAgICAgPC9pdGVtcz4KKyAgICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9ImNoYW5nZSI+CisgICAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgICBhICs9IDE7CisgICAgICAgICAgICAgIGlmIChhID09IDIpIHsKKyAgICAgICAgICAgICAgICAgIGMgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5mMSIpOworICAgICAgICAgICAgICAgICAgeGZhLmhvc3Quc2V0Rm9jdXMoYyk7CisgICAgICAgICAgICAgICAgICBkID0geGZhLnJlc29sdmVOb2RlKCJ4ZmEuZm9ybS4uZjQiKTsKKyAgICAgICAgICAgICAgICAgIGQuaW5zdGFuY2VNYW5hZ2VyLmFkZEluc3RhbmNlKDEpOworICAgICAgICAgICAgICAgICAgZC5pbnN0YW5jZU1hbmFnZXIucmVtb3ZlSW5zdGFuY2UoMCk7CisgICAgICAgICAgICAgICAgICB4ZmEuaG9zdC5vcGVuTGlzdChjKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgPC9ldmVudD4KKyAgICAgICAgPC9maWVsZD4KKyAgICAgIDwvc3ViZm9ybT4KKyAgICA8L3N1YmZvcm0+CisgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSI+CisgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICBhID0gMDsKKyAgICAgICAgZjIgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5mMiIpOworICAgICAgICBmMi5yYXdWYWx1ZSA9ICJtaW5odHR0dHR0IjsKKyAgICAgICAgeGZhLmhvc3Quc2V0Rm9jdXMoZjIpOworICAgICAgPC9zY3JpcHQ+CisgICAgPC9ldmVudD4KKyAgPC9zdWJmb3JtPgorPC90ZW1wbGF0ZT4KK2VuZHN0cmVhbQorZW5kb2JqCit7e2luY2x1ZGUgeGZhX2xvY2FsZV82XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIHhmYV9wb3N0YW1ibGVfN18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSB4ZmFfcGFnZXNfOF8wLmZyYWdtZW50fX0KK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMDU4NjUzLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMDU4NjUzLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjc4ZGZiCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEwNTg2NTMucGRmCkBAIC0wLDAgKzEsMjgyIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL0Fjcm9Gb3JtIDIgMCBSCisgIC9FeHRlbnNpb25zIDw8CisgICAgL0FEQkUgPDwKKyAgICAgIC9CYXNlVmVyc2lvbiAvMS43CisgICAgICAvRXh0ZW5zaW9uTGV2ZWwgOAorICAgID4+CisgID4+CisgIC9OZWVkc1JlbmRlcmluZyB0cnVlCisgIC9QYWdlcyA4IDAgUgorICAvVHlwZSAvQ2F0YWxvZworPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvWEZBIFsKKyAgICAocHJlYW1ibGUpCisgICAgMyAwIFIKKyAgICAoY29uZmlnKQorICAgIDQgMCBSCisgICAgKHRlbXBsYXRlKQorICAgIDUgMCBSCisgICAgKGxvY2FsZVNldCkKKyAgICA2IDAgUgorICAgIChwb3N0YW1ibGUpCisgICAgNyAwIFIKKyAgXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvTGVuZ3RoIDEyNAorPj4KK3N0cmVhbQorPHhkcDp4ZHAgeG1sbnM6eGRwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hkcC8iIHRpbWVTdGFtcD0iMjAxOC0wMi0yM1QyMTozNzoxMVoiIHV1aWQ9IjIxNDgyNzk4LTdiZjAtNDBhNC1iYzVkLTNjZWZkY2NmMzJiNSI+CitlbmRzdHJlYW0KK2VuZG9iagorNCAwIG9iaiA8PAorICAvTGVuZ3RoIDY0MgorPj4KK3N0cmVhbQorPGNvbmZpZyB4bWxucz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94Y2kvMy4wLyI+Cis8YWdlbnQgbmFtZT0iZGVzaWduZXIiPgorICA8ZGVzdGluYXRpb24+cGRmPC9kZXN0aW5hdGlvbj4KKyAgPHBkZj4KKyAgICA8Zm9udEluZm8vPgorICA8L3BkZj4KKzwvYWdlbnQ+Cis8cHJlc2VudD4KKyAgPHBkZj4KKyAgICA8dmVyc2lvbj4xLjc8L3ZlcnNpb24+CisgICAgPGFkb2JlRXh0ZW5zaW9uTGV2ZWw+ODwvYWRvYmVFeHRlbnNpb25MZXZlbD4KKyAgICA8cmVuZGVyUG9saWN5PmNsaWVudDwvcmVuZGVyUG9saWN5PgorICAgIDxzY3JpcHRNb2RlbD5YRkE8L3NjcmlwdE1vZGVsPgorICAgIDxpbnRlcmFjdGl2ZT4xPC9pbnRlcmFjdGl2ZT4KKyAgPC9wZGY+CisgIDx4ZHA+CisgICAgPHBhY2tldHM+KjwvcGFja2V0cz4KKyAgPC94ZHA+CisgIDxkZXN0aW5hdGlvbj5wZGY8L2Rlc3RpbmF0aW9uPgorICA8c2NyaXB0PgorICAgIDxydW5TY3JpcHRzPnNlcnZlcjwvcnVuU2NyaXB0cz4KKyAgPC9zY3JpcHQ+Cis8L3ByZXNlbnQ+Cis8YWNyb2JhdD4KKyAgPGFjcm9iYXQ3PgorICAgIDxkeW5hbWljUmVuZGVyPnJlcXVpcmVkPC9keW5hbWljUmVuZGVyPgorICA8L2Fjcm9iYXQ3PgorICA8dmFsaWRhdGU+cHJlU3VibWl0PC92YWxpZGF0ZT4KKzwvYWNyb2JhdD4KKzwvY29uZmlnPgorZW5kc3RyZWFtCitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL0xlbmd0aCAxNzcyCis+Pgorc3RyZWFtCis8dGVtcGxhdGUgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLXRlbXBsYXRlLzIuNi8iPgorICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBsb2NhbGU9ImVuX1VTIiBuYW1lPSJmb3JtMSIgcmVzdG9yZVN0YXRlPSJhdXRvIj4KKyAgICA8cGFnZVNldD4KKyAgICAgIDxwYWdlQXJlYSBpZD0iUGFnZTEiIG5hbWU9IlBhZ2UxIj4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjEwLjVpbiIgdz0iOGluIiB4PSIwLjI1aW4iIHk9IjAuMjVpbiIvPgorICAgICAgICA8bWVkaXVtIGxvbmc9IjExaW4iIHNob3J0PSI4LjVpbiIgc3RvY2s9ImxldHRlciIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPHN1YmZvcm0gaD0iMTAuNWluIiB3PSI4aW4iIG5hbWU9InN1YmZvcm0yIj4KKyAgICAgIDxmaWVsZCBuYW1lPSJmMSIgaD0iMTBtbSIgdz0iMTBtbSIgeD0iMjBtbSIgeT0iMjBtbSI+CisgICAgICAgIDx1aT4KKyAgICAgICAgICA8Y2hvaWNlTGlzdC8+CisgICAgICAgIDwvdWk+CisgICAgICAgIDxpdGVtcyBzYXZlPSIxIj4KKyAgICAgICAgICA8dGV4dD5hYWFhYWFhYWFhPC90ZXh0PgorICAgICAgICA8L2l0ZW1zPgorICAgICAgPC9maWVsZD4KKyAgICAgIDxzdWJmb3JtIG5hbWU9ImY0IiB4PSIxbW0iIHk9IjFtbSI+CisgICAgICAgIDxvY2N1ciBtYXg9Ii0xIi8+CisgICAgICAgIDxmaWVsZCBuYW1lPSJmMiIgaD0iMzUwbW0iIHc9IjIwMG1tIj4KKyAgICAgICAgICA8dWk+CisgICAgICAgICAgICA8Y2hvaWNlTGlzdCB0ZXh0RW50cnk9IjEiPgorICAgICAgICAgICAgPC9jaG9pY2VMaXN0PgorICAgICAgICAgIDwvdWk+CisgICAgICAgICAgPGl0ZW1zPgorICAgICAgICAgICAgICAgIDx0ZXh0PkFsYmFuaWE8L3RleHQ+CisgICAgICAgICAgICAgICAgPHRleHQ+QW5kb3JyYTwvdGV4dD4KKyAgICAgICAgICAgICAgICA8dGV4dD5Bcm1lbmlhPC90ZXh0PgorICAgICAgICAgIDwvaXRlbXM+CisgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJjaGFuZ2UiPgorICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgYSArPSAxOworICAgICAgICAgICAgICBpZiAoYSA9PSAyKSB7CisgICAgICAgICAgICAgICAgICBjID0geGZhLnJlc29sdmVOb2RlKCJ4ZmEuZm9ybS4uZjEiKTsKKyAgICAgICAgICAgICAgICAgIHhmYS5ob3N0LnNldEZvY3VzKGMpOworICAgICAgICAgICAgICAgICAgZCA9IHhmYS5yZXNvbHZlTm9kZSgieGZhLmZvcm0uLmY0Iik7CisgICAgICAgICAgICAgICAgICBkLmluc3RhbmNlTWFuYWdlci5hZGRJbnN0YW5jZSgxKTsKKyAgICAgICAgICAgICAgICAgIGQuaW5zdGFuY2VNYW5hZ2VyLnJlbW92ZUluc3RhbmNlKDApOworICAgICAgICAgICAgICAgICAgeGZhLmhvc3Qub3Blbkxpc3QoYyk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgIDwvZXZlbnQ+CisgICAgICAgIDwvZmllbGQ+CisgICAgICA8L3N1YmZvcm0+CisgICAgPC9zdWJmb3JtPgorICAgIDxldmVudCBhY3Rpdml0eT0iZG9jUmVhZHkiPgorICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgYSA9IDA7CisgICAgICAgIGYyID0geGZhLnJlc29sdmVOb2RlKCJ4ZmEuZm9ybS4uZjIiKTsKKyAgICAgICAgZjIucmF3VmFsdWUgPSAibWluaHR0dHR0dCI7CisgICAgICAgIHhmYS5ob3N0LnNldEZvY3VzKGYyKTsKKyAgICAgIDwvc2NyaXB0PgorICAgIDwvZXZlbnQ+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagorNiAwIG9iaiA8PAorICAvTGVuZ3RoIDM0NTUKKz4+CitzdHJlYW0KKzxsb2NhbGVTZXQgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWxvY2FsZS1zZXQvMi43LyI+CisgIDxsb2NhbGUgbmFtZT0iZW5fVVMiIGRlc2M9IkVuZ2xpc2ggKFVuaXRlZCBTdGF0ZXMpIj4KKyAgICA8Y2FsZW5kYXJTeW1ib2xzIG5hbWU9ImdyZWdvcmlhbiI+CisgICAgICA8bW9udGhOYW1lcz4KKyAgICAgICAgPG1vbnRoPkphbnVhcnk8L21vbnRoPgorICAgICAgICA8bW9udGg+RmVicnVhcnk8L21vbnRoPgorICAgICAgICA8bW9udGg+TWFyY2g8L21vbnRoPgorICAgICAgICA8bW9udGg+QXByaWw8L21vbnRoPgorICAgICAgICA8bW9udGg+TWF5PC9tb250aD4KKyAgICAgICAgPG1vbnRoPkp1bmU8L21vbnRoPgorICAgICAgICA8bW9udGg+SnVseTwvbW9udGg+CisgICAgICAgIDxtb250aD5BdWd1c3Q8L21vbnRoPgorICAgICAgICA8bW9udGg+U2VwdGVtYmVyPC9tb250aD4KKyAgICAgICAgPG1vbnRoPk9jdG9iZXI8L21vbnRoPgorICAgICAgICA8bW9udGg+Tm92ZW1iZXI8L21vbnRoPgorICAgICAgICA8bW9udGg+RGVjZW1iZXI8L21vbnRoPgorICAgICAgPC9tb250aE5hbWVzPgorICAgICAgPG1vbnRoTmFtZXMgYWJicj0iMSI+CisgICAgICAgIDxtb250aD5KYW48L21vbnRoPgorICAgICAgICA8bW9udGg+RmViPC9tb250aD4KKyAgICAgICAgPG1vbnRoPk1hcjwvbW9udGg+CisgICAgICAgIDxtb250aD5BcHI8L21vbnRoPgorICAgICAgICA8bW9udGg+TWF5PC9tb250aD4KKyAgICAgICAgPG1vbnRoPkp1bjwvbW9udGg+CisgICAgICAgIDxtb250aD5KdWw8L21vbnRoPgorICAgICAgICA8bW9udGg+QXVnPC9tb250aD4KKyAgICAgICAgPG1vbnRoPlNlcDwvbW9udGg+CisgICAgICAgIDxtb250aD5PY3Q8L21vbnRoPgorICAgICAgICA8bW9udGg+Tm92PC9tb250aD4KKyAgICAgICAgPG1vbnRoPkRlYzwvbW9udGg+CisgICAgICA8L21vbnRoTmFtZXM+CisgICAgICA8ZGF5TmFtZXM+CisgICAgICAgIDxkYXk+U3VuZGF5PC9kYXk+CisgICAgICAgIDxkYXk+TW9uZGF5PC9kYXk+CisgICAgICAgIDxkYXk+VHVlc2RheTwvZGF5PgorICAgICAgICA8ZGF5PldlZG5lc2RheTwvZGF5PgorICAgICAgICA8ZGF5PlRodXJzZGF5PC9kYXk+CisgICAgICAgIDxkYXk+RnJpZGF5PC9kYXk+CisgICAgICAgIDxkYXk+U2F0dXJkYXk8L2RheT4KKyAgICAgIDwvZGF5TmFtZXM+CisgICAgICA8ZGF5TmFtZXMgYWJicj0iMSI+CisgICAgICAgIDxkYXk+U3VuPC9kYXk+CisgICAgICAgIDxkYXk+TW9uPC9kYXk+CisgICAgICAgIDxkYXk+VHVlPC9kYXk+CisgICAgICAgIDxkYXk+V2VkPC9kYXk+CisgICAgICAgIDxkYXk+VGh1PC9kYXk+CisgICAgICAgIDxkYXk+RnJpPC9kYXk+CisgICAgICAgIDxkYXk+U2F0PC9kYXk+CisgICAgICA8L2RheU5hbWVzPgorICAgICAgPG1lcmlkaWVtTmFtZXM+CisgICAgICAgIDxtZXJpZGllbT5BTTwvbWVyaWRpZW0+CisgICAgICAgIDxtZXJpZGllbT5QTTwvbWVyaWRpZW0+CisgICAgICA8L21lcmlkaWVtTmFtZXM+CisgICAgICA8ZXJhTmFtZXM+CisgICAgICAgIDxlcmE+QkM8L2VyYT4KKyAgICAgICAgPGVyYT5BRDwvZXJhPgorICAgICAgPC9lcmFOYW1lcz4KKyAgICA8L2NhbGVuZGFyU3ltYm9scz4KKyAgICA8ZGF0ZVBhdHRlcm5zPgorICAgICAgPGRhdGVQYXR0ZXJuIG5hbWU9ImZ1bGwiPkVFRUUsIE1NTU0gRCwgWVlZWTwvZGF0ZVBhdHRlcm4+CisgICAgICA8ZGF0ZVBhdHRlcm4gbmFtZT0ibG9uZyI+TU1NTSBELCBZWVlZPC9kYXRlUGF0dGVybj4KKyAgICAgIDxkYXRlUGF0dGVybiBuYW1lPSJtZWQiPk1NTSBELCBZWVlZPC9kYXRlUGF0dGVybj4KKyAgICAgIDxkYXRlUGF0dGVybiBuYW1lPSJzaG9ydCI+TS9EL1lZPC9kYXRlUGF0dGVybj4KKyAgICA8L2RhdGVQYXR0ZXJucz4KKyAgICA8dGltZVBhdHRlcm5zPgorICAgICAgPHRpbWVQYXR0ZXJuIG5hbWU9ImZ1bGwiPmg6TU06U1MgQSBaPC90aW1lUGF0dGVybj4KKyAgICAgIDx0aW1lUGF0dGVybiBuYW1lPSJsb25nIj5oOk1NOlNTIEEgWjwvdGltZVBhdHRlcm4+CisgICAgICA8dGltZVBhdHRlcm4gbmFtZT0ibWVkIj5oOk1NOlNTIEE8L3RpbWVQYXR0ZXJuPgorICAgICAgPHRpbWVQYXR0ZXJuIG5hbWU9InNob3J0Ij5oOk1NIEE8L3RpbWVQYXR0ZXJuPgorICAgIDwvdGltZVBhdHRlcm5zPgorICAgIDxkYXRlVGltZVN5bWJvbHM+R3lNZGtIbXNTRURGd1dhaEt6WjwvZGF0ZVRpbWVTeW1ib2xzPgorICAgIDxudW1iZXJQYXR0ZXJucz4KKyAgICAgIDxudW1iZXJQYXR0ZXJuIG5hbWU9Im51bWVyaWMiPnoseno5Lnp6ejwvbnVtYmVyUGF0dGVybj4KKyAgICAgIDxudW1iZXJQYXR0ZXJuIG5hbWU9ImN1cnJlbmN5Ij4keix6ejkuOTl8KCR6LHp6OS45OSk8L251bWJlclBhdHRlcm4+CisgICAgICA8bnVtYmVyUGF0dGVybiBuYW1lPSJwZXJjZW50Ij56LHp6OSU8L251bWJlclBhdHRlcm4+CisgICAgPC9udW1iZXJQYXR0ZXJucz4KKyAgICA8bnVtYmVyU3ltYm9scz4KKyAgICAgIDxudW1iZXJTeW1ib2wgbmFtZT0iZGVjaW1hbCI+LjwvbnVtYmVyU3ltYm9sPgorICAgICAgPG51bWJlclN5bWJvbCBuYW1lPSJncm91cGluZyI+LDwvbnVtYmVyU3ltYm9sPgorICAgICAgPG51bWJlclN5bWJvbCBuYW1lPSJwZXJjZW50Ij4lPC9udW1iZXJTeW1ib2w+CisgICAgICA8bnVtYmVyU3ltYm9sIG5hbWU9Im1pbnVzIj4tPC9udW1iZXJTeW1ib2w+CisgICAgICA8bnVtYmVyU3ltYm9sIG5hbWU9Inplcm8iPjA8L251bWJlclN5bWJvbD4KKyAgICA8L251bWJlclN5bWJvbHM+CisgICAgPGN1cnJlbmN5U3ltYm9scz4KKyAgICAgIDxjdXJyZW5jeVN5bWJvbCBuYW1lPSJzeW1ib2wiPiQ8L2N1cnJlbmN5U3ltYm9sPgorICAgICAgPGN1cnJlbmN5U3ltYm9sIG5hbWU9Imlzb25hbWUiPlVTRDwvY3VycmVuY3lTeW1ib2w+CisgICAgICA8Y3VycmVuY3lTeW1ib2wgbmFtZT0iZGVjaW1hbCI+LjwvY3VycmVuY3lTeW1ib2w+CisgICAgPC9jdXJyZW5jeVN5bWJvbHM+CisgICAgPHR5cGVmYWNlcz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJNeXJpYWQgUHJvIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iTWluaW9uIFBybyIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IkNvdXJpZXIgU3RkIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQWRvYmUgUGkgU3RkIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQWRvYmUgSGVicmV3Ii8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQWRvYmUgQXJhYmljIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQWRvYmUgVGhhaSIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IktvenVrYSBHb3RoaWMgUHJvLVZJIE0iLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJLb3p1a2EgTWluY2hvIFByby1WSSBSIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQWRvYmUgTWluZyBTdGQgTCIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IkFkb2JlIFNvbmcgU3RkIEwiLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJBZG9iZSBNeXVuZ2pvIFN0ZCBNIi8+CisgICAgPC90eXBlZmFjZXM+CisgIDwvbG9jYWxlPgorPC9sb2NhbGVTZXQ+CitlbmRzdHJlYW0KK2VuZG9iagorNyAwIG9iaiA8PAorICAvTGVuZ3RoIDExCis+Pgorc3RyZWFtCis8L3hkcDp4ZHA+CitlbmRzdHJlYW0KK2VuZG9iagorOCAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzkgMCBSXQorPj4KK2VuZG9iagorOSAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDggMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCis+PgorZW5kb2JqCit4cmVmCiswIDEwCiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMTk5IDAwMDAwIG4gCiswMDAwMDAwMzU4IDAwMDAwIG4gCiswMDAwMDAwNTM0IDAwMDAwIG4gCiswMDAwMDAxMjI4IDAwMDAwIG4gCiswMDAwMDAzMDUzIDAwMDAwIG4gCiswMDAwMDA2NTYxIDAwMDAwIG4gCiswMDAwMDA2NjIzIDAwMDAwIG4gCiswMDAwMDA2Njg2IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDEwCis+Pgorc3RhcnR4cmVmCis2NzYzCislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzExMjQ5OTgucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzExMjQ5OTgucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzNjgyMjIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTEyNDk5OC5wZGYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEyMjkxMDYuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTIyOTEwNi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmZlOWJmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEyMjkxMDYuaW4KQEAgLTAsMCArMSw2OCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDQKKyAgL0tpZHMgWzMgMCBSIDMgMCBSIDUgMCBSIDUgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvUm90YXRlIDkwCisgIC9Db250ZW50cyA0IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorMCAxIC0xIDAgNzkyIDAgY20KKzAgMCAwIHJnCisxMDAgNDAwIDE1MCA1MCByZSBmCisxIDAgMCByZworMCAxODAgMTAwIDUwIHJlIGYKKzAgMSAwIHJnCiswIDc0MiAxMDAgNTAgcmUgZgorMCAwIDEgcmcKKzY5MiA3NDIgMTAwIDUwIHJlIGYKKzEgMCAxIHJnCis2OTIgMTgwIDEwMCA1MCByZSBmCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA3OTIgNjEyXQorICAvQ29udGVudHMgNiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzAgMCAwIHJnCisxMDAgMjIwIDE1MCA1MCByZSBmCisxIDAgMCByZworMCAwIDEwMCA1MCByZSBmCiswIDEgMCByZworMCA1NjIgMTAwIDUwIHJlIGYKKzAgMCAxIHJnCis2OTIgNTYyIDEwMCA1MCByZSBmCisxIDAgMSByZworNjkyIDAgMTAwIDUwIHJlIGYKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTIyOTEwNi5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTIyOTEwNi5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBkNjI1YwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMjI5MTA2LnBkZgpAQCAtMCwwICsxLDgxIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgNAorICAvS2lkcyBbMyAwIFIgMyAwIFIgNSAwIFIgNSAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL1JvdGF0ZSA5MAorICAvQ29udGVudHMgNCAwIFIKKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAxNjMKKz4+CitzdHJlYW0KK3EKKzAgMSAtMSAwIDc5MiAwIGNtCiswIDAgMCByZworMTAwIDQwMCAxNTAgNTAgcmUgZgorMSAwIDAgcmcKKzAgMTgwIDEwMCA1MCByZSBmCiswIDEgMCByZworMCA3NDIgMTAwIDUwIHJlIGYKKzAgMCAxIHJnCis2OTIgNzQyIDEwMCA1MCByZSBmCisxIDAgMSByZworNjkyIDE4MCAxMDAgNTAgcmUgZgorUQorZW5kc3RyZWFtCitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA3OTIgNjEyXQorICAvQ29udGVudHMgNiAwIFIKKz4+CitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL0xlbmd0aCAxNDEKKz4+CitzdHJlYW0KK3EKKzAgMCAwIHJnCisxMDAgMjIwIDE1MCA1MCByZSBmCisxIDAgMCByZworMCAwIDEwMCA1MCByZSBmCiswIDEgMCByZworMCA1NjIgMTAwIDUwIHJlIGYKKzAgMCAxIHJnCis2OTIgNTYyIDEwMCA1MCByZSBmCisxIDAgMSByZworNjkyIDAgMTAwIDUwIHJlIGYKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit4cmVmCiswIDcKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxNDkgMDAwMDAgbiAKKzAwMDAwMDAyNTcgMDAwMDAgbiAKKzAwMDAwMDA0NzIgMDAwMDAgbiAKKzAwMDAwMDA1NjcgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgNworPj4KK3N0YXJ0eHJlZgorNzYwCislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEyOTY5MjAuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTI5NjkyMC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzlkYTU4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEyOTY5MjAuaW4KQEAgLTAsMCArMSwxMTUgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvU3RydWN0VHJlZVJvb3QgNiAwIFIKKyAgL01hcmtJbmZvIDw8CisgICAgL01hcmtlZCB0cnVlCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDEwMCAxMDBdCisgIC9QYXJlbnQgMiAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvRjEgNSAwIFIKKyAgICA+PgorICA+PgorICAvU3RydWN0UGFyZW50cyAwCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvUCA8PC9NQ0lEIDE+PiBCREMKK0JUCisvRjEgMTIgVGYKKzEgMCAwIDEgMjAgNTAgVG0KKyhIZWxsbykgVGoKK0VUCitFTUMKKy9QIDw8L01DSUQgMj4+IEJEQworQlQKKy9GMSAxMiBUZgorMSAwIDAgMSA1MCA1MCBUbQorKFdvcmxkKSBUagorRVQKK0VNQworZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdFRyZWVSb290CisgIC9LIFs5IDAgUl0KKyAgL1BhcmVudFRyZWUgNyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9OdW1zIFswIDggMCBSIDEgMTAgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0KK1sxMiAwIFIgMTMgMCBSXQorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvRG9jdW1lbnQKKyAgL1AgNiAwIFIKKyAgL0sgWzEwIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEwIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFydAorICAvUCA5IDAgUgorICAvSyBbMTEgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMTEgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9EaXYKKyAgL1AgMTAgMCBSCisgIC9LIFsxMiAwIFIgMTMgMCBSIDE0IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEyIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAxMSAwIFIKKyAgL0sgMQorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEzIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAxMSAwIFIKKyAgL0sgMgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDE0IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvRGl2CisgIC9QIDExIDAgUgorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEyOTY5MjAucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEyOTY5MjAucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyZDc3OGMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTI5NjkyMC5wZGYKQEAgLTAsMCArMSwxMzYgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL1N0cnVjdFRyZWVSb290IDYgMCBSCisgIC9NYXJrSW5mbyA8PAorICAgIC9NYXJrZWQgdHJ1ZQorICA+PgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgMTAwIDEwMF0KKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgID4+CisgID4+CisgIC9TdHJ1Y3RQYXJlbnRzIDAKKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAxMzQKKz4+CitzdHJlYW0KKy9QIDw8L01DSUQgMT4+IEJEQworQlQKKy9GMSAxMiBUZgorMSAwIDAgMSAyMCA1MCBUbQorKEhlbGxvKSBUagorRVQKK0VNQworL1AgPDwvTUNJRCAyPj4gQkRDCitCVAorL0YxIDEyIFRmCisxIDAgMCAxIDUwIDUwIFRtCisoV29ybGQpIFRqCitFVAorRU1DCitlbmRzdHJlYW0KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKz4+CitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdFRyZWVSb290CisgIC9LIFs5IDAgUl0KKyAgL1BhcmVudFRyZWUgNyAwIFIKKz4+CitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL051bXMgWzAgOCAwIFIgMSAxMCAwIFJdCis+PgorZW5kb2JqCis4IDAgb2JqCitbMTIgMCBSIDEzIDAgUl0KK2VuZG9iagorOSAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvRG9jdW1lbnQKKyAgL1AgNiAwIFIKKyAgL0sgWzEwIDAgUl0KKz4+CitlbmRvYmoKKzEwIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJ0CisgIC9QIDkgMCBSCisgIC9LIFsxMSAwIFJdCis+PgorZW5kb2JqCisxMSAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvRGl2CisgIC9QIDEwIDAgUgorICAvSyBbMTIgMCBSIDEzIDAgUiAxNCAwIFJdCis+PgorZW5kb2JqCisxMiAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAxMSAwIFIKKyAgL0sgMQorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzEzIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QCisgIC9QIDExIDAgUgorICAvSyAyCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagorMTQgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL0RpdgorICAvUCAxMSAwIFIKKz4+CitlbmRvYmoKK3hyZWYKKzAgMTUKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAxMjkgMDAwMDAgbiAKKzAwMDAwMDAxOTIgMDAwMDAgbiAKKzAwMDAwMDAzNjMgMDAwMDAgbiAKKzAwMDAwMDA1NDkgMDAwMDAgbiAKKzAwMDAwMDA2MjUgMDAwMDAgbiAKKzAwMDAwMDA3MDMgMDAwMDAgbiAKKzAwMDAwMDA3NTEgMDAwMDAgbiAKKzAwMDAwMDA3ODIgMDAwMDAgbiAKKzAwMDAwMDA4NjMgMDAwMDAgbiAKKzAwMDAwMDA5NDEgMDAwMDAgbiAKKzAwMDAwMDEwMzMgMDAwMDAgbiAKKzAwMDAwMDExMTQgMDAwMDAgbiAKKzAwMDAwMDExOTUgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgMTUKKz4+CitzdGFydHhyZWYKKzEyNTkKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMwMS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMwMS5wZGYKaW5kZXggMjg1YzdmNy4uOGM2ZTQ1ZiAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEzMDEucGRmCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzAxLnBkZgpAQCAtMjE3LDcgKzIxNyw3IEBACiBlbmRvYmoKIDkgMCBvYmogPDwKICAgL1R5cGUgL1BhZ2UKLSAgL1BhcmVudCAyIDAgUgorICAvUGFyZW50IDggMCBSCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgogZW5kb2JqCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMwMjQ1NS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzAyNDU1LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlMThmMTIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMwMjQ1NS5pbgpAQCAtMCwwICsxLDc1IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDw8CisgICAgL0RSIDQgMCBSCisgICAgL0ZpZWxkcyBbNiAwIFIgNyAwIFJdCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0tpZHMgWzMgMCBSXQorICAvQ291bnQgMQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQW5ub3RzIFs2IDAgUiA3IDAgUl0KKyAgL01lZGlhQm94IFswIDAgMzAwIDMwMF0KKyAgL1Jlc291cmNlcyA0IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL0ZvbnQgPDwKKyAgICAvRjEgNSAwIFIKKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9UeAorICAvQVAgPDwKKyAgICAvTiA4IDAgUgorICA+PgorICAvRiA0CisgIC9SZWN0IFsxMDAgMTAwIDIwMCAxMzBdCisgIC9UIChUZXh0IEJveCAxKQorPj4KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9UeAorICAvQVAgPDwKKyAgICAvTiA4IDAgUgorICA+PgorICAvRiA0CisgIC9SZWN0IFsxMDAgMTYwIDIwMCAxOTBdCisgIC9UIChUZXh0IEJveCAyKQorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0JCb3ggWzAgMCAxMDAgMzBdCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzEgMCAwIHJnCiswIDAgMTAwIDMwIHJlIGYKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMwMjQ1NS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMwMjQ1NS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk3ODJjNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzAyNDU1LnBkZgpAQCAtMCwwICsxLDkwIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9EUiA0IDAgUgorICAgIC9GaWVsZHMgWzYgMCBSIDcgMCBSXQorICA+PgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0tpZHMgWzMgMCBSXQorICAvQ291bnQgMQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Bbm5vdHMgWzYgMCBSIDcgMCBSXQorICAvTWVkaWFCb3ggWzAgMCAzMDAgMzAwXQorICAvUmVzb3VyY2VzIDQgMCBSCis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9Gb250IDw8CisgICAgL0YxIDUgMCBSCisgID4+Cis+PgorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorPj4KK2VuZG9iagorNiAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL1R4CisgIC9BUCA8PAorICAgIC9OIDggMCBSCisgID4+CisgIC9GIDQKKyAgL1JlY3QgWzEwMCAxMDAgMjAwIDEzMF0KKyAgL1QgKFRleHQgQm94IDEpCis+PgorZW5kb2JqCis3IDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvVHgKKyAgL0FQIDw8CisgICAgL04gOCAwIFIKKyAgPj4KKyAgL0YgNAorICAvUmVjdCBbMTAwIDE2MCAyMDAgMTkwXQorICAvVCAoVGV4dCBCb3ggMikKKz4+CitlbmRvYmoKKzggMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0JCb3ggWzAgMCAxMDAgMzBdCisgIC9MZW5ndGggMjUKKz4+CitzdHJlYW0KKzEgMCAwIHJnCiswIDAgMTAwIDMwIHJlIGYKK2VuZHN0cmVhbQorZW5kb2JqCit4cmVmCiswIDkKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAxMjggMDAwMDAgbiAKKzAwMDAwMDAxOTEgMDAwMDAgbiAKKzAwMDAwMDAzMTEgMDAwMDAgbiAKKzAwMDAwMDAzNjIgMDAwMDAgbiAKKzAwMDAwMDA0MzggMDAwMDAgbiAKKzAwMDAwMDA1ODEgMDAwMDAgbiAKKzAwMDAwMDA3MjQgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgOQorPj4KK3N0YXJ0eHJlZgorODU1CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEzMjQxODkuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMyNDE4OS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWZjZWJhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEzMjQxODkuaW4KQEAgLTAsMCArMSwxNiBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPAorICAvVHlwZSAvQ2F0YWxvZworPj4KK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKK3t7eHJlZn19Cit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9QcmV2IC0yMDAKKyAge3t0cmFpbGVyc2l6ZX19Cis+Pgore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzI0MTg5LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzI0MTg5LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjUyMzk4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEzMjQxODkucGRmCkBAIC0wLDAgKzEsMjggQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8CisgIC9UeXBlIC9DYXRhbG9nCis+PgoreHJlZgorMCAyCiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDIKKz4+CitzdGFydHhyZWYKKzQ1CislJUVPRgoreHJlZgorMCAyCiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9QcmV2IC0yMDAKKyAgL1NpemUgMgorPj4KK3N0YXJ0eHJlZgorMTUxCislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEzMjQ1MDMuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMyNDUwMy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDZkMTQyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEzMjQ1MDMuaW4KQEAgLTAsMCArMSwxNiBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPAorICAvVHlwZSAvQ2F0YWxvZworPj4KK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKK3t7eHJlZn19Cit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9YUmVmU3RtIC0xCisgIHt7dHJhaWxlcnNpemV9fQorPj4KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMyNDUwMy5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMyNDUwMy5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNlNzQyNQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzI0NTAzLnBkZgpAQCAtMCwwICsxLDI4IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPAorICAvVHlwZSAvQ2F0YWxvZworPj4KK3hyZWYKKzAgMgorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAyCis+Pgorc3RhcnR4cmVmCis0NQorJSVFT0YKK3hyZWYKKzAgMgorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvWFJlZlN0bSAtMQorICAvU2l6ZSAyCis+Pgorc3RhcnR4cmVmCisxNTEKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMyNzg4NC5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMyNzg4NC5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGUyOGMwNgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzI3ODg0LnBkZgpAQCAtMCwwICsxLDYgQEAKKyVQREYKKzEgMCBvYmo8PC9QYWdlcyAyIDAgUi9BY3JvRm9ybTw8L1hGQSAzMCAwIFI+Pj4+MiAwIG9iajw8Lz4KKzMwIDAgb2JqPDw+PnN0cmVhbQorPHhkcCB4bWxucz0iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvIj48Y29uMGlnPjxhY3JvYmF0PjxhY3JvYmF0MD48L2Fjcm9iYXQwPjwvYWNyb2JhdD48L2NvbjBpZz48dGVtcGxhdGU+PGRlc2MgZT0iInVzZT0iIC5bdXNlPSZxdW90OyomcXVvdDtdIgorZW5kb2JqCit0cmFpbGVyPDwvUm9vdCAxIDAgUj4+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEzMjgzODkuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMyODM4OS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzcwY2U3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEzMjgzODkuaW4KQEAgLTAsMCArMSwyNCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0tpZHMgWzMgMCBSXQorICAvQ291bnQgMQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCAxMDAgMTAwXQorICAlIGh0dHBzOi8vY3JidWcuY29tLzEzMjgzODkKKyAgL0ZvbyAvCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMyODM4OS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMyODM4OS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ1YTdhOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzI4Mzg5LnBkZgpAQCAtMCwwICsxLDM0IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvS2lkcyBbMyAwIFJdCisgIC9Db3VudCAxCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgMTAwIDEwMF0KKyAgJSBodHRwczovL2NyYnVnLmNvbS8xMzI4Mzg5CisgIC9Gb28gLworPj4KK2VuZG9iagoreHJlZgorMCA0CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTMxIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDQKKz4+CitzdGFydHhyZWYKKzI0NworJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzMzMjk4LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEzMzMyOTguaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI0NWVkOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzMzMjk4LmluCkBAIC0wLDAgKzEsMjggQEAKK3t7aGVhZGVyfX0KK3t7aW5jbHVkZSB4ZmFfY2F0YWxvZ18xXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIHhmYV9vYmplY3RfMl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSB4ZmFfcHJlYW1ibGVfM18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSB4ZmFfY29uZmlnXzRfMC5mcmFnbWVudH19Cit7e29iamVjdCA1IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8dGVtcGxhdGU+CisgIDxzdWJmb3JtPgorICAgIDxkZXNjIG5hbWU9Ik4wMSIgdXNlPSIgLltOMDEudXNlPSZxdW90OyAuW04wMS4jdXNlXSZxdW90O10iLz4KKyAgICA8cHJvdG8+CisgICAgICA8cHJvdG8+CisgICAgICAgIDxiaW5kSXRlbXMvPgorICAgICAgPC9wcm90bz4KKyAgICA8L3Byb3RvPgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7aW5jbHVkZSB4ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgeGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIHhmYV9wYWdlc184XzAuZnJhZ21lbnR9fQore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEzMzMyOTgucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEzMzMyOTgucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwMDNjYTkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTMzMzI5OC5wZGYKQEAgLTAsMCArMSwyMzcgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvQWNyb0Zvcm0gMiAwIFIKKyAgL0V4dGVuc2lvbnMgPDwKKyAgICAvQURCRSA8PAorICAgICAgL0Jhc2VWZXJzaW9uIC8xLjcKKyAgICAgIC9FeHRlbnNpb25MZXZlbCA4CisgICAgPj4KKyAgPj4KKyAgL05lZWRzUmVuZGVyaW5nIHRydWUKKyAgL1BhZ2VzIDggMCBSCisgIC9UeXBlIC9DYXRhbG9nCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9YRkEgWworICAgIChwcmVhbWJsZSkKKyAgICAzIDAgUgorICAgIChjb25maWcpCisgICAgNCAwIFIKKyAgICAodGVtcGxhdGUpCisgICAgNSAwIFIKKyAgICAobG9jYWxlU2V0KQorICAgIDYgMCBSCisgICAgKHBvc3RhbWJsZSkKKyAgICA3IDAgUgorICBdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9MZW5ndGggMTI0Cis+Pgorc3RyZWFtCis8eGRwOnhkcCB4bWxuczp4ZHA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGRwLyIgdGltZVN0YW1wPSIyMDE4LTAyLTIzVDIxOjM3OjExWiIgdXVpZD0iMjE0ODI3OTgtN2JmMC00MGE0LWJjNWQtM2NlZmRjY2YzMmI1Ij4KK2VuZHN0cmVhbQorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9MZW5ndGggNjQyCis+Pgorc3RyZWFtCis8Y29uZmlnIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hjaS8zLjAvIj4KKzxhZ2VudCBuYW1lPSJkZXNpZ25lciI+CisgIDxkZXN0aW5hdGlvbj5wZGY8L2Rlc3RpbmF0aW9uPgorICA8cGRmPgorICAgIDxmb250SW5mby8+CisgIDwvcGRmPgorPC9hZ2VudD4KKzxwcmVzZW50PgorICA8cGRmPgorICAgIDx2ZXJzaW9uPjEuNzwvdmVyc2lvbj4KKyAgICA8YWRvYmVFeHRlbnNpb25MZXZlbD44PC9hZG9iZUV4dGVuc2lvbkxldmVsPgorICAgIDxyZW5kZXJQb2xpY3k+Y2xpZW50PC9yZW5kZXJQb2xpY3k+CisgICAgPHNjcmlwdE1vZGVsPlhGQTwvc2NyaXB0TW9kZWw+CisgICAgPGludGVyYWN0aXZlPjE8L2ludGVyYWN0aXZlPgorICA8L3BkZj4KKyAgPHhkcD4KKyAgICA8cGFja2V0cz4qPC9wYWNrZXRzPgorICA8L3hkcD4KKyAgPGRlc3RpbmF0aW9uPnBkZjwvZGVzdGluYXRpb24+CisgIDxzY3JpcHQ+CisgICAgPHJ1blNjcmlwdHM+c2VydmVyPC9ydW5TY3JpcHRzPgorICA8L3NjcmlwdD4KKzwvcHJlc2VudD4KKzxhY3JvYmF0PgorICA8YWNyb2JhdDc+CisgICAgPGR5bmFtaWNSZW5kZXI+cmVxdWlyZWQ8L2R5bmFtaWNSZW5kZXI+CisgIDwvYWNyb2JhdDc+CisgIDx2YWxpZGF0ZT5wcmVTdWJtaXQ8L3ZhbGlkYXRlPgorPC9hY3JvYmF0PgorPC9jb25maWc+CitlbmRzdHJlYW0KK2VuZG9iagorNSAwIG9iaiA8PAorICAvTGVuZ3RoIDE4OQorPj4KK3N0cmVhbQorPHRlbXBsYXRlPgorICA8c3ViZm9ybT4KKyAgICA8ZGVzYyBuYW1lPSJOMDEiIHVzZT0iIC5bTjAxLnVzZT0mcXVvdDsgLltOMDEuI3VzZV0mcXVvdDtdIi8+CisgICAgPHByb3RvPgorICAgICAgPHByb3RvPgorICAgICAgICA8YmluZEl0ZW1zLz4KKyAgICAgIDwvcHJvdG8+CisgICAgPC9wcm90bz4KKyAgPC9zdWJmb3JtPgorPC90ZW1wbGF0ZT4KK2VuZHN0cmVhbQorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9MZW5ndGggMzQ1NQorPj4KK3N0cmVhbQorPGxvY2FsZVNldCB4bWxucz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtbG9jYWxlLXNldC8yLjcvIj4KKyAgPGxvY2FsZSBuYW1lPSJlbl9VUyIgZGVzYz0iRW5nbGlzaCAoVW5pdGVkIFN0YXRlcykiPgorICAgIDxjYWxlbmRhclN5bWJvbHMgbmFtZT0iZ3JlZ29yaWFuIj4KKyAgICAgIDxtb250aE5hbWVzPgorICAgICAgICA8bW9udGg+SmFudWFyeTwvbW9udGg+CisgICAgICAgIDxtb250aD5GZWJydWFyeTwvbW9udGg+CisgICAgICAgIDxtb250aD5NYXJjaDwvbW9udGg+CisgICAgICAgIDxtb250aD5BcHJpbDwvbW9udGg+CisgICAgICAgIDxtb250aD5NYXk8L21vbnRoPgorICAgICAgICA8bW9udGg+SnVuZTwvbW9udGg+CisgICAgICAgIDxtb250aD5KdWx5PC9tb250aD4KKyAgICAgICAgPG1vbnRoPkF1Z3VzdDwvbW9udGg+CisgICAgICAgIDxtb250aD5TZXB0ZW1iZXI8L21vbnRoPgorICAgICAgICA8bW9udGg+T2N0b2JlcjwvbW9udGg+CisgICAgICAgIDxtb250aD5Ob3ZlbWJlcjwvbW9udGg+CisgICAgICAgIDxtb250aD5EZWNlbWJlcjwvbW9udGg+CisgICAgICA8L21vbnRoTmFtZXM+CisgICAgICA8bW9udGhOYW1lcyBhYmJyPSIxIj4KKyAgICAgICAgPG1vbnRoPkphbjwvbW9udGg+CisgICAgICAgIDxtb250aD5GZWI8L21vbnRoPgorICAgICAgICA8bW9udGg+TWFyPC9tb250aD4KKyAgICAgICAgPG1vbnRoPkFwcjwvbW9udGg+CisgICAgICAgIDxtb250aD5NYXk8L21vbnRoPgorICAgICAgICA8bW9udGg+SnVuPC9tb250aD4KKyAgICAgICAgPG1vbnRoPkp1bDwvbW9udGg+CisgICAgICAgIDxtb250aD5BdWc8L21vbnRoPgorICAgICAgICA8bW9udGg+U2VwPC9tb250aD4KKyAgICAgICAgPG1vbnRoPk9jdDwvbW9udGg+CisgICAgICAgIDxtb250aD5Ob3Y8L21vbnRoPgorICAgICAgICA8bW9udGg+RGVjPC9tb250aD4KKyAgICAgIDwvbW9udGhOYW1lcz4KKyAgICAgIDxkYXlOYW1lcz4KKyAgICAgICAgPGRheT5TdW5kYXk8L2RheT4KKyAgICAgICAgPGRheT5Nb25kYXk8L2RheT4KKyAgICAgICAgPGRheT5UdWVzZGF5PC9kYXk+CisgICAgICAgIDxkYXk+V2VkbmVzZGF5PC9kYXk+CisgICAgICAgIDxkYXk+VGh1cnNkYXk8L2RheT4KKyAgICAgICAgPGRheT5GcmlkYXk8L2RheT4KKyAgICAgICAgPGRheT5TYXR1cmRheTwvZGF5PgorICAgICAgPC9kYXlOYW1lcz4KKyAgICAgIDxkYXlOYW1lcyBhYmJyPSIxIj4KKyAgICAgICAgPGRheT5TdW48L2RheT4KKyAgICAgICAgPGRheT5Nb248L2RheT4KKyAgICAgICAgPGRheT5UdWU8L2RheT4KKyAgICAgICAgPGRheT5XZWQ8L2RheT4KKyAgICAgICAgPGRheT5UaHU8L2RheT4KKyAgICAgICAgPGRheT5Gcmk8L2RheT4KKyAgICAgICAgPGRheT5TYXQ8L2RheT4KKyAgICAgIDwvZGF5TmFtZXM+CisgICAgICA8bWVyaWRpZW1OYW1lcz4KKyAgICAgICAgPG1lcmlkaWVtPkFNPC9tZXJpZGllbT4KKyAgICAgICAgPG1lcmlkaWVtPlBNPC9tZXJpZGllbT4KKyAgICAgIDwvbWVyaWRpZW1OYW1lcz4KKyAgICAgIDxlcmFOYW1lcz4KKyAgICAgICAgPGVyYT5CQzwvZXJhPgorICAgICAgICA8ZXJhPkFEPC9lcmE+CisgICAgICA8L2VyYU5hbWVzPgorICAgIDwvY2FsZW5kYXJTeW1ib2xzPgorICAgIDxkYXRlUGF0dGVybnM+CisgICAgICA8ZGF0ZVBhdHRlcm4gbmFtZT0iZnVsbCI+RUVFRSwgTU1NTSBELCBZWVlZPC9kYXRlUGF0dGVybj4KKyAgICAgIDxkYXRlUGF0dGVybiBuYW1lPSJsb25nIj5NTU1NIEQsIFlZWVk8L2RhdGVQYXR0ZXJuPgorICAgICAgPGRhdGVQYXR0ZXJuIG5hbWU9Im1lZCI+TU1NIEQsIFlZWVk8L2RhdGVQYXR0ZXJuPgorICAgICAgPGRhdGVQYXR0ZXJuIG5hbWU9InNob3J0Ij5NL0QvWVk8L2RhdGVQYXR0ZXJuPgorICAgIDwvZGF0ZVBhdHRlcm5zPgorICAgIDx0aW1lUGF0dGVybnM+CisgICAgICA8dGltZVBhdHRlcm4gbmFtZT0iZnVsbCI+aDpNTTpTUyBBIFo8L3RpbWVQYXR0ZXJuPgorICAgICAgPHRpbWVQYXR0ZXJuIG5hbWU9ImxvbmciPmg6TU06U1MgQSBaPC90aW1lUGF0dGVybj4KKyAgICAgIDx0aW1lUGF0dGVybiBuYW1lPSJtZWQiPmg6TU06U1MgQTwvdGltZVBhdHRlcm4+CisgICAgICA8dGltZVBhdHRlcm4gbmFtZT0ic2hvcnQiPmg6TU0gQTwvdGltZVBhdHRlcm4+CisgICAgPC90aW1lUGF0dGVybnM+CisgICAgPGRhdGVUaW1lU3ltYm9scz5HeU1ka0htc1NFREZ3V2FoS3paPC9kYXRlVGltZVN5bWJvbHM+CisgICAgPG51bWJlclBhdHRlcm5zPgorICAgICAgPG51bWJlclBhdHRlcm4gbmFtZT0ibnVtZXJpYyI+eix6ejkuenp6PC9udW1iZXJQYXR0ZXJuPgorICAgICAgPG51bWJlclBhdHRlcm4gbmFtZT0iY3VycmVuY3kiPiR6LHp6OS45OXwoJHoseno5Ljk5KTwvbnVtYmVyUGF0dGVybj4KKyAgICAgIDxudW1iZXJQYXR0ZXJuIG5hbWU9InBlcmNlbnQiPnoseno5JTwvbnVtYmVyUGF0dGVybj4KKyAgICA8L251bWJlclBhdHRlcm5zPgorICAgIDxudW1iZXJTeW1ib2xzPgorICAgICAgPG51bWJlclN5bWJvbCBuYW1lPSJkZWNpbWFsIj4uPC9udW1iZXJTeW1ib2w+CisgICAgICA8bnVtYmVyU3ltYm9sIG5hbWU9Imdyb3VwaW5nIj4sPC9udW1iZXJTeW1ib2w+CisgICAgICA8bnVtYmVyU3ltYm9sIG5hbWU9InBlcmNlbnQiPiU8L251bWJlclN5bWJvbD4KKyAgICAgIDxudW1iZXJTeW1ib2wgbmFtZT0ibWludXMiPi08L251bWJlclN5bWJvbD4KKyAgICAgIDxudW1iZXJTeW1ib2wgbmFtZT0iemVybyI+MDwvbnVtYmVyU3ltYm9sPgorICAgIDwvbnVtYmVyU3ltYm9scz4KKyAgICA8Y3VycmVuY3lTeW1ib2xzPgorICAgICAgPGN1cnJlbmN5U3ltYm9sIG5hbWU9InN5bWJvbCI+JDwvY3VycmVuY3lTeW1ib2w+CisgICAgICA8Y3VycmVuY3lTeW1ib2wgbmFtZT0iaXNvbmFtZSI+VVNEPC9jdXJyZW5jeVN5bWJvbD4KKyAgICAgIDxjdXJyZW5jeVN5bWJvbCBuYW1lPSJkZWNpbWFsIj4uPC9jdXJyZW5jeVN5bWJvbD4KKyAgICA8L2N1cnJlbmN5U3ltYm9scz4KKyAgICA8dHlwZWZhY2VzPgorICAgICAgPHR5cGVmYWNlIG5hbWU9Ik15cmlhZCBQcm8iLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJNaW5pb24gUHJvIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQ291cmllciBTdGQiLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJBZG9iZSBQaSBTdGQiLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJBZG9iZSBIZWJyZXciLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJBZG9iZSBBcmFiaWMiLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJBZG9iZSBUaGFpIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iS296dWthIEdvdGhpYyBQcm8tVkkgTSIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IktvenVrYSBNaW5jaG8gUHJvLVZJIFIiLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJBZG9iZSBNaW5nIFN0ZCBMIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQWRvYmUgU29uZyBTdGQgTCIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IkFkb2JlIE15dW5nam8gU3RkIE0iLz4KKyAgICA8L3R5cGVmYWNlcz4KKyAgPC9sb2NhbGU+Cis8L2xvY2FsZVNldD4KK2VuZHN0cmVhbQorZW5kb2JqCis3IDAgb2JqIDw8CisgIC9MZW5ndGggMTEKKz4+CitzdHJlYW0KKzwveGRwOnhkcD4KK2VuZHN0cmVhbQorZW5kb2JqCis4IDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbOSAwIFJdCis+PgorZW5kb2JqCis5IDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgOCAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKz4+CitlbmRvYmoKK3hyZWYKKzAgMTAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAxOTkgMDAwMDAgbiAKKzAwMDAwMDAzNTggMDAwMDAgbiAKKzAwMDAwMDA1MzQgMDAwMDAgbiAKKzAwMDAwMDEyMjggMDAwMDAgbiAKKzAwMDAwMDE0NjkgMDAwMDAgbiAKKzAwMDAwMDQ5NzcgMDAwMDAgbiAKKzAwMDAwMDUwMzkgMDAwMDAgbiAKKzAwMDAwMDUxMDIgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgMTAKKz4+CitzdGFydHhyZWYKKzUxNzkKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTM4OF8yLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzg4XzIucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmZWUwODgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTM4OF8yLnBkZgpAQCAtMCwwICsxLDgwIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvVGV4dF0KKyAgICAvRm9udCA8PAorICAgICAgL1RUMiA1IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9MZW5ndGggNDAKKz4+CitzdHJlYW0KK0JUCisvVFQyIDEyIFRmCis0MCAxMDAgVGQKK1soWCAfIFgpXSBUSgorRVQKK2VuZHN0cmVhbQorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UcnVlVHlwZQorICAvQmFzZUZvbnQgL1RpbWVzTmV3Um9tYW5QU01UCisgIC9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCisgIC9GaXJzdENoYXIgMzEKKyAgL0ZvbnREZXNjcmlwdG9yIDYgMCBSCisgIC9MYXN0Q2hhciAyNTIKKz4+CitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCisgIC9Bc2NlbnQgODkxCisgIC9DYXBIZWlnaHQgNjU2CisgIC9EZXNjZW50IC0yMTYKKyAgL0ZsYWdzIDM0CisgIC9Gb250QkJveCBbLTU2OCAtMzA3IDIwMDAgMTAwN10KKyAgL0ZvbnRGYW1pbHkgKFRpbWVzIE5ldyBSb21hbikKKyAgL0ZvbnROYW1lIC9UaW1lc05ld1JvbWFuUFNNVAorICAvRm9udFN0cmV0Y2ggL05vcm1hbAorICAvRm9udFdlaWdodCA0MDAKKyAgL0l0YWxpY0FuZ2xlIDAKKyAgL01pc3NpbmdXaWR0aCA3NzgKKyAgL1N0ZW1WIDgyCisgIC9YSGVpZ2h0IC01NDYKKz4+CitlbmRvYmoKK3hyZWYKKzAgNworMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDA2OCAwMDAwMCBuIAorMDAwMDAwMDEzMSAwMDAwMCBuIAorMDAwMDAwMDMxMCAwMDAwMCBuIAorMDAwMDAwMDQwMSAwMDAwMCBuIAorMDAwMDAwMDU3MyAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSA3Cis+Pgorc3RhcnR4cmVmCis4ODAKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTM5NjI2NC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzk2MjY0LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiMWZjNWEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTM5NjI2NC5pbgpAQCAtMCwwICsxLDg2IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCAxMDAgMjAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgICUgQm90aCBpbWFnZXMgYXJlIEJHUkEuCisgICAgICAvSW1CbHVlIDUgMCBSCisgICAgICAvSW1SZWQgNiAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorMTAwIDAgMCAxMDAgMCAwIGNtCisvSW1CbHVlIERvCitRCitxCisxMDAgMCAwIDEwMCAwIDEwMCBjbQorL0ltUmVkIERvCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0pQWERlY29kZV0KKyAgL0hlaWdodCA2NAorICAvV2lkdGggNjQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMDAwMDAwMGM2YTUwMjAyMDBkMGE4NzBhMDAwMDAwMTQ2Njc0Nzk3MDZhNzAzMjIwMDAwMDAwMDA2YTcwMzIyMDAwMDAwMDRmNmE3MDMyCis2ODAwMDAwMDE2Njk2ODY0NzIwMDAwMDA0MDAwMDAwMDQwMDAwNDA3MDcwMDAwMDAwMDAwMGY2MzZmNmM3MjAxMDAwMDAwMDAwMDEwMDAKKzAwMDAyMjYzNjQ2NTY2MDAwNDAwMDAwMDAwMDAwMTAwMDEwMDAwMDAwMjAwMDIwMDAwMDAwMzAwMDMwMDAxMDAwMDAwMDAwMGMwNmE3MAorMzI2M2ZmNGZmZjUxMDAzMjAwMDAwMDAwMDA0MDAwMDAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwNDAwMDAwMDAwMDAwCiswMDAwMDAwMDA0MDcwMTAxMDcwMTAxMDcwMTAxMDcwMTAxZmY1MjAwMGMwMDAwMDAwMTAxMDUwNDA0MDAwMWZmNWMwMDEzNDA0MDQ4NDgKKzUwNDg0ODUwNDg0ODUwNDg0ODUwNDg0ODUwZmY2NDAwMjUwMDAxNDM3MjY1NjE3NDY1NjQyMDYyNzkyMDRmNzA2NTZlNGE1MDQ1NDcyMAorNzY2NTcyNzM2OTZmNmUyMDMyMmUzMzJlMzBmZjkwMDAwYTAwMDAwMDAwMDAzNjAwMDFmZjkzY2ZiNDEwMDg5MDhhNmZkZjgwMTgwMWNhCitiZjAwY2ZiNDBjMDFjYWJmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGZmZDkKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvSlBYRGVjb2RlXQorICAvSGVpZ2h0IDY0CisgIC9XaWR0aCA2NAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCiswMDAwMDAwYzZhNTAyMDIwMGQwYTg3MGEwMDAwMDAxNDY2NzQ3OTcwNmE3MDMyMjAwMDAwMDAwMDZhNzAzMjIwMDAwMDAwNGY2YTcwMzIKKzY4MDAwMDAwMTY2OTY4NjQ3MjAwMDAwMDQwMDAwMDAwNDAwMDA0MDcwNzAwMDAwMDAwMDAwZjYzNmY2YzcyMDEwMDAwMDAwMDAwMTAwMAorMDAwMDIyNjM2NDY1NjYwMDA0MDAwMDAwMDAwMDAxMDAwMTAwMDAwMDAyMDAwMjAwMDAwMDAzMDAwMzAwMDEwMDAwMDAwMDAwYzA2YTcwCiszMjYzZmY0ZmZmNTEwMDMyMDAwMDAwMDAwMDQwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDA0MDAwMDAwMDAwMDAKKzAwMDAwMDAwMDQwNzAxMDEwNzAxMDEwNzAxMDEwNzAxMDFmZjUyMDAwYzAwMDAwMDAxMDEwNTA0MDQwMDAxZmY1YzAwMTM0MDQwNDg0OAorNTA0ODQ4NTA0ODQ4NTA0ODQ4NTA0ODQ4NTBmZjY0MDAyNTAwMDE0MzcyNjU2MTc0NjU2NDIwNjI3OTIwNGY3MDY1NmU0YTUwNDU0NzIwCis3NjY1NzI3MzY5NmY2ZTIwMzIyZTMzMmUzMGZmOTAwMDBhMDAwMDAwMDAwMDM2MDAwMWZmOTNjZmI0MTAwODkwOGE2ZjAwZGY4MDE4MDEKK2NhYmZjZmI0MGMwMWNhYmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZmZkOQorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzk2MjY0LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xMzk2MjY0LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzJiZGRjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzEzOTYyNjQucGRmCkBAIC0wLDAgKzEsOTkgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgMTAwIDIwMF0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAlIEJvdGggaW1hZ2VzIGFyZSBCR1JBLgorICAgICAgL0ltQmx1ZSA1IDAgUgorICAgICAgL0ltUmVkIDYgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCA2OQorPj4KK3N0cmVhbQorcQorMTAwIDAgMCAxMDAgMCAwIGNtCisvSW1CbHVlIERvCitRCitxCisxMDAgMCAwIDEwMCAwIDEwMCBjbQorL0ltUmVkIERvCitRCitlbmRzdHJlYW0KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvSlBYRGVjb2RlXQorICAvSGVpZ2h0IDY0CisgIC9XaWR0aCA2NAorICAvTGVuZ3RoIDYxNAorPj4KK3N0cmVhbQorMDAwMDAwMGM2YTUwMjAyMDBkMGE4NzBhMDAwMDAwMTQ2Njc0Nzk3MDZhNzAzMjIwMDAwMDAwMDA2YTcwMzIyMDAwMDAwMDRmNmE3MDMyCis2ODAwMDAwMDE2Njk2ODY0NzIwMDAwMDA0MDAwMDAwMDQwMDAwNDA3MDcwMDAwMDAwMDAwMGY2MzZmNmM3MjAxMDAwMDAwMDAwMDEwMDAKKzAwMDAyMjYzNjQ2NTY2MDAwNDAwMDAwMDAwMDAwMTAwMDEwMDAwMDAwMjAwMDIwMDAwMDAwMzAwMDMwMDAxMDAwMDAwMDAwMGMwNmE3MAorMzI2M2ZmNGZmZjUxMDAzMjAwMDAwMDAwMDA0MDAwMDAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwNDAwMDAwMDAwMDAwCiswMDAwMDAwMDA0MDcwMTAxMDcwMTAxMDcwMTAxMDcwMTAxZmY1MjAwMGMwMDAwMDAwMTAxMDUwNDA0MDAwMWZmNWMwMDEzNDA0MDQ4NDgKKzUwNDg0ODUwNDg0ODUwNDg0ODUwNDg0ODUwZmY2NDAwMjUwMDAxNDM3MjY1NjE3NDY1NjQyMDYyNzkyMDRmNzA2NTZlNGE1MDQ1NDcyMAorNzY2NTcyNzM2OTZmNmUyMDMyMmUzMzJlMzBmZjkwMDAwYTAwMDAwMDAwMDAzNjAwMDFmZjkzY2ZiNDEwMDg5MDhhNmZkZjgwMTgwMWNhCitiZjAwY2ZiNDBjMDFjYWJmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGZmZDkKK2VuZHN0cmVhbQorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9KUFhEZWNvZGVdCisgIC9IZWlnaHQgNjQKKyAgL1dpZHRoIDY0CisgIC9MZW5ndGggNjE0Cis+Pgorc3RyZWFtCiswMDAwMDAwYzZhNTAyMDIwMGQwYTg3MGEwMDAwMDAxNDY2NzQ3OTcwNmE3MDMyMjAwMDAwMDAwMDZhNzAzMjIwMDAwMDAwNGY2YTcwMzIKKzY4MDAwMDAwMTY2OTY4NjQ3MjAwMDAwMDQwMDAwMDAwNDAwMDA0MDcwNzAwMDAwMDAwMDAwZjYzNmY2YzcyMDEwMDAwMDAwMDAwMTAwMAorMDAwMDIyNjM2NDY1NjYwMDA0MDAwMDAwMDAwMDAxMDAwMTAwMDAwMDAyMDAwMjAwMDAwMDAzMDAwMzAwMDEwMDAwMDAwMDAwYzA2YTcwCiszMjYzZmY0ZmZmNTEwMDMyMDAwMDAwMDAwMDQwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDA0MDAwMDAwMDAwMDAKKzAwMDAwMDAwMDQwNzAxMDEwNzAxMDEwNzAxMDEwNzAxMDFmZjUyMDAwYzAwMDAwMDAxMDEwNTA0MDQwMDAxZmY1YzAwMTM0MDQwNDg0OAorNTA0ODQ4NTA0ODQ4NTA0ODQ4NTA0ODQ4NTBmZjY0MDAyNTAwMDE0MzcyNjU2MTc0NjU2NDIwNjI3OTIwNGY3MDY1NmU0YTUwNDU0NzIwCis3NjY1NzI3MzY5NmY2ZTIwMzIyZTMzMmUzMGZmOTAwMDBhMDAwMDAwMDAwMDM2MDAwMWZmOTNjZmI0MTAwODkwOGE2ZjAwZGY4MDE4MDEKK2NhYmZjZmI0MGMwMWNhYmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZmZkOQorZW5kc3RyZWFtCitlbmRvYmoKK3hyZWYKKzAgNworMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDA2OCAwMDAwMCBuIAorMDAwMDAwMDEzMSAwMDAwMCBuIAorMDAwMDAwMDMzOSAwMDAwMCBuIAorMDAwMDAwMDQ1OSAwMDAwMCBuIAorMDAwMDAwMTI3MSAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSA3Cis+Pgorc3RhcnR4cmVmCisyMDgzCislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE0NjkuanAyIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE0NjkuanAyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NGEwMjkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTQ2OS5qcDIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1MDYuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTUwNi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2M0YzRkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1MDYuaW4KQEAgLTAsMCArMSw2MCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9OYW1lcyA8PAorICAgIC9EZXN0cyA3IDAgUgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCA0CisgIC9LaWRzIFsKKyAgICAzIDAgUgorICAgIDQgMCBSCisgIF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvUGFyZW50IDIgMCBSCisgIC9Db3VudCAyCisgIC9LaWRzIFsKKyAgICA1IDAgUgorICAgIDUgMCBSCisgIF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvUGFyZW50IDIgMCBSCisgIC9Db3VudCAyCisgIC9LaWRzIFsKKyAgICA1IDAgUgorICAgIDYgMCBSCisgIF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgMTAwIDIwMF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgMTAwIDMwMF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9OYW1lcyBbCisgICAgKEZpcnN0KSBbNiAwIFJdCisgIF0KKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTA2LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTA2LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Mzk1ZmUxCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1MDYucGRmCkBAIC0wLDAgKzEsNzQgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL05hbWVzIDw8CisgICAgL0Rlc3RzIDcgMCBSCisgID4+Cis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgNAorICAvS2lkcyBbCisgICAgMyAwIFIKKyAgICA0IDAgUgorICBdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvUGFyZW50IDIgMCBSCisgIC9Db3VudCAyCisgIC9LaWRzIFsKKyAgICA1IDAgUgorICAgIDUgMCBSCisgIF0KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvdW50IDIKKyAgL0tpZHMgWworICAgIDUgMCBSCisgICAgNiAwIFIKKyAgXQorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDEwMCAyMDBdCis+PgorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgMTAwIDMwMF0KKz4+CitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL05hbWVzIFsKKyAgICAoRmlyc3QpIFs2IDAgUl0KKyAgXQorPj4KK2VuZG9iagoreHJlZgorMCA4CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMTAyIDAwMDAwIG4gCiswMDAwMDAwMTgzIDAwMDAwIG4gCiswMDAwMDAwMjgwIDAwMDAwIG4gCiswMDAwMDAwMzc3IDAwMDAwIG4gCiswMDAwMDAwNDU0IDAwMDAwIG4gCiswMDAwMDAwNTMxIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDgKKz4+CitzdGFydHhyZWYKKzU4NworJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTQ5LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1NDkuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgyODVjYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTQ5LmluCkBAIC0wLDAgKzEsNjMgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgMTAwIDE1MF0KKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9SZXNvdXJjZXMgNSAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzIwIDAgMCAyMCAwIDEwMCBjbQorL0ltMSBEbworUQorQlQKKy9DczEgY3MKKzEgMCAwIDAgc2NuCiszMCAyMCA1MCA0MCByZSBmCitFVAorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9Db2xvclNwYWNlIDw8CisgICAgL0NzMSAvRGV2aWNlQ01ZSworICA+PgorICAvUHJvY1NldCBbL1BERiAvSW1hZ2VCXQorICAvWE9iamVjdCA8PAorICAgIC9JbTEgNiAwIFIKKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvV2lkdGggMQorICAvSGVpZ2h0IDEKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlR3JheQorICAvRmlsdGVyIC9BU0NJSUhleERlY29kZQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCiszMworZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTQ5LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTQ5LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDZiYTQzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1NDkucGRmCkBAIC0wLDAgKzEsNzYgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCAxMDAgMTUwXQorICAvQ29udGVudHMgNCAwIFIKKyAgL1Jlc291cmNlcyA1IDAgUgorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvTGVuZ3RoIDc0Cis+Pgorc3RyZWFtCitxCisyMCAwIDAgMjAgMCAxMDAgY20KKy9JbTEgRG8KK1EKK0JUCisvQ3MxIGNzCisxIDAgMCAwIHNjbgorMzAgMjAgNTAgNDAgcmUgZgorRVQKK2VuZHN0cmVhbQorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9Db2xvclNwYWNlIDw8CisgICAgL0NzMSAvRGV2aWNlQ01ZSworICA+PgorICAvUHJvY1NldCBbL1BERiAvSW1hZ2VCXQorICAvWE9iamVjdCA8PAorICAgIC9JbTEgNiAwIFIKKyAgPj4KKz4+CitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9XaWR0aCAxCisgIC9IZWlnaHQgMQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VHcmF5CisgIC9GaWx0ZXIgL0FTQ0lJSGV4RGVjb2RlCisgIC9MZW5ndGggMworPj4KK3N0cmVhbQorMzMKK2VuZHN0cmVhbQorZW5kb2JqCit4cmVmCiswIDcKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxMzEgMDAwMDAgbiAKKzAwMDAwMDAyNDUgMDAwMDAgbiAKKzAwMDAwMDAzNzAgMDAwMDAgbiAKKzAwMDAwMDA0OTQgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgNworPj4KK3N0YXJ0eHJlZgorNjc5CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1NTguaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTU1OC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzkwMzhjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1NTguaW4KQEAgLTAsMCArMSw1NCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFswIDAgMjAwIDIwMF0KKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA0IDAgUgorICAgID4+CisgID4+CisgIC9Db250ZW50cyA1IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvVGltZXMtUm9tYW4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzEyIDQwIDEwMCAzMCByZQorVworbgorMCBnCitCVAorMjAgMTAwIFRkCisvRjEgMTIgVGYKKyhDbGlwcGVkIFRleHQpIFRqCiswIC01MCBUZAorL0YxIDEyIFRmCisoVW5jbGlwcGVkIFRleHQpIFRqCitFVAorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTU4LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTU4LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmVlYzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1NTgucGRmCkBAIC0wLDAgKzEsNjYgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA0IDAgUgorICAgID4+CisgID4+CisgIC9Db250ZW50cyA1IDAgUgorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvTGVuZ3RoIDExMQorPj4KK3N0cmVhbQorcQorMTIgNDAgMTAwIDMwIHJlCitXCituCiswIGcKK0JUCisyMCAxMDAgVGQKKy9GMSAxMiBUZgorKENsaXBwZWQgVGV4dCkgVGoKKzAgLTUwIFRkCisvRjEgMTIgVGYKKyhVbmNsaXBwZWQgVGV4dCkgVGoKK0VUCitRCitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCA2CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTU3IDAwMDAwIG4gCiswMDAwMDAwMjgzIDAwMDAwIG4gCiswMDAwMDAwMzYxIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDYKKz4+CitzdGFydHhyZWYKKzUyNAorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTc0LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1NzQuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ3YTA4ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTc0LmluCkBAIC0wLDAgKzEsNjAgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgMjAwIDMwMF0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvRjEgNCAwIFIKKyAgICA+PgorICA+PgorICAvQ29udGVudHMgNSAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCiswIDAgNTAgNzUgcmUKK1cqIG4KKzEgMSAxIHJnCiswIDE1MCBtCisxMDAgMTUwIGwKKzEwMCAwIGwKKzAgMCBsCiswIDE1MCBsCitoCitmKgorcQorMCAwIDAgcmcKK0JUCisyMCA1MCBUZAorL0YxIDEyIFRmCisoVGV4dCkgVGoKK0VUCitRCitRCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1NzQucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1NzQucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmMjc0MTgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTU3NC5wZGYKQEAgLTAsMCArMSw3MiBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAzMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRm9udCA8PAorICAgICAgL0YxIDQgMCBSCisgICAgPj4KKyAgPj4KKyAgL0NvbnRlbnRzIDUgMCBSCis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuCis+PgorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9MZW5ndGggMTI0Cis+Pgorc3RyZWFtCitxCiswIDAgNTAgNzUgcmUKK1cqIG4KKzEgMSAxIHJnCiswIDE1MCBtCisxMDAgMTUwIGwKKzEwMCAwIGwKKzAgMCBsCiswIDE1MCBsCitoCitmKgorcQorMCAwIDAgcmcKK0JUCisyMCA1MCBUZAorL0YxIDEyIFRmCisoVGV4dCkgVGoKK0VUCitRCitRCitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCA2CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTMxIDAwMDAwIG4gCiswMDAwMDAwMjgzIDAwMDAwIG4gCiswMDAwMDAwMzYxIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDYKKz4+CitzdGFydHhyZWYKKzUzNworJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTkxLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1OTEuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYzMmUxMwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTkxLmluCkBAIC0wLDAgKzEsMTA2IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCAxNjAgNDAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL1RleHRdCisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCiswIDAgMCByZworQlQKKy9GMSAxIFRmCisyNDAgMCAwIDI0MCA1MCA1MCBUbQorMC4yIFR3CiswLjA1IDAgVGQKKygxKSBUagorMC4xIDAgVGQKKygyKSBUagorMC4wNSAwIFRkCisoMSkgVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUzCisgIC9DaGFyUHJvY3MgNiAwIFIKKyAgL0VuY29kaW5nIDcgMCBSCisgIC9GaXJzdENoYXIgNDkKKyAgL0ZvbnRCQm94IFstMSAtOCAyOCAyN10KKyAgL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdCisgIC9MYXN0Q2hhciA1MAorICAvTmFtZSAvRjEKKyAgL1Jlc291cmNlcyA8PAorICAgIC9Qcm9jU2V0IFsvUERGIC9JbWFnZUJdCisgID4+CisgIC9XaWR0aHMgWzggMTBdCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvdW5pRTAyMiA4IDAgUgorICAvdW5pRTAyMyA5IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL0VuY29kaW5nCisgIC9EaWZmZXJlbmNlcyBbNDkgL3VuaUUwMjIgL3VuaUUwMjNdCis+PgorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCis2IDAgMCA0OCA2IDAgY20KK0JJCisvVyA2CisvSCA0OAorL0JQQyAxCisvSU0gdHJ1ZQorSUQKK3h4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eAorRUkKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCitCSQorL1cgNAorL0ggNAorL0JQQyAxCisvSU0gdHJ1ZQorSUQKK3h4CitFSQorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTkxLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNTkxLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZWMwYTEzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE1OTEucGRmCkBAIC0wLDAgKzEsMTIyIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDE2MCA0MDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvVGV4dF0KKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAxMDIKKz4+CitzdHJlYW0KKzAgMCAwIHJnCitCVAorL0YxIDEgVGYKKzI0MCAwIDAgMjQwIDUwIDUwIFRtCiswLjIgVHcKKzAuMDUgMCBUZAorKDEpIFRqCiswLjEgMCBUZAorKDIpIFRqCiswLjA1IDAgVGQKKygxKSBUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMworICAvQ2hhclByb2NzIDYgMCBSCisgIC9FbmNvZGluZyA3IDAgUgorICAvRmlyc3RDaGFyIDQ5CisgIC9Gb250QkJveCBbLTEgLTggMjggMjddCisgIC9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXQorICAvTGFzdENoYXIgNTAKKyAgL05hbWUgL0YxCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvSW1hZ2VCXQorICA+PgorICAvV2lkdGhzIFs4IDEwXQorPj4KK2VuZG9iagorNiAwIG9iaiA8PAorICAvdW5pRTAyMiA4IDAgUgorICAvdW5pRTAyMyA5IDAgUgorPj4KK2VuZG9iagorNyAwIG9iaiA8PAorICAvVHlwZSAvRW5jb2RpbmcKKyAgL0RpZmZlcmVuY2VzIFs0OSAvdW5pRTAyMiAvdW5pRTAyM10KKz4+CitlbmRvYmoKKzggMCBvYmogPDwKKyAgL0xlbmd0aCAxMDUKKz4+CitzdHJlYW0KK3EKKzYgMCAwIDQ4IDYgMCBjbQorQkkKKy9XIDYKKy9IIDQ4CisvQlBDIDEKKy9JTSB0cnVlCitJRAoreHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4CitFSQorUQorZW5kc3RyZWFtCitlbmRvYmoKKzkgMCBvYmogPDwKKyAgL0xlbmd0aCA0MgorPj4KK3N0cmVhbQorcQorQkkKKy9XIDQKKy9IIDQKKy9CUEMgMQorL0lNIHRydWUKK0lECit4eAorRUkKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit4cmVmCiswIDEwCiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTMxIDAwMDAwIG4gCiswMDAwMDAwMzA5IDAwMDAwIG4gCiswMDAwMDAwNDYzIDAwMDAwIG4gCiswMDAwMDAwNzI0IDAwMDAwIG4gCiswMDAwMDAwNzc5IDAwMDAwIG4gCiswMDAwMDAwODU2IDAwMDAwIG4gCiswMDAwMDAxMDEzIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDEwCis+Pgorc3RhcnR4cmVmCisxMTA2CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE2NDYucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE2NDYucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3MjhjMWIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTY0Ni5wZGYKQEAgLTAsMCArMSw3NyBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkc1sgMyAwIFIgXQorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMSAwIFIKKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAxIDAgUgorICAvUmVzb3VyY2VzIDYgMCBSCisgIC9NZWRpYUJveFsgMCAwIDY0IDY0XQorICAvQ29udGVudHNbIDUgMCBSIF0KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9OYW1lIC9JMQorICAvV2lkdGggNTAwMAorICAvSGVpZ2h0IDUwMDAKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlQ01ZSworICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlIC9EQ1REZWNvZGVdCisgIC9EZWNvZGUgWzEuMCAwLjAgMS4wIDAuMCAxLjAgMC4wIDEuMCAwLjBdCisgIC9MZW5ndGggNzM0Cis+Pgorc3RyZWFtCis3ODljZWRjZDNkNGVjMjAwMTgwNmUwMGY2ODA1MjlkNDE2NWE2NDM2NzFmMTEyYzY5MDEwOTViMDk4MzhiMDE5ODM4OTliZDdlMDJjOWVjCisyYzE0M2Y4YjM3ODAyYWY1MGNiYTgxNzcwNzk5ZWVmOWRkZWJjYzlkN2JjMzU1ZjUxNWMyZmFmOTZkMWU5NzRlMmIyYmQ2OGJlMjNiZmQ4CiszZWRkM2ZjNDM2ZjY5YWNmNTg0NGFmZGJkZGE3OTViNDQ5MDc2OTlhMjRlOWIwZGYzZjE4OGM4NmEzNTEzNmNjYjI3MTNlMjljNjc5OTk2Cis3NTkzMTJiY2E2OTU1ZDdmNWU4ZTg3ODNlYWJlNjkzYWFhZTlhOTdhODA2ZDNkZDc0OTcyYzRlNjI1ZGM2YTY4YzU1MTljZDZiZDRlZGUzCitmOGVkYjBhZGFiZTI2ZjFiY2Q0N2U0YzkyMmQ2YjE4OTU1YzQ3OTNjZGY5ZGRlZGM5ZTNkZmU5ZDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmYzgzNWVmCiszZmUwM2NlMmUxZWJhCitlbmRzdHJlYW0KK2VuZG9iagorNSAwIG9iaiA8PAorL0xlbmd0aCAyOAorPj4KK3N0cmVhbQorcQorNjQgMCAwIDY0IDAgMCBjbQorL0kxIERvCitRCitlbmRzdHJlYW0KK2VuZG9iagorNiAwIG9iaiA8PAorICAvUHJvY1NldCBbL1BERiAvSW1hZ2VDXQorICAvWE9iamVjdDw8L0kxIDQgMCBSID4+Cis+PgorZW5kb2JqCit4cmVmCiswIDcKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNzkgMDAwMDAgbiAKKzAwMDAwMDAxMzIgMDAwMDAgbiAKKzAwMDAwMDAyNDcgMDAwMDAgbiAKKzAwMDAwMDEyNTMgMDAwMDAgbiAKKzAwMDAwMDEzMzAgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1NpemUgNworICAvUm9vdCAyIDAgUgorPj4KK3N0YXJ0eHJlZgorMTQwMgorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNzUyX3RydWV0eXBlX2ZvbnQuZnJhZ21lbnQgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTc1Ml90cnVldHlwZV9mb250LmZyYWdtZW50Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkYzhlYTcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfMTc1Ml90cnVldHlwZV9mb250LmZyYWdtZW50CkBAIC0wLDAgKzEsMTg0IEBACis3ODljZWQ1YjBiNzA1NGQ3NzlmZWNmN2RlY2FlOWViYjEyOTIxMDJjNDg3N2I5NjgxNzkwOTA4NDg0MzEKKzYwZDk1YWE0NWQyMTIxMWU0MmQyOTI1ZGYxYjA1NmRhOTViNGEwZDc2ODk3NTdjNjBmZTIzYzRjZDYzOAorNzZkMmM0NGQxYzlhMzgyZTc1ZTI4NDMxNTc5NDUyZDlhMTY5ZWEzYWIxZjMxYWE3NGUyNmY1YjQ2ZWVhCitmMWQ4NmRlMjAxYzc3NTFjOWEzYWIwZGJmZmZjZjdhYzkwNDBjNGM0MzM5ZDY5MWIxNmVlZmRiZmYzOWYKKzczZmVmZjNmZmY3N2NlYmRlN2RlMGJjMDAwYTAxMDRmMGE2ODJkMmRkZDViM2VmYzkzODc5ZTAwYjg2NQorMmQ2YTE3NmRmNGY5NWI2MDM5ZDQwMjJjZjgyOTk2ZGQxYjNiYjY3NWJkMTljYzZlMDdhODNmMDdjMGVlCitkYWQ4MTU2OGVhM2ZiN2UyMDJkNjVmYzJlMzViZGJiYTZhZWEwZTE1N2NlMWQ3NThmNzM1NmNkZmRiM2YKKzEyMWVjZjVkOWM4NTc1MTJkYTYwNGRmZDA3MTI1YWQ5Yjc5ZDU5MDA3OTNlMmM0YjAzZTM4MzIzNmI3MgorNGE3MjAxZTQwNDgwZjVjYzYwMzgzZTBlMjVhMGEzYWRlN2IwYmY2MzcwZjhmMGMwNmIyNTRmM2UwODkwCitkZjhiMDEyZTFiOGE4NjIzZDI2YjNmZjgwYmVjNWI4NWY1NmI4NjUwOTFmNzRiMzk4OWU1MDg5Njk3MGUKKzhkMjQwZTJkNWZhYmY0YTAzZjFiOTY5NzBkOGZmNTg3ZDVmNTBhYjZjZDZmYzU3MmM5NDhmOGQwYjhkNAorMGM3Zjg2ZWQ4ZjYyNTkxYjBkOGY0NDZiN2JiZTU4ODcwOWMwYjI1NTFhMWY4YjI3YzAwZWZmODJmZThmCis3MWZiZTMxM2QxZjE4MTMzNGZmZTNiNDBjZTMyYjRiOTEwNzhhZTU4ZjZlZDJiN2Y3YmZjYzc3N2RhMWIKKzdlMDNlNWRjMGRjMDhiMmJiZTE5MTI3MjI3NDBmYWJjZGFhM2ZlMDA4YjM2OTBjMGZjNjEzZmRiODM5NworMzEyN2VhM2ZmMmEyZGE0Mzk2NjZmZWIyNDk5MzBkNGI0MGE2YjIwNDBlOTgwZmJiYjBlYmY3YTA4ZjM0CitiMjNhOWYzZDBjMmFkOGQ0NDdkNTdhZDQ5NzliNTJmZTA3MTg5MGMwMjY0OTM5YWFhNGE4OGEyNDI5YWYKK2MyN2Q2OTJmMWM0YTYzMWYxN2VmYjg2NWRiZDY2ZGUwODUwZGIwZDE4Y2MxZjZhMDE0ZDQ4MDdkZjk1ZgorMzExNjY1OTM3YTk2NjcwMjcyYTRmM2UwMjNjNzVmYzdmODE2ZTM1MTBmY2ZhYmY5NzAzNzQ2ZmNiYzEyCitjN2MzODNlNTlmYzBkZDNjMTI3MTJjMTJhMzY4YzAxMmEzMzJjZTIxZTAzMzQ5YTFmMmM2MzQ4ZjYxNDMKKzNhOWQ3ZTM2MzM1ZTY2ODFlOWExMzM4OWM2MzlmYjc3NzU1ZWU2ZmFjOThhNmFiMWRhYjI2ZWEwZTVmZgorZDI5Zjc3ZTNjZTllNTAzMGQwZGRkNWI5YmQ2M2RiZDYyZDliZGIzN2I1YjU2ZTZjZjFmYjlhOWIzNjc4CisxYmVmYjhiZGUxYjZmNWViZDZkZWJhZTY5NjU1YjUzNWQ1MmJhYjk2NzlkYzE1NGJmNTI1YWVmMmQyYTIKKzAyODczZDNmMmYyNzNiY2I2NmI1YTg4YTJjMzFhOGQyMGNkNmViMzdlNDBhYWRhMDI1YWNmYmY1NzBlYgorY2EyYWNkNWYzYWU0NWI1OWU1ZDc1YjdhMGQyZGFjMTkyODE0YjdkZWRhNGEyYTNkNmM2OGJkOWFlMTQ2CisxMTllYTFlZTM1YmNkODcyZTBhYTk2NWViM2E1NzdiYTI1NzM2ODBkZDBjMDVkZTg5YWYxMjM5ZmFlNGQKK2IxOWVlZDQxYzQwZmZhZjQ5MDY2NWMyMGJjODViMGUyYTY0MjFlMTY1YzJlZWM0MTUxZjE2ODM1YmZkMQorNzI2MDI4ZTllZmM1MThkOTY0NGU3NmIzZGUxY2NkNWU1OTA1OTNkOTM5MDg3MzEwMTljYmY0ZjE0OWI2CitlYzBlNDY0MDVhZTY1ZjNmODkxMzNjOGZiYmM1OTFmYWMzMTFhMzYzN2JkMGVmNzNiYTVjYTE5NTU1NmQKKzQ2YmVlZWEzMmE2ODI2OTM4NmE1ZDliMDkyNDkyZGM2NDM4NzA3YjRjOWFhNmYyNzhmNGQzOWEwYWZiNworMzIzN2EyNDdjMmJiODI4NjFjYzZiZTQ5ZDk5ZjRjZGU2ZjE0NTQxYWNiNzU5ZmIxZmNjM2FmOTdlMmM4CithMzQ2OTVlZWYzMWI5NWRjNmE3YmU3YjQ5ZmY2MmIyZTk5YTE1NjM4NzQyZGY5MWJjMGUxZTgxN2NlY2YKK2Q2ODQ4NWM2NTJlMWY4MGQ3MDY4NDhjZDA2ZWIwY2JhZjhjZmQ5ODJiOTRlMjY1Yjc0YWQyNWQ5OWIwYworNGZhNThmZjRlOTlhNDM0ZjRlZTZlNjI2YzdmZDk4NmVlODA4YTI4OWE5ZjQzMzBmMzg4ZDk2NjMyMWMzCitkMTNiYzRkNjg3YzRkMDViM2FkYjhkNzlkYjc3MDYwZGE5YTI0NTFiMGFhMzA2ZmYzNmVhYWViNTRlNTcKK2MxNzQ5YjhlZWI1NTAzYTYwNTkzODMxOWQ2NzgxYTNiODI0OWNkOWY3Y2MwZTc3MmJhZmMzZWFjNzYxOQorNDdiNjA3Nzk3YTFlOThkMmEwY2Y3OTFhYmMzNTk1MjE0M2VhZTUzNWRmY2VkNDE0MDc3OGNkOTE0YzhkCithOWY0NjI2Mjc1ZTRiOGJkMmI5ODM0OTQ4YWI2ODhlZWM3Y2MzZjEwMzY4ZWY0ZTEyY2RiY2IwOWQyMWQKKzQ2ZmU0NWE3NGI0ZjE2MTY2OGViNmE0MmQ0OTY0N2QxMTY4OTY5ODZlYWM2NjQ2MWFmOTkxZDcwZmVmMAorMmU0OTA3MTVmMjJmOWFlMjgyMTMxZGI4MGIwYWI1NzUzYTlhZTE3NmZjYmFiZjU3ZmMzZDMwNTQ4YTA2CiszNDRjNzg2YmE1MzkyMWJhODM4NmQ3ODdjMDFiMTZjY2Y5Mjc2YjZiYjA0N2I4MTc4OThiZjk4ODU0YTMKKzQ2MWYzNzhhZjRhNjY5OTYyOTM5YjFhZTIwNzUxMWRkOGNhMjY2MDNlZjY2YTI5NzUxZTNhN2Y1ODVlOQorZWJmNTk5MjE3MDViZmFmNmUwZDM1MDlmN2U3NTcyYjVlNmZjY2I3YTU4MGQyMTFmNmY1Y2QyOGNiM2NkCitlZDRmMDYyMzAzNDY3OWFmMzM4MmViNmY0MDBiM2E1ZDg2Mzc4NDRjODdmNDYwMzRjNGE3MWY2NjY4ZjkKK2FiNGU5YTI0MjE5YTMzZGRjMWY2MmViZDdkN2I0ZjcwYWQwOGM0YWNlMGU2OTQwYWZmNTU2NmY0YTBkMworMzQ4MzEzZDFiMDU1ZDhiNGEwZTQ5NDQzZDhkMDgxMGFhZDA1ODFkZWQ0ODA2N2MzNWE2MWMzYzM4MTA5CisyNzJkOWZjMDRkMGQ1YTkwMzkyMWQzMWFjMzMwOTY2YmZlYTg0ZmI0ZTNlNTU5NDY1NTNlYWQ5YTViMzMKK2Q2MmNiYzg4NzY5YTViOWRhZTkwY2JmY2FkYWM5MmIwNWExMzhlYjE4NzhkMjdiNTM1NTM4NTk3MmJhYworYjBlMTNjNmQ2ZTI1MTVjZjY1Mjk5ZmZjNWE1MDhmZWEyMTdkNDgzM2JjMWQ0MTNlMzY5ZTFlY2FiMjQ4CiswNmU1NWM3MGQ1M2RhYjM0MjM1OTk4MjY3MDYxNzVhNmMwOTM2OWI0NTQzYTY3MjZkN2Q4NDg2NWJlNmMKKzBjYTk1YmM3Yzk4MmViZWEwODU2NzUxODhjMzdkODQ5MGJkNjg5NzMyOWU0OWNhZDQ3OTU2OWU5ZjdmNworNzUxYTZkZDc3NjZkMzM5ZGYyOWU0OTliZGVkZTk1ZTQzMWViMjI0ZWMwODQxNGUwZDFiNjE3NTNkMTg1Cis3M2I3NzdhZTBhOWNiMmRlYjBhOGQwOTI3YTViMjRhOTc3MDUxYjljOTQ4M2NlZTBkZGNlMGZmMzExMTYKKzQyM2I2YmVmNmU1YTU5MzUyOWIxYTY0OTlkMWRkZDNlZTk2NTQ3YmI3YTgyNzgyNTZkN2FkYTgxMzdmYworYTNkZGMxZDMxMjkzOWE3YjliNDI5MzRiYjEzZWY4YjQ4NmY3MjVkMjRhNWNjYjk1YmNhMGYxMDJiN2Q2Cis4OTA1MWJiNTc3M2VlZDA1Mzg0MmI1MGEyOWE4ZGMzZmM1ODA3NGI2OGM4ZTQxZmY5NDY0ZWExY2E2MjMKKzM3MzlmMmUyNGRiZjdmNGEzMTZiYmM5OWQ2MGFlYTZjYTZlZTA4ZTllODM3MDk5YzJjM2UwYWJlMGU0YgorODc5MDY0YmNhZGY4YjUwODlmMjA3Nzg1ODY5MmJkMjFiZWM4YTAwNGQzODM3Zjk5YzFmNDNiMzA1ZGZhCisxZDkzNGNiMmU0MWFkOTdhYjRjOWM4ZDE5YmI4YmU5MWViMWI0ZGJkODVlYmFkMzgzNTU5MDljM2VlYjMKK2I5YzNhNWE4MmRmYzllMzNlOWI4YzA1MzE5YzI4YjQ5ZDJmMWM2NGE2ZjNhY2I1NWFmMDU0MDYzYmZkMgorZDhjMzFhYmI1NzYzMWEyYjBiOTRkN2NiODFmMjMyNjYyZjZiMmMzYjU1MjZlZmVjZTgwOTM0ZjY2Y2ViCis5MTdhNTgzMDEwZWEwODA2NmE4M2RlMjA1ZTkxODNjYTg3M2E3NjA0YjQxZGVjZWQxZDZjMDdlYjBlMDQKKzNhYmEwM2UzZGRhY2JjOWJkNTc2N2JiYjhmNzRmZmI4ZmJkNTZlYjU3NjBiZGIyMjZkMGQ2YzhjYjQwNAorMWE1YjRlYjU0ODJkYWMzZGIwYTlhMzJkZDA4NjcyNWJjN2Q2NDBmZDU2YjYxNWUxZTY4ZWY2NDA3OTNiCitiM2I3MzdiNjlmNmE5N2JiM2EzYTAzYjc3NWIyNGVkNjExZDhkZWQxMTFiODc1MjliYjI3MWMyOTBmZGUKK2NkMGVjNmNiY2EwZmM0Mzc5NGVmOGZkNzk1MjdmMGY4ZDMzODliOGFiMzk3ZTM2YzQxN2Q2OWMwOGE1MQorNWJlNDc0Zjk0ODZjNDFmOTcwY2M1ZGJlMmY3NjdiZjlkZTU4NmJmOTU3NjNhY2M3Y2Q2Y2VlNTZiN2Q0CitlYTNlZWE3ZWMxMmRkZmFiM2ZhNGJmYThjYmYzZWEwYmJkMjMwMTk1YzkwMTg1MGY1ODY2NzZiOTUxM2UKKzI1Y2I5MWRkYWJjYjBmZjViM2JlZGQ3YTc5Nzg3NzdkNzllZmVlMTVlNTc3ZTJiMTA3ZjFkNGVlMTc3NgorNGIyZmVmZmVjNTZlNjk1MWM0MTkyOGE5MmYwZTM4ZWFlZDAxYmI3ZDliNWQyYWI3YmY2ODk3ZWNmNmI0Cis1ZGIyZTAyNjI2ODA5YmY3YzAxOGRjMGJhN2UwNTdhMDM4ODAxZDI5NjEyYTliNjIwZjRmNzY3NzU1NTYKK2I2NGY1OWQzNzhkZmNiZWFkODY5YjBhMzQ2NDUxNzNmN2JiN2Y3MTg5NmEzMDYwNDdhNzYwNjI3MTlmYgorNTRlOGUzMGYzZTA4NGQ4YmRiOGQzYTVjMzZiZDhiNDNlZDQ2ODRhZjFmMGU4ZTIwNzAyYzllMmM4MWE2Cis1MDNjNWU1OWI5Mjc5ZWQ4NWY1OTU5MTk0ZjU0ZjI1ZmRjMDRmMTc4MjI2MTJhNzhjZDdlNTE5M2E5OGUKKzliNjU2YTQ1M2RhZmQ0YTBhYWIyNzQwZjgwYTUwODcyYTAwMzc3ZDJmMzYxM2Y5ZDY3ZmQ5NDU2MjhlMgorMzI3ZDdlZjYzOTU1OTRiZTg4ZmJlY2IzMzBlZmQyNjdkMzE3NTJmN2E2ZjZhNmNlYTUzN2E1M2VmMGFlCitkMjdjMTY2MWY1YzA3N2M2MTcyMTFmMmRlN2E1Y2U1YzRhYTVkZjRkZjdhNmRmOTUyNWM4NjVmN2E3ZGYKKzkxYmQ5MDJmZGQ5MmZlMzVlZWYzZjNiMGRkZTdlMDIxYjgxZjc3ZjVjN2UxMDRiYzAxMGY0YzFiN2IxYworOWU4MDQ3YjFlZWEzYjA3NzVhZjcwNWY4MTJiNmZhMzQ3Y2ZjOGE0ZjU2MGM1ZjA0OWY1YTQwODUyYWZhCisxMzgxMWZiMjVjZDZjMjkyZWM1OTg5OGY1YmUyY2YxNTUyNDQwZGUwNTM4MjE1YWEyNzE5ZDQzNDljYjYKKzJhZjc1ZWE4OWJiNGE4YWYzNDljOTYyNTg0MzAyOTczYjVjYWQ1YTdhZDk2MjM5NzFhNGUzM2FlYWYyZgorNzAxNTU0YjgwYTVjM2U0OTRiMmQ2NTlmNGYwZGE5ODFmN2JlZTE1MzdlMDRlMmM5NDE3NWFhZTdkMDZhCisxZTU0Nzk0YjE0YWIyZDRmY2ViNzY3MmI2YTllMTQwYmU1ZTUyOWFhMGM0YTIxMzRkNjM3MTZhZWFiYTkKKzJjMjg4NDc1MDU4NTZjZmViYWJhNTViNTJlZDkyNWViYWMzZThiYzkxZThiNTU1Njc2MTk5N2NmM2RmNQorOGM3NGRiMTNkMmZhNTRjZjg5OTYzMmQ3MTNlYzNiYTlkYmQ0NzNlZmY5YTQyMWY2Y2Q3ZjNlZDQ5ZmYyCiswMzdmZTI3OTFlYjlmYzBlNjZkNTBlYTVmODY0ZDVlN2JkYzU2YWIzMTUzOTE2MmViNDJiNDUzOTY1NjUKKzQ1NzY3OTg5NmU1ZGUwNzAyY2Q4MTc3YWQ5YzFkNjNiOTg2Yzc3MzBiYmVhNzBkODAxNGFmNzg1NDBiNgorMmZkYzE3YjI2MzQwOTU1MGRhNDhmMTk0ZDZkY2I5NjdmNzlkYmI3NzVmMDlhZWEwZmVjYTlmNTViNWYzCis1YzlhNTI1YzY0YjExNjk3YjFlMjIyNDU3N2NkNzNkNWFkYjk2NWI1YmI5MjJkNjAyNmQyOWY2NzVmNjEKKzZlYTY3ZWVhZTg5MzVmNGViZGZiZjZlNWQ0MTRjYjNmNzlmYzFiNGZiZmMzM2NjNmQ3Y2Y5YzUxY2Y5ZQorZmFlNjdkNGYyZWM4NWU2YzdjZmFiOTU3ZTRkNmQxOGYxY2RhN2JmOTczOTdkZjNhOWFmY2U4ZGRmYzQ5CitlYmVlZjQ3OWU1NDU3YzUyOWQwZjZlNmY5MTZjMmZjZWIyY2JhNTBiZTY0MTJjMzQ0ZmM5YjVjNDQyYjkKK2YzYTY0M2E1Yzg1NmQ1YjIyNTUwZTA4MGZhYmE1YjhiZjM5OWFlNDFjMWVhYzJhNWY1NzVmM2FkNmU3OQorZGRmOWQ0M2JjY2YyY2VmMWJmZGY3ZDcyM2NmNTM3YTkzZmZmMmE2YjdjZjkxNzI3Mzc5ZDUyOTdhNzllCis0YmJkOTU3YTIzZjVhM2Y1OGYyZDU5YzAzZWM5ODY1ZTYzZGQ1MzNiOGU3NzEwN2ZjZmYzMjc2MWNjYTcKKzBkOWY3NTk3Nzk4YmYyMTVjODUyYjIwYTBhZDViYzdkMjE1NTU2ZjJmNzg1OTQyYmM5NjJlYmQ2OTkzOQorNjEwZTU4Y2UwYTVjMWFjODBlNzBlOTA1ZjU5YWRhOTNkYTlmN2EyODE1NjNjZmIyMDBiYmViZDlkNDg1CitkNDliNmYzZjJmNzU0YWJmNGMzZDkyZmE4ODdhMzZmNWM5ZDQwOTM2OWY5NWZmOGVjZjVhYzY3ZGNhYmYKKzQ1OWYzOTEwZjBhZWIyNjQ2NzMzMDUxNzBlOTM3M2YzMmM1OWIxZDBjYjE2YjZkZWMyYjIyY2NjMGU5NgorYzcyYzUyYTE2Y2IxMzA0OTUyNjMyMTQ5NjZkOWIxMTBiYjg2YmIzZGJiODliYzY5ZTI1NmQ1ZjJkODhhCis1ZGU2MjFmZmY2ZDI4YmYyYWFjYmY3NGJkZDk3NGY0YTg3ZDViMzhmYTdkNjNlNzZmOTIyY2M4YTIzMGIKKzVhYmM5NWZjYTE1OGMxMjhiMjczNzgxNDZkZThkZmQyNjhiOWQzMzI2Njc5YzhmMjY1OGIyNTA3YzM5MAorNThhMTE5ODcxOTAxNGU2OGY0M2VjMzM1Y2U2OTNkZTM5OGRkM2I0NTVlM2IyZjNmODUzZTJmYmZmNzE1CitjMWI1N2ExYjcyZWQ4NGRiYmQ1YWJlNTQ2NDkzMTYyYzcwZGFlNDQ1OGJjMTE5MGIyMTBmYjliOTA1YzgKK2I4YTJjZThmODVkNDc5YjM4NjM5N2I3Y2NjNTUzMDliN2I4ZTkxODliYTViNzFiYzRkZWNiZjEyNmY3ZgorMjk3NTNhZjU5OWIzZWM0M2JmN2NmM2ZiMmQ3ZjM3OTVmYTVkZWE5ZmQ4NDI5NmY3MjdjNzUyN2YyYjJiCis5N2ViMmJkY2VjMThlYjdmODNlZGY4YWIxZDhmNzVkM2U0Zjg3OWVhMjU5ZDlkZTY1OTI5NjNhM2QzY2YKK2ZmMzVkMDJiMzBjMzFjOWQxMDU4YzJiNWZlMmQ4MTY1NThjNDMyZWYwYjcwZTZiMDU1MDJhYjc4OWQwYgorMDg2YzQxNmUxMzAyNWJhMTUzZDIwNWI2NDFiMWY0YjhjMDU5NTAyNGJkMjY3MDM2NjhmMjNhODE3M2EwCis0Y2ZlYmNjMGI5ZTA1MzM2MDg5YzA3ZDVjYWViMDJlN2MzMGEzNWM2ZGY3ZTI4ZmM5YWJiODdhMmUyOTgKKzQxMjEzYzJjYjA4NGFkOWUxMjU4ODZiNWYwNWQ4MTE1Mjg2NDhiMDU1NmExOTRkZDI2YjAwNTFjYWM0ZgorNjAyYjljNjA3NzBiNmM4MzE1ZDIwMTgxYjM2MDk5MzQyNTcwMzY3OGE1ZmYxNDM4MDcxYWU0MWU4MTczCitlMWE4ZmNkNzAyZTdjMTJlZTUxMzAyZTc0MzM3MzJkYzBjNjMzMDBlODc2MTAyNjIzMDA4NDM5MDAwMGQKK2VhYTAxNjU2ZTE1OTgzOGQ1ODNiODZmYTYxODg2MmE5MGQ0NmExMWZhYTExNmQ0MGNkMzBjYWNlZTk1ZQorNzEyYTQ1NTE0NmQxZDYwMTNjNDdiMDI1MzQ4ZjhkMWY5ZTg4MGQwZTI1YjRiYWRhNTU3NWRhYzZiMWIxCitjMWUxYThkNjM2ZGE1ZmFkNmQxODFlZDYzYTc5NTU1Y2ViOGNjNmEzMTMwN2EyMTFlY2IwMTVmZDI1ZjAKK2QwYTAwYmMyZTgyZjhlYWFiMWM0OThkNjE1MWU0NWM4M2QwY2MyN2VmNDFkNDYyZmQwMTkxZGRjM2YxYworNDZiMDA1N2I4YzUyY2ZjMzM4MWEzM2Q2MTE2YzMzODhmMThkZTI1OTgzOTU3OGNjNjE3YmNiZDhlODU4CitlMmYwMzg4NjM0MTIxZThjOGQwZTZhMmJiNTE5ZWU3ZTdmMzAzYjY4YTg3MTc0YzE5ZDZiOThiMjZhNGMKK2RjNmFhYzg4NGVjNDYzNjNhM2RhYWFlYWRhZDU1NzhjY2MzMjcxYjVmZDE4MjUzMDhjNDcwMjZkODYzMQorNzk1MTFhYzAwNGVjNDNkZDE4MGNmYzFlMzJiOGQ5MDg0YWRlZmUzMGNhM2VhYTlmYTA1NDcxYmIwOThhCiszMzRhNmQ2MjE0NjkzZjY5MTJkOGRlMmNlZmM1OTQ0ZTUwZGIwODllZmJiMWM2MWM1MzljNTM0ODIzOGUKK2M1YjViMDk2OTgwODQ3YTIyM2UxODk3ZGRhZDhjMDJjMmFjM2EzMTE2ZDI0N2M1OGViOGI2YTEzZDFjMQorNTgzYzExOWQ4ODQ2YjRkOGE4ZDYxZjlkNDg4NDUxZWVkZDNmMTE4YjQ3NjJmZDA5NGM0YmJjZmE0NmY4CitjYTBjZWY1YTg2YjhjN2I5MmNmODY4ZjZmMWY5Mzg0YTY5OGNhMmJkOTExOWZkN2RkMTc4NmM3MDU0NGIKKzQ0YzNhODlkZDlkOGNjNGMxZmU1ZWU1YWIzOTFiOWNkOWFkNjcwOTQ3ZDg3YjU2OTE3OTE5OTJlZjhhYQorNDhhMDkxZjU3ODBkYWJjMWIxOGM5MWE5NmEzNDc0ODVjNjZhZDI4ZjYwZmQzODFlYTM2MjNhZDQ2MGU3Cis0NDYyN2M3ZDRkNGRmZjU4MjQ1YTNkNDg5OWFlZWUxZjFiYTkxOWFmNDE0ZjYzMzU1NzFiM2Y0ODdmYWEKK2QxZDBlY2U4NjNiMzkyN2FjNTU5MDdiMmNkYzNkOTRmNWNjNzcxNmE5YThiMzY0NjMzMjM4ZTJkYmE4NQorODVkOTc5OWFjMDk2NDNkOGYzMjBiNjBiZDM1MmNmMDQ3YWYwZTBjMWVhMTE5MTg2OTg0OTE0MDVkYzMxCiszMTE2ZDlkZjlmODg3N2UxZmE4ZWY1NDdlMzM1ZGRkODQwZTQ2ZWEyNmI2OGVjNjA3ZjM4OGU1NjM2MGIKK2Q3YTM2NDk0ZDNiMTlmMjYzNTc3Yzk5MzNlNDQ1NDZjYzA5MGMyZDhjZTJjY2RlZTUzODU5YWFiMTc2NAorMWQyZDQ4ZDg4YzhlNDdlMzQ4ZDVmZWQxNDg3NDQyNGIwYzQ1YjUwZGUzZTE3ZTE0YTJhNjRhY2JhY2Q4CitiYWVhZGFlYmU1MzYzY2MzNzkzNTNhOThjMDljZDQyMDg5MzM4M2UwOTlkYjhjNTNiNzE5ZmNiOGI2YmIKK2YwYmMzMjEzYzQ4YzNjODVjOTc5ZjVkOGM0NjBjZGIwMTk0MGJjNjY3MzViYjM3ZjZiOTc3ZjI1MDUzMAorZmQzNjNjM2Q4MDBiN2ZhZTVmMzZkZDBmMjU1ODBhMTVlMDA2MGYyYzgzZTViMDgyNzQzMmRlMWZiMmYxCitkYTZlNGRhNzcxN2ZjYWU4OWUwNTUwMDI2NWQ4OWFkN2YyN2I5MjIyM2MzMDgwZTk3YjJiYjc3OTA0NWUKKzA3YjVmZmYwMDQ1ZWQ5MjNkMTAzNzU1MDg1ZTczMGI0MGM0ZTQ0ZjdjMTllZTE3MDYyMTQyZjE0MGFjNQorOTUyNjViZDljMGI2NmNlOGQ0NzgzNGE4NTE0NTRjMGFhMmQ5MzVhNjNmMDVlZjY4MzM3YmNmYzRkNjcwCitkZjgxMzg1NGY1MGQxZjFjODBmNTc4OGU4M2I3YmY3ZjY0MWMzNjhmYzcxMzcxZTg5Y2Q4MzczMTAwYzEKKzAzZTFjNDdlYmFiN2FhZDQ1YmM1MTE1NzBhOWZmY2NlNWY4NWM5YWVlNjZiNjc3YTRjYjU3NDY2YTJjZAorMmE5YzRmYzM0OGVjNWRmMDMxMzgwNjlmYTUyNzlkOTM3MDA2Y2VjMTczZjA0M2Y4MjliYzgyYTMzZjBmCitlZmMyMjVhNmUwNzM0YjExNWJjNDk2YjIyYWI2OWEzNTMwMWZkYmNjYmFkOTJlMTY2MWMzMmNjMWVlNjIKKzFmYzNhZGNiNjdkOTcxNzY4MjlkNjQ2N2Q4MzlmNjFjZmIyMWZiMjk3Yjg1YmQ4ZTIzNDQ1ZmVjYTg5OQorMGJmNjg4Mjg3ZjVlOTRiZjJmZTRiZjk5NTI5MjRjNjlmOThjMjlhZDZiODVmY2I5Mjk2ZDFmMTNmMjY3CithNmNjOGEwOGY5OGUyOWIzOGY5ODMyMjc1ZmM4ZTNhNmNjNWQyMWU0Yjg5MGMyNWZkZTJlMjE1ZjMyNjUKKzdlYWI5MGRmMzJhNTdkYjU5MDVmMzdhNTQzMTNmMjExMjFkZjM1NjU0MWE3OTA4NjkwMTc0ZDU5ZDgyMAorZTQ3ZDQyYmU2MGNhNzkyMmJlNzlkZDQyM2UyYWU0YWJhNjJjNzIwYjM5MmNhNGE4MmYxMmZkOGI1NzliCis3OTJjMTZmNWM1OGYwOTk5MzI2NTQ5OWQ5MDhmOWJlZDRhNGVkMDU3Mjk4NmFiODBlZmJmYWVjYzczNjYKK2Q2ODNmOTU1YWQwODE2ZTFmYWUxNzNhNzZhNDY4YmI5MGU0NWNjMjNiMzY3M2VkYWU0ZjYxN2NlZDFjZQorZmM5MmY1ZmU2ZDc4YWIyMGVjYzI3NTBiMTA5OTczODU3ZmQwZGY0YzZmYWRmMDE5OWNlNTRmYzA2OWRjCisyYjdmMWY3ZTA2YWZjMTViZjAxZWIzYjA0MjU2YzY1NmIwMzVhYzg5NmQ2NTNkNmM4MDRkYjA3YmYwMjkKK2ZkMTFmNjM4N2I4YTNkYzNiZWNiNWU2MjNmNjc2ZmIyOGI5MjI0ZTU0YjBiMjViNzU0MjdkZDIxNmQ5MgorODJkMjgwOTQ5MGVlOTMxZTk2YmUyNDlkOTQ5ZTkxNWU5MDdlMjZiZDJlYmQyMzgzOWMyZjJmOTI1N2M4Cis2YmU1MTZiOTViZWU5M2M3ZTU3YmU0NjNmMmEzZjJkN2U0YjNmMjczZjI0YmYyYWJmMjViZjIyNTI1NWIKKzI5NTVkYzc0MGRlMmUzNWYyZWFlNDYxY2M5OTQxNThlMmQ4NDU1YzI1NmMyMTZjMjM2YzI1NmMyNTk4NAorNmQ4NGIzMDk2NzExY2UyMTljNGQzODk3NzAwZWUxM2NjMmI5ODRmMzA5ZTcxMWI2MTNjZTI3ZWMyMDZjCisyNzVjNDBkODQxYjg5MDcwMDFlMTc5ODQ0ZDU2OGIwOGNmMjM1YzRjYjg4ODcwMDllMTYyYzJmMzA5OTcKKzEwMmUyNTNjOWZmMDAyYzJhNTYyNzY3MGJjODBiMDkzZjA0MmYxM2Q5NTYzMjc2MTdhMzIyMDBkM2UxNworMTE1ZTRjYjg5YzcwMTk2MThkNzAzOTYxMTc2MThkZjAxMmMyMmVjMjNhNjFmM2FiZjI1MmMyM2FlMTBhCitjMjRiMDliYjA5NTcxMGY2MTA3NjEzNWU0NmRmNzExNWQyMDE1ZGM1Mzk0YjFlYzE5MzQyM2M3OTA0NTMKKzBhMzFlNTExNWMyOWM0OTU0N2IwYTUxMDViMWVjMTk3NDI3Yzc5MDQ2MzBhMzFlNjExOWMyOWM0OTk0NworYjBhNjEwNmIxZWMxOWI0MmJjNzkwNDczMGEzMWU3MTFkYzI5YzQ5ZDQ3YjBhNzEwN2IxZWMxOWY0MmZjCis3OTA0ODMwYTMxZTgxMTFjMmFjNGExNDdiMGE4MTA4YjFlYzFhMzQyM2M3YTA0OTMwYTMxZTkxMTVjMmEKK2M0YTU0N2IwYTkxMDliMWVjMWE3NDI3YzdhMDRhMzBhMzFlYTExOWMyYWM0YTk0N2IwYWExMGFiMWVjMQorYWI0MmJjN2EwNGIzMGEzMWViMTFkYzJhYzRhZDQ3YjBhYjEwYmIxZWMxYWY0MmZjN2EwNGMzMGEzMWVjCisxMTFjMmJjNGIxNDdiMGFjMTBjYjFlYzFiMzQyM2M3YjA0ZDMxMmM2NDVmNzZkYmEzNjVkZmZkYTkyOGIKKzYzNWI4Mjc3ZTAzYWRjMjYzNWMxMjZkYzMwZWVjMWFkZDEwNGRlNWRiOTFkMDljZmE2NTQ4NDU0ODViNAorMDg2OTE1ZDIyNjc2MDc1OTYyNDcyMGQxYWNjOTIwNzUxYTU5YTY5MTc1MWFkOTZlNDZmYjNmMWFlZDQyCis5Yzg3NTkzNDYzYWUxZmFiOGFkMTlhNzdkMmFhMWI4ZWVlYzYyYzY3ZDNhZWQ1OGQ3YmJhMzU3MDA3ZGUKK2NiM2FmMTdlMzk3MGMzM2UxNDkxMDE3OTFhMjlkMzQ4OWQ0Njk2Njk3NDMzYWE5YjUxZmQ3MTQ1NTU4YQorYWI5NjdmMmE1YTdhZGQ5ODE0OGNhYTkwYWU0NWVmMTdjNzhkNThiMzA5NWJmY2JhZDYwMDJkZDBmMWJlCis1NjE1Yzg1Y2NkMzI0ODk5NDZlYTM0YmFlOWZkYTZmNzliZGVmZmI4YmM5N2EwNjUyYmYwM2RmMGRjYmUKKzJkZjg4NDYwNWU0ZjZiNzEwZjc1M2RiZjBhNjRhZWEyY2E3NDA0MTlhNGZlM2ZmMzUyODQ4Y2YxYjcxZgorZGE5YzNlMzI1N2ZhYTVkN2Q4NTdhNjM5NTJhNjNkZGRiNDc2ZDNkYWZmNjU2Yjg1Yjg5ZWY4MWJjM2IyCiszOTZjNDliNGRlMzI3NjMyNmZhZWU1MGZkY2FiMGNkNzc1MGU5NjU3YzBiNWJmOTkxNmIyNzA4YzBiNzEKKzdjNmU3YzhlYWE4M2I1YjgwN2Y0NDFlNjZkMjI5MDI1MDBmM2RkYTE0YTY3MGI5ZGFkNzQzNmZmN2Y0MQorMTY5ZGIzZGYzNzViMzJmZDNiOGJkMmViNWU0OWZlZDA3N2EzM2M0MmYzZGQyOGNjYmEyZmFjYzE1ZDZjCitjZjc1NzI5NTdiZDU0OGRlNWY5Mzc5NDc2ODI1Y2QxNTJlOTY2MWI2ZTY3ZWM3YWFjYzg5NjZlZWM2NmIKK2U5ZDk3YTc0OGUxODMzZWQyZDk0YWQ3Y2NjYzdiNTM5ZmY0M2RhNzBmNDQxZGUzZGNiNzQxNzVkMDQ2YworM2FjMzhjYjI2ZDIyNTlhMGNjMTNjNDAwZGMzN2M3Zjc5YmI1ZjRmZGM2NDdkZjZmM2FlMGNhNTcxNzM2CiswM2MzNzUzMDliODVhNTQ4MmM5ZTgwZmM3ZGQxODk1MWNjM2Y0MGU2NmRlZWNjNTkyNWQxNTg0YjY5MGUKKzMwNjgxMmYyM2U2MGY0NGU4YWYzNTk4NGY5ZTcwN2ZmMjJhNWE2Y2Y0MzE2MWUzODE2M2E2N2JlZWM1OAorNjg0ZWRmNzg5ZWY4N2M3MWNjYzhkMmVjMzk3OWUzNzZmODk1ODRjN2I2NjJjZThjOWI2YjNiYTM1NTY3Cis2NTFmNWViOWE3ZjQzZmI4OWNmOTdmODBmZTFiNTU1MGVjYTYKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNzY4LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE3NjguaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2YwNmY3ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNzY4LmluCkBAIC0wLDAgKzEsMzE3IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL01hcmtJbmZvIDw8CisgICAgL01hcmtlZCB0cnVlCisgID4+CisgIC9TdHJ1Y3RUcmVlUm9vdCA2IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvVGV4dF0KKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EgL1AgPDwgL01DSUQgMCA+PiBCREMgUQorcQorMCAwIDYxMiA3OTIgcmUgVyBuCitCVCA4IDAgMCA4IDcyIDcxMi43NSBUbSAvRjEgMSBUZiAoQUFBKSBUaiBFVCBFTUMKKy9QIDw8IC9NQ0lEIDEgPj4gQkRDIEJUIDggMCAwIDggNTMyLjggNzEyLjc1IFRtIC9GMSAxIFRmICgxMTEpIFRqIEVUIEVNQworCiswLjI4MzUgdyAyIEoKKzcyIDY1OS4wMyAzMzIuNjQgMjQuNTYgcmUgUworNzIgNjIyLjk4IDMzMi42NCAzNi4wNiByZSBTCis0MDQuNjQgNjIyLjk4IDg1LjY4IDM2LjA2IHJlIFMKKzQwNC42NCA2NTkuMDMgODUuNjggMjQuNTYgcmUgUworNDkwLjMyIDYyMi45OCA4NS42OCAzNi4wNiByZSBTCis0OTAuMzIgNjU5LjAzIDg1LjY4IDI0LjU2IHJlIFMKKworL1AgPDwgL01DSUQgMiA+PiBCREMgQlQgMTAgMCAwIDEwIDI1Ny4zNyA2NjcuODQgVG0gL0YxIDEgVGYgKDIpIFRqIEVUIEVNQworL1AgPDwgL01DSUQgMyA+PiBCREMgQlQgMTAgMCAwIDEwIDQyOC43MyA2NjcuODQgVG0gL0YxIDEgVGYgKDMpIFRqIEVUIEVNQworL1AgPDwgL01DSUQgNCA+PiBCREMgQlQgMTAgMCAwIDEwIDUxNC40MSA2NjcuODQgVG0gL0YxIDEgVGYgKDQpIFRqIEVUIEVNQworL1AgPDwgL01DSUQgNSA+PiBCREMgQlQgMTAgMCAwIDEwIDI1OS44NyA2MzcuNTQgVG0gL0YxIDEgVGYgKEJCKSBUaiBFVCBFTUMKKy9QIDw8IC9NQ0lEIDYgPj4gQkRDIEJUIDEwIDAgMCAxMCA0MzEuMjMgNjM3LjU0IFRtIC9GMSAxIFRmIChDQykgVGogRVQgRU1DCisvUCA8PCAvTUNJRCA3ID4+IEJEQyBCVCAxMCAwIDAgMTAgNTI4LjE2IDYzNy41NCBUbSAvRjEgMSBUZiAoREQpIFRqIEVUIEVNQworUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvU3RydWN0VHJlZVJvb3QKKyAgL0sgNyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9Eb2N1bWVudAorICAvUCA2IDAgUgorICAvSyBbOCAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvRG9jdW1lbnQKKyAgL1AgNyAwIFIKKyAgL0sgWzkgMCBSIDEwIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDkgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UYWJsZQorICAvUCA4IDAgUgorICAvSyBbMTEgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMTAgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UYWJsZQorICAvUCA4IDAgUgorICAvSyBbMjEgMCBSIDIyIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDExIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVFIKKyAgL1AgOSAwIFIKKyAgL0sgWzEyIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEyIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVEQKKyAgL1AgMTEgMCBSCisgIC9LIFsxMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAxMyAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RhYmxlCisgIC9QIDEyIDAgUgorICAvSyBbMTQgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMTQgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UUgorICAvUCAxMyAwIFIKKyAgL0sgWzE1IDAgUiAxNiAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAxNSAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RECisgIC9QIDE0IDAgUgorICAvSyBbMTcgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMTYgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9URAorICAvUCAxNCAwIFIKKyAgL0sgWzE5IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDE3IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAxNSAwIFIKKyAgL0sgWzE4IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDE4IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvU3BhbgorICAvUGcgMyAwIFIKKyAgL1AgMTcgMCBSCisgIC9LIDAKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDE5IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAxNiAwIFIKKyAgL0sgWzIwIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIwIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvU3BhbgorICAvUGcgMyAwIFIKKyAgL1AgMTkgMCBSCisgIC9LIDEKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIxIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVFIKKyAgL1AgMTAgMCBSCisgIC9LIFsyMyAwIFIgMjQgMCBSIDI1IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIyIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVFIKKyAgL1AgMTAgMCBSCisgIC9LIFszMiAwIFIgMzMgMCBSIDM0IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIzIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVEQKKyAgL1AgMjEgMCBSCisgIC9LIFsyNiAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAyNCAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RECisgIC9QIDIxIDAgUgorICAvSyBbMjggMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMjUgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9URAorICAvUCAyMSAwIFIKKyAgL0sgWzMwIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDI2IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAyMyAwIFIKKyAgL0sgWzI3IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDI3IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvU3BhbgorICAvUGcgMyAwIFIKKyAgL1AgMjYgMCBSCisgIC9LIDIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDI4IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAyNCAwIFIKKyAgL0sgWzI5IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDI5IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvU3BhbgorICAvUGcgMyAwIFIKKyAgL1AgMjggMCBSCisgIC9LIDMKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMwIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAyNSAwIFIKKyAgL0sgWzMxIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMxIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvU3BhbgorICAvUGcgMyAwIFIKKyAgL1AgMzAgMCBSCisgIC9LIDQKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMyIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVEQKKyAgL1AgMjIgMCBSCisgIC9LIFszNSAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzMyAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RECisgIC9QIDIyIDAgUgorICAvSyBbMzcgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMzQgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9URAorICAvUCAyMiAwIFIKKyAgL0sgWzM5IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDM1IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAzMiAwIFIKKyAgL0sgWzM2IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDM2IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvU3BhbgorICAvUGcgMyAwIFIKKyAgL1AgMzUgMCBSCisgIC9LIDUKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDM3IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAzMyAwIFIKKyAgL0sgWzM4IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDM4IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvU3BhbgorICAvUGcgMyAwIFIKKyAgL1AgMzcgMCBSCisgIC9LIDYKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDM5IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAzNCAwIFIKKyAgL0sgWzQwIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQwIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvU3BhbgorICAvUGcgMyAwIFIKKyAgL1AgMzkgMCBSCisgIC9LIDcKKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNzY4LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNzY4LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmIxNjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE3NjgucGRmCkBAIC0wLDAgKzEsMzY0IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9NYXJrSW5mbyA8PAorICAgIC9NYXJrZWQgdHJ1ZQorICA+PgorICAvU3RydWN0VHJlZVJvb3QgNiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9Qcm9jU2V0IFsvUERGIC9UZXh0XQorICAgIC9Gb250IDw8CisgICAgICAvRjEgNSAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvTGVuZ3RoIDgxMgorPj4KK3N0cmVhbQorcSAvUCA8PCAvTUNJRCAwID4+IEJEQyBRCitxCiswIDAgNjEyIDc5MiByZSBXIG4KK0JUIDggMCAwIDggNzIgNzEyLjc1IFRtIC9GMSAxIFRmIChBQUEpIFRqIEVUIEVNQworL1AgPDwgL01DSUQgMSA+PiBCREMgQlQgOCAwIDAgOCA1MzIuOCA3MTIuNzUgVG0gL0YxIDEgVGYgKDExMSkgVGogRVQgRU1DCisKKzAuMjgzNSB3IDIgSgorNzIgNjU5LjAzIDMzMi42NCAyNC41NiByZSBTCis3MiA2MjIuOTggMzMyLjY0IDM2LjA2IHJlIFMKKzQwNC42NCA2MjIuOTggODUuNjggMzYuMDYgcmUgUworNDA0LjY0IDY1OS4wMyA4NS42OCAyNC41NiByZSBTCis0OTAuMzIgNjIyLjk4IDg1LjY4IDM2LjA2IHJlIFMKKzQ5MC4zMiA2NTkuMDMgODUuNjggMjQuNTYgcmUgUworCisvUCA8PCAvTUNJRCAyID4+IEJEQyBCVCAxMCAwIDAgMTAgMjU3LjM3IDY2Ny44NCBUbSAvRjEgMSBUZiAoMikgVGogRVQgRU1DCisvUCA8PCAvTUNJRCAzID4+IEJEQyBCVCAxMCAwIDAgMTAgNDI4LjczIDY2Ny44NCBUbSAvRjEgMSBUZiAoMykgVGogRVQgRU1DCisvUCA8PCAvTUNJRCA0ID4+IEJEQyBCVCAxMCAwIDAgMTAgNTE0LjQxIDY2Ny44NCBUbSAvRjEgMSBUZiAoNCkgVGogRVQgRU1DCisvUCA8PCAvTUNJRCA1ID4+IEJEQyBCVCAxMCAwIDAgMTAgMjU5Ljg3IDYzNy41NCBUbSAvRjEgMSBUZiAoQkIpIFRqIEVUIEVNQworL1AgPDwgL01DSUQgNiA+PiBCREMgQlQgMTAgMCAwIDEwIDQzMS4yMyA2MzcuNTQgVG0gL0YxIDEgVGYgKENDKSBUaiBFVCBFTUMKKy9QIDw8IC9NQ0lEIDcgPj4gQkRDIEJUIDEwIDAgMCAxMCA1MjguMTYgNjM3LjU0IFRtIC9GMSAxIFRmIChERCkgVGogRVQgRU1DCitRCitlbmRzdHJlYW0KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgorPj4KK2VuZG9iagorNiAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0VHJlZVJvb3QKKyAgL0sgNyAwIFIKKz4+CitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL0RvY3VtZW50CisgIC9QIDYgMCBSCisgIC9LIFs4IDAgUl0KKz4+CitlbmRvYmoKKzggMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL0RvY3VtZW50CisgIC9QIDcgMCBSCisgIC9LIFs5IDAgUiAxMCAwIFJdCis+PgorZW5kb2JqCis5IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UYWJsZQorICAvUCA4IDAgUgorICAvSyBbMTEgMCBSXQorPj4KK2VuZG9iagorMTAgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RhYmxlCisgIC9QIDggMCBSCisgIC9LIFsyMSAwIFIgMjIgMCBSXQorPj4KK2VuZG9iagorMTEgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RSCisgIC9QIDkgMCBSCisgIC9LIFsxMiAwIFJdCis+PgorZW5kb2JqCisxMiAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVEQKKyAgL1AgMTEgMCBSCisgIC9LIFsxMyAwIFJdCis+PgorZW5kb2JqCisxMyAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVGFibGUKKyAgL1AgMTIgMCBSCisgIC9LIFsxNCAwIFJdCis+PgorZW5kb2JqCisxNCAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVFIKKyAgL1AgMTMgMCBSCisgIC9LIFsxNSAwIFIgMTYgMCBSXQorPj4KK2VuZG9iagorMTUgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RECisgIC9QIDE0IDAgUgorICAvSyBbMTcgMCBSXQorPj4KK2VuZG9iagorMTYgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RECisgIC9QIDE0IDAgUgorICAvSyBbMTkgMCBSXQorPj4KK2VuZG9iagorMTcgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1AKKyAgL1AgMTUgMCBSCisgIC9LIFsxOCAwIFJdCis+PgorZW5kb2JqCisxOCAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvU3BhbgorICAvUGcgMyAwIFIKKyAgL1AgMTcgMCBSCisgIC9LIDAKKz4+CitlbmRvYmoKKzE5IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QCisgIC9QIDE2IDAgUgorICAvSyBbMjAgMCBSXQorPj4KK2VuZG9iagorMjAgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1NwYW4KKyAgL1BnIDMgMCBSCisgIC9QIDE5IDAgUgorICAvSyAxCis+PgorZW5kb2JqCisyMSAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVFIKKyAgL1AgMTAgMCBSCisgIC9LIFsyMyAwIFIgMjQgMCBSIDI1IDAgUl0KKz4+CitlbmRvYmoKKzIyIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UUgorICAvUCAxMCAwIFIKKyAgL0sgWzMyIDAgUiAzMyAwIFIgMzQgMCBSXQorPj4KK2VuZG9iagorMjMgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RECisgIC9QIDIxIDAgUgorICAvSyBbMjYgMCBSXQorPj4KK2VuZG9iagorMjQgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RECisgIC9QIDIxIDAgUgorICAvSyBbMjggMCBSXQorPj4KK2VuZG9iagorMjUgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RECisgIC9QIDIxIDAgUgorICAvSyBbMzAgMCBSXQorPj4KK2VuZG9iagorMjYgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1AKKyAgL1AgMjMgMCBSCisgIC9LIFsyNyAwIFJdCis+PgorZW5kb2JqCisyNyAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvU3BhbgorICAvUGcgMyAwIFIKKyAgL1AgMjYgMCBSCisgIC9LIDIKKz4+CitlbmRvYmoKKzI4IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QCisgIC9QIDI0IDAgUgorICAvSyBbMjkgMCBSXQorPj4KK2VuZG9iagorMjkgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1NwYW4KKyAgL1BnIDMgMCBSCisgIC9QIDI4IDAgUgorICAvSyAzCis+PgorZW5kb2JqCiszMCAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAyNSAwIFIKKyAgL0sgWzMxIDAgUl0KKz4+CitlbmRvYmoKKzMxIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9TcGFuCisgIC9QZyAzIDAgUgorICAvUCAzMCAwIFIKKyAgL0sgNAorPj4KK2VuZG9iagorMzIgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RECisgIC9QIDIyIDAgUgorICAvSyBbMzUgMCBSXQorPj4KK2VuZG9iagorMzMgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RECisgIC9QIDIyIDAgUgorICAvSyBbMzcgMCBSXQorPj4KK2VuZG9iagorMzQgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RECisgIC9QIDIyIDAgUgorICAvSyBbMzkgMCBSXQorPj4KK2VuZG9iagorMzUgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1AKKyAgL1AgMzIgMCBSCisgIC9LIFszNiAwIFJdCis+PgorZW5kb2JqCiszNiAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvU3BhbgorICAvUGcgMyAwIFIKKyAgL1AgMzUgMCBSCisgIC9LIDUKKz4+CitlbmRvYmoKKzM3IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QCisgIC9QIDMzIDAgUgorICAvSyBbMzggMCBSXQorPj4KK2VuZG9iagorMzggMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1NwYW4KKyAgL1BnIDMgMCBSCisgIC9QIDM3IDAgUgorICAvSyA2Cis+PgorZW5kb2JqCiszOSAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAzNCAwIFIKKyAgL0sgWzQwIDAgUl0KKz4+CitlbmRvYmoKKzQwIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9TcGFuCisgIC9QZyAzIDAgUgorICAvUCAzOSAwIFIKKyAgL0sgNworPj4KK2VuZG9iagoreHJlZgorMCA0MQorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDEyOSAwMDAwMCBuIAorMDAwMDAwMDIxOCAwMDAwMCBuIAorMDAwMDAwMDM3MCAwMDAwMCBuIAorMDAwMDAwMTIzNCAwMDAwMCBuIAorMDAwMDAwMTMxMiAwMDAwMCBuIAorMDAwMDAwMTM2OCAwMDAwMCBuIAorMDAwMDAwMTQ0OCAwMDAwMCBuIAorMDAwMDAwMTUzNSAwMDAwMCBuIAorMDAwMDAwMTYxMyAwMDAwMCBuIAorMDAwMDAwMTY5OSAwMDAwMCBuIAorMDAwMDAwMTc3NSAwMDAwMCBuIAorMDAwMDAwMTg1MiAwMDAwMCBuIAorMDAwMDAwMTkzMiAwMDAwMCBuIAorMDAwMDAwMjAxNiAwMDAwMCBuIAorMDAwMDAwMjA5MyAwMDAwMCBuIAorMDAwMDAwMjE3MCAwMDAwMCBuIAorMDAwMDAwMjI0NiAwMDAwMCBuIAorMDAwMDAwMjMzMCAwMDAwMCBuIAorMDAwMDAwMjQwNiAwMDAwMCBuIAorMDAwMDAwMjQ5MCAwMDAwMCBuIAorMDAwMDAwMjU4MSAwMDAwMCBuIAorMDAwMDAwMjY3MiAwMDAwMCBuIAorMDAwMDAwMjc0OSAwMDAwMCBuIAorMDAwMDAwMjgyNiAwMDAwMCBuIAorMDAwMDAwMjkwMyAwMDAwMCBuIAorMDAwMDAwMjk3OSAwMDAwMCBuIAorMDAwMDAwMzA2MyAwMDAwMCBuIAorMDAwMDAwMzEzOSAwMDAwMCBuIAorMDAwMDAwMzIyMyAwMDAwMCBuIAorMDAwMDAwMzI5OSAwMDAwMCBuIAorMDAwMDAwMzM4MyAwMDAwMCBuIAorMDAwMDAwMzQ2MCAwMDAwMCBuIAorMDAwMDAwMzUzNyAwMDAwMCBuIAorMDAwMDAwMzYxNCAwMDAwMCBuIAorMDAwMDAwMzY5MCAwMDAwMCBuIAorMDAwMDAwMzc3NCAwMDAwMCBuIAorMDAwMDAwMzg1MCAwMDAwMCBuIAorMDAwMDAwMzkzNCAwMDAwMCBuIAorMDAwMDAwNDAxMCAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSA0MQorPj4KK3N0YXJ0eHJlZgorNDA5NAorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNzY5LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE3NjkuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZmNjY4MgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNzY5LmluCkBAIC0wLDAgKzEsNzIgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL0ltMSA1IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCisxMDAwIDAgMCAxMDAwIDUwIDEwMCBjbQorL0ltMSBEbworUQorcQorMSAwIDAgMSAyMDAgMTAwIGNtCisvSW0xIERvCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAxMDAgMTAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA2IDAgUgorICAgID4+CisgID4+Cit7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCiswLjAwMSAwIDAgMC4wMDEgMCAwIGNtCitCVAorL0YxIDI0IFRmCisodykgVGoKKyhvKSBUagorKHIpIFRqCisobCkgVGoKKyhkKSBUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNzY5LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xNzY5LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTlmYmExCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE3NjkucGRmCkBAIC0wLDAgKzEsODUgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvSW0xIDUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCA2NworPj4KK3N0cmVhbQorcQorMTAwMCAwIDAgMTAwMCA1MCAxMDAgY20KKy9JbTEgRG8KK1EKK3EKKzEgMCAwIDEgMjAwIDEwMCBjbQorL0ltMSBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAxMDAgMTAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA2IDAgUgorICAgID4+CisgID4+CisvTGVuZ3RoIDc0Cis+Pgorc3RyZWFtCiswLjAwMSAwIDAgMC4wMDEgMCAwIGNtCitCVAorL0YxIDI0IFRmCisodykgVGoKKyhvKSBUagorKHIpIFRqCisobCkgVGoKKyhkKSBUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorPj4KK2VuZG9iagoreHJlZgorMCA3CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTMxIDAwMDAwIG4gCiswMDAwMDAwMjg3IDAwMDAwIG4gCiswMDAwMDAwNDA1IDAwMDAwIG4gCiswMDAwMDAwNjU1IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDcKKz4+CitzdGFydHhyZWYKKzczMQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xOTE5LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18xOTE5LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzMxZTBkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzE5MTkucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z18zMDYxMjMucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzMwNjEyMy5wZGYKaW5kZXggNWJkMTkwMC4uOGI1NDJjYyAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzMwNjEyMy5wZGYKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzMwNjEyMy5wZGYKQEAgLTEyNDMsNyArMTI0Myw3IEBACiBlbmRvYmoKIDkgMCBvYmogPDwKICAgL1R5cGUgL1BhZ2UKLSAgL1BhcmVudCAyIDAgUgorICAvUGFyZW50IDggMCBSCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgogZW5kb2JqCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfNDgxMzYzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzQ4MTM2My5pbgppbmRleCAzMmE3MjRkLi4xZTA1MzQ2IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfNDgxMzYzLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z180ODEzNjMuaW4KQEAgLTI5LDcgKzI5LDcgQEAKIDEwMCA1MDAgMTAwIDEwMCByZSBiCiBlbmRzdHJlYW0KIGVuZG9iagote3tvYmplY3QgNSAwKSkgPDwKK3t7b2JqZWN0IDUgMH19IDw8CiAgIC9UeXBlIC9Gb250CiAgIC9TdWJ0eXBlIC9UeXBlMQogICAvQmFzZUZvbnQgL0hlCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfNDgxMzYzLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z180ODEzNjMucGRmCmluZGV4IDUzNDY4YTAuLjgyNjNiM2YgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z180ODEzNjMucGRmCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z180ODEzNjMucGRmCkBAIC0zMCw3ICszMCw3IEBACiAxMDAgNTAwIDEwMCAxMDAgcmUgYgogZW5kc3RyZWFtCiBlbmRvYmoKLXt7b2JqZWN0IDUgMCkpIDw8Cis1IDAgb2JqIDw8CiAgIC9UeXBlIC9Gb250CiAgIC9TdWJ0eXBlIC9UeXBlMQogICAvQmFzZUZvbnQgL0hlCkBAIC01MSwxMiArNTEsMTIgQEAKIDAwMDAwMDAwNzggMDAwMDAgbiAKIDAwMDAwMDAyNTMgMDAwMDAgbiAKIDAwMDAwMDAzMDYgMDAwMDAgbiAKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDA1MTcgMDAwMDAgbiAKKzAwMDAwMDA0MDAgMDAwMDAgbiAKKzAwMDAwMDA1MTAgMDAwMDAgbiAKIHRyYWlsZXIgPDwKICAgL1NpemUgMAogICAvUm9vdCAzIDAgUgogPj4KIHN0YXJ0eHJlZgotNjIxCis2MTQKICUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfNjc0NzcxLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzY3NDc3MS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzUyZjMwCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzY3NDc3MS5pbgpAQCAtMCwwICsxLDU2IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyBbNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDc5MiA2MTJdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvSW1hZ2VCXQorICAgIC9YT2JqZWN0IDw8CisgICAgICAvSW0wIDUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzQwMCAwIDAgMzAwIDYwIDEwMCBjbQorL0ltMCBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCAxCisgIC9EZWNvZGUgWzAuMCAxLjBdCisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvSkJJRzJEZWNvZGVdCisgIC9IZWlnaHQgNDAwCisgIC9JbWFnZU1hc2sgdHJ1ZQorICAvV2lkdGggNDAwCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzAwMDAwMDAwMzAwMDAxMDAwMDAwMTMwMDAwMGRlYTAwMDAwMzUzMDAwMDE3MTEwMDAwMTcxMTUxMDAwMDAwMDAwMDAxMjYwMDAxMDAwMDAwCiszNTAwMDAwZGVhMDAwMDAzNTMwMDAwMDAwMDAwMDAwMDAwMDIwMDAzZmZmZGZmMDJmZWZlZmVmZjdmODY1MzBmYjZjOTIyY2ZmZjdmZmY3ZgorZmY3ZmZmN2ZmZjdmZmY3ZmZmN2ZmZjdmZmZhYworZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z182NzQ3NzEucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzY3NDc3MS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmIyZGFiOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z182NzQ3NzEucGRmCkBAIC0wLDAgKzEsNjggQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgWzQgMCBSXQorICAvTWVkaWFCb3ggWzAgMCA3OTIgNjEyXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQl0KKyAgICAvWE9iamVjdCA8PAorICAgICAgL0ltMCA1IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9MZW5ndGggMzQKKz4+CitzdHJlYW0KK3EKKzQwMCAwIDAgMzAwIDYwIDEwMCBjbQorL0ltMCBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDEKKyAgL0RlY29kZSBbMC4wIDEuMF0KKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9KQklHMkRlY29kZV0KKyAgL0hlaWdodCA0MDAKKyAgL0ltYWdlTWFzayB0cnVlCisgIC9XaWR0aCA0MDAKKyAgL0xlbmd0aCAxOTEKKz4+CitzdHJlYW0KKzAwMDAwMDAwMzAwMDAxMDAwMDAwMTMwMDAwMGRlYTAwMDAwMzUzMDAwMDE3MTEwMDAwMTcxMTUxMDAwMDAwMDAwMDAxMjYwMDAxMDAwMDAwCiszNTAwMDAwZGVhMDAwMDAzNTMwMDAwMDAwMDAwMDAwMDAwMDIwMDAzZmZmZGZmMDJmZWZlZmVmZjdmODY1MzBmYjZjOTIyY2ZmZjdmZmY3ZgorZmY3ZmZmN2ZmZjdmZmY3ZmZmN2ZmZjdmZmZhYworZW5kc3RyZWFtCitlbmRvYmoKK3hyZWYKKzAgNgorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDA2OCAwMDAwMCBuIAorMDAwMDAwMDEzMSAwMDAwMCBuIAorMDAwMDAwMDMxNyAwMDAwMCBuIAorMDAwMDAwMDQwMiAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSA2Cis+Pgorc3RhcnR4cmVmCis4MDgKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfNjgwMzc2LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzY4MDM3Ni5pbgppbmRleCBjMjFkZjI0Li4zMmRhZWUxIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfNjgwMzc2LmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z182ODAzNzYuaW4KQEAgLTg1LDggKzg1LDggQEAKID4+CiBlbmRvYmoKICUgT2xkLXN0eWxlIHRvcC1sZXZlbCBEZXN0cyBkaWN0aW9uYXJ5LiBOb3RlIHRoYXQgRmlyc3RBbHRlcm5hdGUKLSUgaW50ZW50aW9uYWxseSByZWZlcmVuY2VzIG5vbi1leGlzc3RhbnQgcGFnZSAxMSBhbmQgTGFzdEFsdGVybmF0ZQotJSBpbnRlbnRpb25hbGx5IHJlZmVyZW5jZXMgbm9uLWV4aXN0YW50IG9iamVjdCA5OTkuCislIGludGVudGlvbmFsbHkgcmVmZXJlbmNlcyBub24tZXhpc3RlbnQgcGFnZSAxMSBhbmQgTGFzdEFsdGVybmF0ZQorJSBpbnRlbnRpb25hbGx5IHJlZmVyZW5jZXMgbm9uLWV4aXN0ZW50IG9iamVjdCA5OTkuCiB7e29iamVjdCAxNCAwfX0gPDwKICAgL0ZpcnN0QWx0ZXJuYXRlIFsxMSAvWFlaIDIwMCA0MDAgODAwXQogICAvTGFzdEFsdGVybmF0ZSAgPDwvRCBbOTk5IDAgUiAvWFlaIDAgMCAtMjAwXT4+CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfNjgwMzc2LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z182ODAzNzYucGRmCmluZGV4IGZiMDFjNTcuLjhkN2E4ODQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z182ODAzNzYucGRmCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z182ODAzNzYucGRmCkBAIC0xLDUgKzEsNSBAQAogJVBERi0xLjcKLSXCoMOywqTDtAorJaDypPQKIDEgMCBvYmogPDwKICAgL1R5cGUgL0NhdGFsb2cKICAgL1BhZ2VzIDIgMCBSCkBAIC04Niw4ICs4Niw4IEBACiA+PgogZW5kb2JqCiAlIE9sZC1zdHlsZSB0b3AtbGV2ZWwgRGVzdHMgZGljdGlvbmFyeS4gTm90ZSB0aGF0IEZpcnN0QWx0ZXJuYXRlCi0lIGludGVudGlvbmFsbHkgcmVmZXJlbmNlcyBub24tZXhpc3N0YW50IHBhZ2UgMTEgYW5kIExhc3RBbHRlcm5hdGUKLSUgaW50ZW50aW9uYWxseSByZWZlcmVuY2VzIG5vbi1leGlzdGFudCBvYmplY3QgOTk5LgorJSBpbnRlbnRpb25hbGx5IHJlZmVyZW5jZXMgbm9uLWV4aXN0ZW50IHBhZ2UgMTEgYW5kIExhc3RBbHRlcm5hdGUKKyUgaW50ZW50aW9uYWxseSByZWZlcmVuY2VzIG5vbi1leGlzdGVudCBvYmplY3QgOTk5LgogMTQgMCBvYmogPDwKICAgL0ZpcnN0QWx0ZXJuYXRlIFsxMSAvWFlaIDIwMCA0MDAgODAwXQogICAvTGFzdEFsdGVybmF0ZSAgPDwvRCBbOTk5IDAgUiAvWFlaIDAgMCAtMjAwXT4+CkBAIC0xMzgsMTkgKzEzOCwxOSBAQAogMDAwMDAwMDkwMyAwMDAwMCBuIAogMDAwMDAwMDk5MyAwMDAwMCBuIAogMDAwMDAwMDAwMCA2NTUzNSBmIAotMDAwMDAwMTI4NyAwMDAwMCBuIAotMDAwMDAwMTQxNSAwMDAwMCBuIAorMDAwMDAwMTI4NiAwMDAwMCBuIAorMDAwMDAwMTQxNCAwMDAwMCBuIAogMDAwMDAwMDAwMCA2NTUzNSBmIAogMDAwMDAwMDAwMCA2NTUzNSBmIAogMDAwMDAwMDAwMCA2NTUzNSBmIAogMDAwMDAwMDAwMCA2NTUzNSBmIAogMDAwMDAwMDAwMCA2NTUzNSBmIAotMDAwMDAwMTUxMCAwMDAwMCBuIAotMDAwMDAwMTYyMCAwMDAwMCBuIAorMDAwMDAwMTUwOSAwMDAwMCBuIAorMDAwMDAwMTYxOSAwMDAwMCBuIAogdHJhaWxlciA8PAogICAvU2l6ZSA2CiAgIC9Sb290IDEgMCBSCiA+Pgogc3RhcnR4cmVmCi0xNzA4CisxNzA3CiAlJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzc2NTM4NC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z183NjUzODQuaW4KaW5kZXggZTdlNDZjNy4uNjkyNTZiYyAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzc2NTM4NC5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfNzY1Mzg0LmluCkBAIC02Niw3ICs2Niw3IEBACiAgIC9KUyAyMSAwIFIKID4+CiBlbmRvYmoKLSUgSlMgcHJvZ3JhbSB0byBleGV4dXRlCislIEpTIHByb2dyYW0gdG8gZXhlY3V0ZQoge3tvYmplY3QgMjEgMH19IDw8CiA+Pgogc3RyZWFtCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfNzY1Mzg0LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z183NjUzODQucGRmCmluZGV4IGU4MjBmY2MuLjQxZTA0MmQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z183NjUzODQucGRmCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z183NjUzODQucGRmCkBAIC02Nyw3ICs2Nyw3IEBACiAgIC9KUyAyMSAwIFIKID4+CiBlbmRvYmoKLSUgSlMgcHJvZ3JhbSB0byBleGV4dXRlCislIEpTIHByb2dyYW0gdG8gZXhlY3V0ZQogMjEgMCBvYmogPDwKID4+CiBzdHJlYW0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z184MjE0NTQuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfODIxNDU0LmluCmluZGV4IDE2OGM5ODMuLmVlN2YyMGMgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z184MjE0NTQuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzgyMTQ1NC5pbgpAQCAtMSw3MSArMSw2MyBAQAoge3toZWFkZXJ9fQote3tvYmplY3QgMSAwfX0KLTw8Cit7e29iamVjdCAxIDB9fSA8PAogICAvVHlwZSAvQ2F0YWxvZwogICAvUGFnZXMgMiAwIFIKLSAgL05hbWVzIDE0IDAgUgotICAvQWNyb0Zvcm0gPDwgL0ZpZWxkcyBbIDggMCBSIDkgMCBSIF0gPj4KKyAgL05hbWVzIDcgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWyA1IDAgUiA2IDAgUiBdCisgID4+CiA+PgogZW5kb2JqCi17e29iamVjdCAyIDB9fQotPDwKK3t7b2JqZWN0IDIgMH19IDw8CiAgIC9UeXBlIC9QYWdlcwogICAvQ291bnQgMQogICAvS2lkcyBbIDMgMCBSIF0KID4+CiBlbmRvYmoKLXt7b2JqZWN0IDMgMH19Ci08PAore3tvYmplY3QgMyAwfX0gPDwKICAgL1R5cGUgL1BhZ2UKICAgL1BhcmVudCAyIDAgUgotICAvQ29udGVudHMgNiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCiAgIC9NZWRpYUJveCBbIDAgMCAzMDAgNjAwIF0KLSAgL0Fubm90cyBbIDggMCBSIDkgMCBSIF0KKyAgL0Fubm90cyBbIDUgMCBSIDYgMCBSIF0KID4+CiBlbmRvYmoKLXt7b2JqZWN0IDYgMH19Ci08PAote3tzdHJlYW1sZW59fQore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQogPj4KIHN0cmVhbQogZW5kc3RyZWFtCiBlbmRvYmoKLXt7b2JqZWN0IDggMH19Ci08PAore3tvYmplY3QgNSAwfX0gPDwKICAgL1R5cGUgL0Fubm90CiAgIC9TdWJ0eXBlIC9MaW5rCiAgIC9SZWN0IFsgMTAwIDM1MCAyMDAgMzgwIF0KICAgL0Rlc3QgKHRhcmdldDEwKQogPj4KIGVuZG9iagote3tvYmplY3QgOSAwfX0KLTw8Cit7e29iamVjdCA2IDB9fSA8PAogICAvVHlwZSAvQW5ub3QKICAgL1N1YnR5cGUgL0xpbmsKICAgL1JlY3QgWyAxMDAgNDAwIDIwMCA0MzAgXQogICAvRGVzdCAodGFyZ2V0MTAwKQogPj4KIGVuZG9iagote3tvYmplY3QgMTQgMH19Ci08PAotICAvRGVzdHMgMTUgMCBSCit7e29iamVjdCA3IDB9fSA8PAorICAvRGVzdHMgOCAwIFIKID4+CiBlbmRvYmoKLXt7b2JqZWN0IDE1IDB9fQotPDwKK3t7b2JqZWN0IDggMH19IDw8CiAgIC9OYW1lcyBbCi0gICAgKHRhcmdldDEwKSAxNiAwIFIKLSAgICAodGFyZ2V0MTAwKSAxNyAwIFIKKyAgICAodGFyZ2V0MTApIDkgMCBSCisgICAgKHRhcmdldDEwMCkgMTAgMCBSCiAgIF0KID4+CiBlbmRvYmoKLXt7b2JqZWN0IDE2IDB9fQotPDwKK3t7b2JqZWN0IDkgMH19IDw8CiAgIC9EIFszIDAgUiAvWFlaIDEwMCAyMDAgMF0KID4+CiBlbmRvYmoKLXt7b2JqZWN0IDE3IDB9fQotPDwKK3t7b2JqZWN0IDEwIDB9fSA8PAogICAvRCBbMyAwIFIgL1hZWiAxNTAgMjUwIDBdCiA+PgogZW5kb2JqCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfODIxNDU0LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z184MjE0NTQucGRmCmluZGV4IGQ2MjI5YTUuLjFlMTFjMTMgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z184MjE0NTQucGRmCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z184MjE0NTQucGRmCkBAIC0xLDk2ICsxLDg0IEBACiAlUERGLTEuNwogJaDypPQKLTEgMCBvYmoKLTw8CisxIDAgb2JqIDw8CiAgIC9UeXBlIC9DYXRhbG9nCiAgIC9QYWdlcyAyIDAgUgotICAvTmFtZXMgMTQgMCBSCi0gIC9BY3JvRm9ybSA8PCAvRmllbGRzIFsgOCAwIFIgOSAwIFIgXSA+PgorICAvTmFtZXMgNyAwIFIKKyAgL0Fjcm9Gb3JtIDw8CisgICAgL0ZpZWxkcyBbIDUgMCBSIDYgMCBSIF0KKyAgPj4KID4+CiBlbmRvYmoKLTIgMCBvYmoKLTw8CisyIDAgb2JqIDw8CiAgIC9UeXBlIC9QYWdlcwogICAvQ291bnQgMQogICAvS2lkcyBbIDMgMCBSIF0KID4+CiBlbmRvYmoKLTMgMCBvYmoKLTw8CiszIDAgb2JqIDw8CiAgIC9UeXBlIC9QYWdlCiAgIC9QYXJlbnQgMiAwIFIKLSAgL0NvbnRlbnRzIDYgMCBSCisgIC9Db250ZW50cyA0IDAgUgogICAvTWVkaWFCb3ggWyAwIDAgMzAwIDYwMCBdCi0gIC9Bbm5vdHMgWyA4IDAgUiA5IDAgUiBdCisgIC9Bbm5vdHMgWyA1IDAgUiA2IDAgUiBdCiA+PgogZW5kb2JqCi02IDAgb2JqCi08PAotL0xlbmd0aCAwCis0IDAgb2JqIDw8CisgIC9MZW5ndGggMAogPj4KIHN0cmVhbQogZW5kc3RyZWFtCiBlbmRvYmoKLTggMCBvYmoKLTw8Cis1IDAgb2JqIDw8CiAgIC9UeXBlIC9Bbm5vdAogICAvU3VidHlwZSAvTGluawogICAvUmVjdCBbIDEwMCAzNTAgMjAwIDM4MCBdCiAgIC9EZXN0ICh0YXJnZXQxMCkKID4+CiBlbmRvYmoKLTkgMCBvYmoKLTw8Cis2IDAgb2JqIDw8CiAgIC9UeXBlIC9Bbm5vdAogICAvU3VidHlwZSAvTGluawogICAvUmVjdCBbIDEwMCA0MDAgMjAwIDQzMCBdCiAgIC9EZXN0ICh0YXJnZXQxMDApCiA+PgogZW5kb2JqCi0xNCAwIG9iagotPDwKLSAgL0Rlc3RzIDE1IDAgUgorNyAwIG9iaiA8PAorICAvRGVzdHMgOCAwIFIKID4+CiBlbmRvYmoKLTE1IDAgb2JqCi08PAorOCAwIG9iaiA8PAogICAvTmFtZXMgWwotICAgICh0YXJnZXQxMCkgMTYgMCBSCi0gICAgKHRhcmdldDEwMCkgMTcgMCBSCisgICAgKHRhcmdldDEwKSA5IDAgUgorICAgICh0YXJnZXQxMDApIDEwIDAgUgogICBdCiA+PgogZW5kb2JqCi0xNiAwIG9iagotPDwKKzkgMCBvYmogPDwKICAgL0QgWzMgMCBSIC9YWVogMTAwIDIwMCAwXQogPj4KIGVuZG9iagotMTcgMCBvYmoKLTw8CisxMCAwIG9iaiA8PAogICAvRCBbMyAwIFIgL1hZWiAxNTAgMjUwIDBdCiA+PgogZW5kb2JqCiB4cmVmCi0wIDE4CiswIDExCiAwMDAwMDAwMDAwIDY1NTM1IGYgCiAwMDAwMDAwMDE1IDAwMDAwIG4gCi0wMDAwMDAwMTI2IDAwMDAwIG4gCi0wMDAwMDAwMTkxIDAwMDAwIG4gCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMzE0IDAwMDAwIG4gCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMzYyIDAwMDAwIG4gCi0wMDAwMDAwNDYyIDAwMDAwIG4gCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwNTYzIDAwMDAwIG4gCi0wMDAwMDAwNjAxIDAwMDAwIG4gCi0wMDAwMDAwNjgzIDAwMDAwIG4gCi0wMDAwMDAwNzMzIDAwMDAwIG4gCi10cmFpbGVyPDwgL1Jvb3QgMSAwIFIgL1NpemUgMTggPj4KKzAwMDAwMDAxMzEgMDAwMDAgbiAKKzAwMDAwMDAxOTYgMDAwMDAgbiAKKzAwMDAwMDAzMTkgMDAwMDAgbiAKKzAwMDAwMDAzNjkgMDAwMDAgbiAKKzAwMDAwMDA0NjkgMDAwMDAgbiAKKzAwMDAwMDA1NzAgMDAwMDAgbiAKKzAwMDAwMDA2MDYgMDAwMDAgbiAKKzAwMDAwMDA2ODYgMDAwMDAgbiAKKzAwMDAwMDA3MzUgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgMTEKKz4+CiBzdGFydHhyZWYKLTc4MworNzg1CiAlJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzg4OTA5OS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z184ODkwOTkuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdhZTVmNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z184ODkwOTkuaW4KQEAgLTAsMCArMSw2NCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzQgMCBSXQorICAgIC9EUiA1IDAgUgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1Jlc291cmNlcyA1IDAgUgorICAvTWVkaWFCb3ggWzAgMCAzMDAgLTQwMF0KKyAgL0NvbnRlbnRzIDcgMCBSCisgIC9Bbm5vdHMgWzQgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9UeAorICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKKyAgL0YgNAorICAvUmVjdCBbMTAwIDEwMCAyMDAgLTEzMF0KKyAgL1QgKFRleHQgQm94KQorICAvViAoR29vZCA6XSkKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9Gb250IDw8CisgICAgL0YxIDYgMCBSCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0JUCiswIDAgMCByZworL0YxIDEyIFRmCisxMDAgMTUwIFRkCisoQmFkIDpbKSBUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfODg5MDk5LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z184ODkwOTkucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0MDZjZDEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfODg5MDk5LnBkZgpAQCAtMCwwICsxLDc4IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzQgMCBSXQorICAgIC9EUiA1IDAgUgorICA+PgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgNSAwIFIKKyAgL01lZGlhQm94IFswIDAgMzAwIC00MDBdCisgIC9Db250ZW50cyA3IDAgUgorICAvQW5ub3RzIFs0IDAgUl0KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9UeAorICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKKyAgL0YgNAorICAvUmVjdCBbMTAwIDEwMCAyMDAgLTEzMF0KKyAgL1QgKFRleHQgQm94KQorICAvViAoR29vZCA6XSkKKz4+CitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL0ZvbnQgPDwKKyAgICAvRjEgNiAwIFIKKyAgPj4KKz4+CitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvSGVsdmV0aWNhCis+PgorZW5kb2JqCis3IDAgb2JqIDw8CisgIC9MZW5ndGggNDgKKz4+CitzdHJlYW0KK0JUCiswIDAgMCByZworL0YxIDEyIFRmCisxMDAgMTUwIFRkCisoQmFkIDpbKSBUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit4cmVmCiswIDgKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAxMjIgMDAwMDAgbiAKKzAwMDAwMDAxODUgMDAwMDAgbiAKKzAwMDAwMDAzMTggMDAwMDAgbiAKKzAwMDAwMDA0NzUgMDAwMDAgbiAKKzAwMDAwMDA1MjYgMDAwMDAgbiAKKzAwMDAwMDA2MDIgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgOAorPj4KK3N0YXJ0eHJlZgorNzAxCislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzkyMS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z185MjEuaW4KaW5kZXggYTBjMmU3My4uY2NkNDRmYiAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzkyMS5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfOTIxLmluCkBAIC00Myw3ICs0Myw3IEBACiA+PgogZW5kb2JqCiB7e29iamVjdCA2IDB9fSA8PAote3tzdHJlYW1sZW59fQorICB7e3N0cmVhbWxlbn19CiA+Pgogc3RyZWFtCiBCVApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzkyMS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfOTIxLnBkZgppbmRleCBmYjM5NTBlLi44NGUwNzU1IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfOTIxLnBkZgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfOTIxLnBkZgpAQCAtNDQsNyArNDQsNyBAQAogPj4KIGVuZG9iagogNiAwIG9iaiA8PAotL0xlbmd0aCAyNzg0CisgIC9MZW5ndGggMjc4NAogPj4KIHN0cmVhbQogQlQKQEAgLTY4LDcgKzY4LDEwIEBACiAwMDAwMDAwMjg3IDAwMDAwIG4gCiAwMDAwMDAwNDEyIDAwMDAwIG4gCiAwMDAwMDAwNTkzIDAwMDAwIG4gCi10cmFpbGVyPDwgL1Jvb3QgMSAwIFIgL1NpemUgNyA+PgordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSA3Cis+Pgogc3RhcnR4cmVmCi0zNDI4CiszNDMwCiAlJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzkyNTk4MS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z185MjU5ODEuaW4KaW5kZXggM2Q2ZTM3YS4uZjVmOGViZSAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzkyNTk4MS5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfOTI1OTgxLmluCkBAIC0zNiw3ICszNiw3IEBACiA+PgogZW5kb2JqCiB7e29iamVjdCA2IDB9fSA8PAote3tzdHJlYW1sZW59fQorICB7e3N0cmVhbWxlbn19CiA+Pgogc3RyZWFtCiBCVApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzkyNTk4MS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfOTI1OTgxLnBkZgppbmRleCA4ZDg1NmUxLi41YzM1ZTM4IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfOTI1OTgxLnBkZgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfOTI1OTgxLnBkZgpAQCAtMzcsNyArMzcsNyBAQAogPj4KIGVuZG9iagogNiAwIG9iaiA8PAotL0xlbmd0aCA4MworICAvTGVuZ3RoIDgzCiA+Pgogc3RyZWFtCiBCVApAQCAtNjQsMTEgKzY0LDExIEBACiAwMDAwMDAwMzA5IDAwMDAwIG4gCiAwMDAwMDAwMzg3IDAwMDAwIG4gCiAwMDAwMDAwNDYzIDAwMDAwIG4gCi0wMDAwMDAwNTk1IDAwMDAwIG4gCiswMDAwMDAwNTk3IDAwMDAwIG4gCiB0cmFpbGVyIDw8CiAgIC9Sb290IDEgMCBSCiAgIC9TaXplIDgKID4+CiBzdGFydHhyZWYKLTY0NgorNjQ4CiAlJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzk3MjUxOC5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfOTcyNTE4LnBkZgppbmRleCA1MTE4NWY1Li5mZGU1NGY4IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfOTcyNTE4LnBkZgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfOTcyNTE4LnBkZgpAQCAtNjAsNyArNjAsNyBAQAogZW5kb2JqCiA5IDAgb2JqIDw8CiAgIC9UeXBlIC9QYWdlCi0gIC9QYXJlbnQgMiAwIFIKKyAgL1BhcmVudCA4IDAgUgogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KIGVuZG9iagpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvZGFzaGVkX2xpbmVzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvZGFzaGVkX2xpbmVzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0Zjc0YmIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9kYXNoZWRfbGluZXMuaW4KQEAgLTAsMCArMSwzNyBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFswIDAgMjAwIDEwMF0KKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzAgMCAwIHJnCisxMCAyNSBtIDE5MCAyNSBsIFMKK1s2IDUgNCAzIDIgMV0gNSBkCisxMCA1MCBtIDE5MCA1MCBsIFMKK1tdIDAgZAorMTAgNzUgbSAxOTAgNzUgbCBTCitRCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvZGFzaGVkX2xpbmVzLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2Rhc2hlZF9saW5lcy5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQwYTU5MQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2Rhc2hlZF9saW5lcy5wZGYKQEAgLTAsMCArMSw0OCBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFswIDAgMjAwIDEwMF0KKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvTGVuZ3RoIDk1Cis+Pgorc3RyZWFtCitxCiswIDAgMCByZworMTAgMjUgbSAxOTAgMjUgbCBTCitbNiA1IDQgMyAyIDFdIDUgZAorMTAgNTAgbSAxOTAgNTAgbCBTCitbXSAwIGQKKzEwIDc1IG0gMTkwIDc1IGwgUworUQorZW5kc3RyZWFtCitlbmRvYmoKK3hyZWYKKzAgNQorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDA2OCAwMDAwMCBuIAorMDAwMDAwMDE1NyAwMDAwMCBuIAorMDAwMDAwMDIyNiAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSA1Cis+Pgorc3RhcnR4cmVmCiszNzIKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9kb2NtZHAuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9kb2NtZHAuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThmZTI4MwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2RvY21kcC5pbgpAQCAtMCwwICsxLDg4IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDw8CisgICAgL0ZpZWxkcyBbNyAwIFJdCisgICAgL1NpZ0ZsYWdzIDMKKyAgPj4KKz4+CitlbmRvYmoKK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAzMDBdCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9Bbm5vdHMgWzcgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorMCAwIDAgcmcKKzAgMjkwIDEwIDEwIHJlIEIqCisxMCAxNTAgNTAgMzAgcmUgQioKKzAgMCAxIHJnCisxOTAgMjkwIDEwIDEwIHJlIEIqCis3MCAyMzIgNTAgMzAgcmUgQioKKzAgMSAwIHJnCisxOTAgMCAxMCAxMCByZSBCKgorMTMwIDE1MCA1MCAzMCByZSBCKgorMSAwIDAgcmcKKzAgMCAxMCAxMCByZSBCKgorNzAgNjcgNTAgMzAgcmUgQioKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvU2lnCisgIC9SZWZlcmVuY2UgWworICAgIDw8CisgICAgICAvVHlwZSAvU2lnUmVmCisgICAgICAvVHJhbnNmb3JtTWV0aG9kIC9Eb2NNRFAKKyAgICAgIC9UcmFuc2Zvcm1QYXJhbXMgPDwKKyAgICAgICAgL1R5cGUgL1RyYW5zZm9ybVBhcmFtcworICAgICAgICAvUCAxCisgICAgICAgIC9WIC8xLjIKKyAgICAgID4+CisgICAgPj4KKyAgXQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0JCb3ggWzAgMCAwIDBdCisgIC9MZW5ndGggMAorPj4KK3N0cmVhbQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvU2lnCisgIC9GIDEzMgorICAvUmVjdCBbMCAwIDAgMF0KKyAgL1AgMyAwIFIKKyAgL1QgKFNpZ25hdHVyZTEpCisgIC9WIDUgMCBSCisgIC9EViA1IDAgUgorICAvQVAgPDwKKyAgICAvTiA2IDAgUgorICA+PgorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvZG9jbWRwLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2RvY21kcC5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE5MWEwMAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2RvY21kcC5wZGYKQEAgLTAsMCArMSwxMDIgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDw8CisgICAgL0ZpZWxkcyBbNyAwIFJdCisgICAgL1NpZ0ZsYWdzIDMKKyAgPj4KKz4+CitlbmRvYmoKK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFswIDAgMjAwIDMwMF0KKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvQW5ub3RzIFs3IDAgUl0KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAxODgKKz4+CitzdHJlYW0KK3EKKzAgMCAwIHJnCiswIDI5MCAxMCAxMCByZSBCKgorMTAgMTUwIDUwIDMwIHJlIEIqCiswIDAgMSByZworMTkwIDI5MCAxMCAxMCByZSBCKgorNzAgMjMyIDUwIDMwIHJlIEIqCiswIDEgMCByZworMTkwIDAgMTAgMTAgcmUgQioKKzEzMCAxNTAgNTAgMzAgcmUgQioKKzEgMCAwIHJnCiswIDAgMTAgMTAgcmUgQioKKzcwIDY3IDUwIDMwIHJlIEIqCitRCitlbmRzdHJlYW0KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvU2lnCisgIC9SZWZlcmVuY2UgWworICAgIDw8CisgICAgICAvVHlwZSAvU2lnUmVmCisgICAgICAvVHJhbnNmb3JtTWV0aG9kIC9Eb2NNRFAKKyAgICAgIC9UcmFuc2Zvcm1QYXJhbXMgPDwKKyAgICAgICAgL1R5cGUgL1RyYW5zZm9ybVBhcmFtcworICAgICAgICAvUCAxCisgICAgICAgIC9WIC8xLjIKKyAgICAgID4+CisgICAgPj4KKyAgXQorPj4KK2VuZG9iagorNiAwIG9iaiA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvQkJveCBbMCAwIDAgMF0KKyAgL0xlbmd0aCAwCis+Pgorc3RyZWFtCitlbmRzdHJlYW0KK2VuZG9iagorNyAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL1NpZworICAvRiAxMzIKKyAgL1JlY3QgWzAgMCAwIDBdCisgIC9QIDMgMCBSCisgIC9UIChTaWduYXR1cmUxKQorICAvViA1IDAgUgorICAvRFYgNSAwIFIKKyAgL0FQIDw8CisgICAgL04gNiAwIFIKKyAgPj4KKz4+CitlbmRvYmoKK3hyZWYKKzAgOAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDEzMSAwMDAwMCBuIAorMDAwMDAwMDIyMCAwMDAwMCBuIAorMDAwMDAwMDMwNyAwMDAwMCBuIAorMDAwMDAwMDU0NyAwMDAwMCBuIAorMDAwMDAwMDc2MCAwMDAwMCBuIAorMDAwMDAwMDg2MiAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSA4Cis+Pgorc3RhcnR4cmVmCisxMDM0CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvZW1iZWRkZWRfYXR0YWNobWVudHNfaW52YWxpZF9kYXRhLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvZW1iZWRkZWRfYXR0YWNobWVudHNfaW52YWxpZF9kYXRhLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NTQ1YTQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9lbWJlZGRlZF9hdHRhY2htZW50c19pbnZhbGlkX2RhdGEuaW4KQEAgLTAsMCArMSw0MSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL05hbWVzIDQgMCBSCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Qcm9jU2V0IFsvUERGXQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL0VtYmVkZGVkRmlsZXMgNSAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9OYW1lcyBbKDEudHh0KSA2IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9GaWxlc3BlYworICAvRGVzYyAoKQorICAvRiAoMS50eHQpCisgIC9VRiAoMS50eHQpCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9lbWJlZGRlZF9hdHRhY2htZW50c19pbnZhbGlkX2RhdGEucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvZW1iZWRkZWRfYXR0YWNobWVudHNfaW52YWxpZF9kYXRhLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTgzMGUyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvZW1iZWRkZWRfYXR0YWNobWVudHNfaW52YWxpZF9kYXRhLnBkZgpAQCAtMCwwICsxLDU0IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL05hbWVzIDQgMCBSCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERl0KKyAgPj4KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0VtYmVkZGVkRmlsZXMgNSAwIFIKKz4+CitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL05hbWVzIFsoMS50eHQpIDYgMCBSXQorPj4KK2VuZG9iagorNiAwIG9iaiA8PAorICAvVHlwZSAvRmlsZXNwZWMKKyAgL0Rlc2MgKCkKKyAgL0YgKDEudHh0KQorICAvVUYgKDEudHh0KQorPj4KK2VuZG9iagoreHJlZgorMCA3CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDgzIDAwMDAwIG4gCiswMDAwMDAwMTQ2IDAwMDAwIG4gCiswMDAwMDAwMjY0IDAwMDAwIG4gCiswMDAwMDAwMzA4IDAwMDAwIG4gCiswMDAwMDAwMzU0IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDcKKz4+CitzdGFydHhyZWYKKzQzMQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2ZpbmRfdGV4dF9jb25zZWN1dGl2ZS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2ZpbmRfdGV4dF9jb25zZWN1dGl2ZS5pbgppbmRleCA5ZTM1ZTFkLi5kNDg0NTg0IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9maW5kX3RleHRfY29uc2VjdXRpdmUuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvZmluZF90ZXh0X2NvbnNlY3V0aXZlLmluCkBAIC0yOSw3ICsyOSw3IEBACiA+PgogZW5kb2JqCiB7e29iamVjdCA1IDB9fSA8PAote3tzdHJlYW1sZW59fQorICB7e3N0cmVhbWxlbn19CiA+Pgogc3RyZWFtCiBCVApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvZmluZF90ZXh0X2NvbnNlY3V0aXZlLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2ZpbmRfdGV4dF9jb25zZWN1dGl2ZS5wZGYKaW5kZXggNTA4M2Q3NS4uYmQ3ODM4MCAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvZmluZF90ZXh0X2NvbnNlY3V0aXZlLnBkZgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9maW5kX3RleHRfY29uc2VjdXRpdmUucGRmCkBAIC0zMCw3ICszMCw3IEBACiA+PgogZW5kb2JqCiA1IDAgb2JqIDw8Ci0vTGVuZ3RoIDUxCisgIC9MZW5ndGggNTEKID4+CiBzdHJlYW0KIEJUCkBAIC01Myw1ICs1Myw1IEBACiAgIC9TaXplIDYKID4+CiBzdGFydHhyZWYKLTQ2NQorNDY3CiAlJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvZm9udHMvU3ltYm9sTmV1LnR0ZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2ZvbnRzL1N5bWJvbE5ldS50dGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDg5MzJjOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2ZvbnRzL1N5bWJvbE5ldS50dGYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvZ2V0X3BhZ2VfYWFjdGlvbi5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2dldF9wYWdlX2FhY3Rpb24uaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNmMGMwMQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2dldF9wYWdlX2FhY3Rpb24uaW4KQEAgLTAsMCArMSw1MCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0tpZHMgWworICAgIDMgMCBSCisgICAgNCAwIFIKKyAgXQorICAvQ291bnQgMgorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvQUEgPDwKKyAgICAvTyA8PAorICAgICAgL0YgKFxcXFwxMjcuMC4wLjFcXGMkXFxQcm9ncmFtIEZpbGVzXFx0ZXN0LmV4ZSkKKyAgICAgIC9EIFsxIC9GaXRdCisgICAgICAvUyAvR29Ub0UKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvQUEgPDwKKyAgICAvTyA8PAorICAgICAgL0YgKFxcXFwxMjcuMC4wLjFcXGMkXFxQcm9ncmFtIEZpbGVzXFx0ZXN0X3BhZ2VfdHdvX29wZW4uZXhlKQorICAgICAgL0QgWzEgL0ZpdF0KKyAgICAgIC9TIC9Hb1RvRQorICAgID4+CisgICAgL0MgPDwKKyAgICAgIC9GIChcXFxcMTI3LjAuMC4xXFxjJFxcUHJvZ3JhbSBGaWxlc1xcdGVzdF9wYWdlX3R3b19jbG9zZS5leGUpCisgICAgICAvRCBbMSAvRml0XQorICAgICAgL1MgL0dvVG9FCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2dldF9wYWdlX2FhY3Rpb24ucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvZ2V0X3BhZ2VfYWFjdGlvbi5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q0NjY1MQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2dldF9wYWdlX2FhY3Rpb24ucGRmCkBAIC0wLDAgKzEsNjEgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9LaWRzIFsKKyAgICAzIDAgUgorICAgIDQgMCBSCisgIF0KKyAgL0NvdW50IDIKKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvQUEgPDwKKyAgICAvTyA8PAorICAgICAgL0YgKFxcXFwxMjcuMC4wLjFcXGMkXFxQcm9ncmFtIEZpbGVzXFx0ZXN0LmV4ZSkKKyAgICAgIC9EIFsxIC9GaXRdCisgICAgICAvUyAvR29Ub0UKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9BQSA8PAorICAgIC9PIDw8CisgICAgICAvRiAoXFxcXDEyNy4wLjAuMVxcYyRcXFByb2dyYW0gRmlsZXNcXHRlc3RfcGFnZV90d29fb3Blbi5leGUpCisgICAgICAvRCBbMSAvRml0XQorICAgICAgL1MgL0dvVG9FCisgICAgPj4KKyAgICAvQyA8PAorICAgICAgL0YgKFxcXFwxMjcuMC4wLjFcXGMkXFxQcm9ncmFtIEZpbGVzXFx0ZXN0X3BhZ2VfdHdvX2Nsb3NlLmV4ZSkKKyAgICAgIC9EIFsxIC9GaXRdCisgICAgICAvUyAvR29Ub0UKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagoreHJlZgorMCA1CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTQ5IDAwMDAwIG4gCiswMDAwMDAwMzQ1IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDUKKz4+CitzdGFydHhyZWYKKzY3NQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2dvdG9lX2FjdGlvbi5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2dvdG9lX2FjdGlvbi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNGI3Y2YwCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvZ290b2VfYWN0aW9uLmluCkBAIC0wLDAgKzEsNDggQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0Fubm90cyBbNCAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0xpbmsKKyAgL0ZUIC9UeAorICAvRmYgMjkzNjAxMjgKKyAgL0EgNSAwIFIKKyAgL1QgKHR4dE5hbWUpCisgIC9GIDQKKyAgL00gKEQ6MjAxNTA1MTQwNzA0MjYrMDUnMzAnKQorICAvUmVjdCBbMSAxIDE5OSAxOTldCisgIC9CUyAgPDwKKyAgICAvVyAxCisgICAgL1MgL1MKKyAgPj4KKyAgL0RBICgvSGVsdiAwIFRmIDAgMCAwIHJnKQorICAvViAoKQorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1MgL0dvVG9FCisgIC9EIFsxIC9GaXRdCisgIC9GIChFeGFtcGxlRmlsZS5wZGYpCis+PgorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvZ290b2VfYWN0aW9uLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2dvdG9lX2FjdGlvbi5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQ1ODhlMAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2dvdG9lX2FjdGlvbi5wZGYKQEAgLTAsMCArMSw2MCBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFswIDAgMjAwIDIwMF0KKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Bbm5vdHMgWzQgMCBSXQorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0xpbmsKKyAgL0ZUIC9UeAorICAvRmYgMjkzNjAxMjgKKyAgL0EgNSAwIFIKKyAgL1QgKHR4dE5hbWUpCisgIC9GIDQKKyAgL00gKEQ6MjAxNTA1MTQwNzA0MjYrMDUnMzAnKQorICAvUmVjdCBbMSAxIDE5OSAxOTldCisgIC9CUyAgPDwKKyAgICAvVyAxCisgICAgL1MgL1MKKyAgPj4KKyAgL0RBICgvSGVsdiAwIFRmIDAgMCAwIHJnKQorICAvViAoKQorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvUyAvR29Ub0UKKyAgL0QgWzEgL0ZpdF0KKyAgL0YgKEV4YW1wbGVGaWxlLnBkZikKKz4+Cis+PgorZW5kb2JqCit4cmVmCiswIDYKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxNTcgMDAwMDAgbiAKKzAwMDAwMDAyMjYgMDAwMDAgbiAKKzAwMDAwMDA0NjAgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgNgorPj4KK3N0YXJ0eHJlZgorNTMzCislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvZ3JheS1hbHBoYS5qcDIgYi90ZXN0aW5nL3Jlc291cmNlcy9ncmF5LWFscGhhLmpwMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWUzZjM0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvZ3JheS1hbHBoYS5qcDIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvZ3JheS5qcDIgYi90ZXN0aW5nL3Jlc291cmNlcy9ncmF5LmpwMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzI5M2JkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvZ3JheS5qcDIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvaGVicmV3X21pcnJvcmVkLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvaGVicmV3X21pcnJvcmVkLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5ZWRlNWQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9oZWJyZXdfbWlycm9yZWQuaW4KQEAgLTAsMCArMSwxNjAgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvVGV4dF0KKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0JUCisvRjEgMTIgVGYKKzE1MCAxNjAgVGQKK1s8MDE+MjwwMj4yPDAzPi00PDAyPjI8MDQ+NTwwNT5dVEoKK0VUCisKK0JUCiswIDEwMCBUZAorLTEgMCAwIDEgNTAgNDAgVG0KK1s8MDE+NTwwNT5dVEoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1RydWVUeXBlCisgIC9CYXNlRm9udCAvQkFBQUFBK05vdG9TYW5zSGVicmV3LVJlZ3VsYXIKKyAgL0ZpcnN0Q2hhciAwCisgIC9Gb250RGVzY3JpcHRvciA2IDAgUgorICAvTGFzdENoYXIgNQorICAvVG9Vbmljb2RlIDggMCBSCisgIC9XaWR0aHMgWzYwMCAyOTQgMjM1IDY0NSAzOTcgNTQyXQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCisgIC9Bc2NlbnQgMTA2OQorICAvQ2FwSGVpZ2h0IDg2OQorICAvRGVzY2VudCAtMjkzCisgIC9GbGFncyA0CisgIC9Gb250QkJveCBbLTIxMCAtMjUyIDcxNiA4NjldCisgIC9Gb250RmlsZTIgNyAwIFIKKyAgL0ZvbnROYW1lIC9CQUFBQUErTm90b1NhbnNIZWJyZXctUmVndWxhcgorICAvSXRhbGljQW5nbGUgMAorICAvU3RlbVYgODAKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9GaWx0ZXIgWy9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorR2hWT2VDTVhzQ0ZadCMoJXA8aTlBVS51TzZdWWUvaWZLSFhiTFYhSTE8Z3NnSFkkRWctdGJQdEByaz1BcD9sK0ZRL3U7XjhKQVNYVlFTPlYKK251RzxqIm5GJCxSaWklKjg5b0ZycTY8MzQsMW0pY0owSUY1KDIyKiYiYzw/XnE+XmpaRWtjWy4tcWRsXmRrMUYmLGZLVDlGMillYUgvMVFYCis8Z040KVcwbl1nOjc5ODtdPGo0MmRZUitiNyYkSUlgZXIwRG8yUFZpNTVPSC5EVSYzb0Y3XkQ+PXAlVztwVDZPT2tDLmdMMDthUVolRVFdJAorQ01wTy9vdWlPZSo9b3FNRlc1cF5nZTxKV0l0W1hWZ1tjcXI4YVIlXmdbVEtUcFlLJlNcRjQpV0piZCZoaEUoLC4vcSdlZi9cay1GT0ttYGgKK2Y9cSlvNl8wU2QtQXAidS9gJ2JuNiFvKzhadTs1XVFeMkRbSiw2amJmLmQ0Q2sndDcuaW0iWj1eXi83RDRWWGRuSipoWC5pYSZAUzxabF9ECitYcWAjWGxmMy5bUTZHTC0uSVMrbmo8SkVRMSs9SGVmb2VIOFFpMFspYzwuXF5QJDRMVEQ/RGFtVi4vOz8tUERSXjhbYiRrOCdeTEIyQzQmJworTlVnPUhDNms4QScuS25iN1doKWVsRENYNzQpTGB0Yz9gWlxTYjtpJD5BRWxVV1pkaishOEZXdTpnbktQZGttR1NNOyVxMzlAbUNbNzxaRUgKK0JQLGpYNzQ2WVs4VkwnZT1tbHJrZytbJi80WG4jMScoNzJwQ2NgY1hOTisvWjA/RE0mZyVCZ0FAY283ZSk5SjNYO1hcXCg1QCI9Tl4vZCIiCitUYEBwb0NjVEBHYCxRNDNCPl5LbkxrOyQ8I0MxYFpSSTpxYSMtdE1yKVI/VkUuUlJcNz1zS2VATikjWXVBXUpmTWFIZ1lOLyE/YyZPc1pUZQorXmNYZTAlbC0xKmtycmpbJDhXYFdsKSpLPz50OWRKaXJmclI3TVlIXD1YUE41UTJxTF9JNGV1ZGc0Yl1LUlRcPE9BbC9ULVBaJz8zZFokcDsKKzxBL1lTQ1tgTycpdSYxTzpbbW9pKScyPVZkNUtSNzI9MEU2TEFSKCsvI0A4MG1TNWhpZG4pTlJiUzNdUE1mVzIrPSZMZWdhWlhmZlNNXCsqCislQEVTZSdDQjdAPyljWU1QRzNYPEE5OHE/cEsuV0hnUFc0JUZPT1YqMS9pQGA7VS1fMCltL2NyWF5wViQiLFgvIkJzTW4/O1I6OjEsaU8/NworZCoibi1jI2dMcC5iUE8hSmsuKnItZ1AqNVsmMD5hW3FPR2A+b25fOWBMaGdsPyljQFAhSCMyI1BGZmZJRUFRUF5UU19EUzpYZW0/bEsyIU0KK2gjYytcQT1OTjEpWlctV0EzOCw3MGwna2BNU1ctJDhyQTA+PDNXXWZmayJacUNyZElBUUJFOT5qQG1aJzxISEdvZmhzVi07bU9sQF1NYjFMCitxU0lJWW5rTE0iWjk3RVZZRWxoXSVbPj5iYiNqZ2YqKk9sWVtJSGFLNSxAQy4vYkhiRGFsRSI6aFd1LjFOLEA7UyZnbCxuMzo8dVYkO04/TAorKigyT19zIUpyRj1mYm4ka2kiIUxPWTlxZWZYX1ZcPE5GanVPMG5nWThUcEooLDszOUtJUCczXk4pbzpzVV5TPm9lQ3VLJTdcLGRnQWlVTjEKK0UhMHJfPSRvbDczPmsmN11fKkUibVVTclhbNjI5ODArdVVrNTBNRSNJKlY6TDROOHMrYmk9L3FNc3R1LG50SjVmWyhIU2E1QEpoYUdZRDpRCitdYXVxczdgbkZNL11EQXRmVkc9TkQ2W19oblRCPTlbO0dIVGYmRiFNQk5RUDdQLkxuQVoyVlAiUGxvaGA/TlRhOG5FVVlGajNeOEI0PD90PgorNFNCcF4qZmhGLSpmaEwvKnI/TmtPLlNnZjQ6V0p0Km4tRTBXXUttQUtsKTFbTDxWQCdXalhtSEJsO2NuOS0tYUtAbFRqckVAKiNrPy02b24KKyw6Oz07KzNCPVtvSSZxM3AwJlxkREVXOG1eXkgoZ0hqUjgsN2xkcS40aEddLz4vbWY7SGwxRl46QiYuWGlxdSFoKFJBIkdwWE9tSTJlSihwCistVWZ1N0g0J0k1ITcxP1xWb0JgS2FqWDo6bXE+PVJyJlE7Z11FN3MkLWtaLkUpLzNUNG1mb1RdX1YzXnMzSiNBTEtJN25GP1RhY0hLXXFoagorTDxuY2psXUhOWyRmUEZaO2AoXEdaRWhTSWYlLzlIQD5xQSpqcE83YjdiWT0hLDwtLDVnUTYhXD5WXUFRKV4tR0JgJkMiUV9UdDVGXjJiMDQKK0heZFhGKiYjS2tyVWRXUG88bWFHU2pJVjJDPEE2JVkjbDFlREItMTE9NU1DZS9tUTtIXmA1ayg6JGFSWk8wMXJWbS9oWFxmWW1EOGYqRGpACitNQGk9cUtnMClfKD40Ty5HIWE1XkUyPmJPJF1RaURjXDJDNnBkZ0pTRXRpPjdFR0otKFdxQ0BRSmlEZEBOYnRWU0tDTGBMQnI3K1E3ZSgjJQorbWZUOSJJS2NSME9acHVBRCNZLi4oXChZYSpgVT5EUTlXIisnPiVTUjE0UmJ1M29rVUQxVW9adFNBZktZZi5JZnRHZG5aZTo+LVgkPnJdPVYKK0ctIkhaJFRoQ3FjZF9uQSVHUiVZT3JxKT9jQjloK2ZBSVZCKGtVSixNTHFfZSs+aVg9QUZAYmdJY2FwYDtwNSQyRitdb0A1JiROTGh1Oi5JCisyPCg8Lj04QTQ4NG40JFBgPmZRS0EidEJSV2JxXXREdXI2T0R1bFMmZiFCQjxaUFNjMjFXVzMjYnVQMCgrOWdVI1osYkgvU0ZGaDI0Rz9gNQorZE90KV5Ra05icm5oZmkpOTBTRXEmbmBxW0Y7czdiIW5YYyRnI0BhUFFOM3FiRmVXbCshZT1adGBFRidNMShCbSU3SFI4RGJWNGdnPFRaIjEKKydRWSwoQ2kvKV9bIjFoNzY2WEQnJkFEcnJhSHE9REglT0YkanNmcD9qc2JEQ0dtYEJjNG5BWWJoTk5ONkhTVytRSFNWTlJrPCkicDM9S1pICitANSxfQSMuS2goM00+LUwwMU4sbl5ET1lhcipvO2VucihtOWpWT1w7alZPWnFqVk9bXGpFUGRJSjRqVygxT3VcK24vVUBBLVhHISZSLCxgZgorMlcxXDNPPyolTDdnLD5AVGAhZjhlTWwjUEJycS9tMj1DQCdsK1s2XCFUQ0BLQUFbTVdhRnJGUkdBUElaa0xFOFJeWWhKVjVPXWlGSWdfXEcKK2lPPTZWS1x1O0MnPj1iP2ZlJVBoV0w5SzFhYk5SaT5vdGojK1onOzxuK2klT0NIYzpHUWBdcC1vYkNPdGlwLmFeY2Y8VWpZIUZHKVBSVExMCisrImpZRys0X2xpYCtqQjdgVkU8cyI0QVZqIi4+cEdrby9mcTgvIj06UjVAWG4jUV1jMlUxYmVsIV9uYDAsQz5WQVlzYlpIJlBIQEZKJGYjLworMHRkPUtnJz5BUjI1RjcmWU9vITxtSV0kKnJSalQyYVIhUV0lRmkpYU90SlNuPytVTTInL18pWzpwYDBsMmc0YkpCYXRaRWtpbitVbV9GREcKK3E7TTYpW0k5T2hNSVM9PGxGYURbOFxecDpfSClKMGwwJ1I5Jlp1R09fPmRGRkNiLnVKUWxiKFE0PDVBdTc0Ml9IXkNbJG5yOzBYSjRiM1RnCitbOzQ4YiV0PC5HZGtrPzhTPFZpYDtQb2UmU19TMFBLOGlPcytAVmQwTipnTis9UGxwNTBHXiNpJktnIkNTbXJxQWtuVGkiRDoqPllTVXJtYQorZz1yJjg8UGomTkRgJDEzJ0hDT2pHX2tCQydUKSpla0wkITo2WHVScElYPykrXlY1K1MyY1hOSkIyZWM4MHRsVUw/RyNxLW0saGJTJSQiVkAKK3AiSlE/aWdoMTptJ0dcJCpzXz8rLDRhLEpJQDNHblgqK1UiX1pyLigrKj4xamtGQW5VOT5aWEFVXGczQXJnbEU5Jix1QlUiMFsvbjMrIUInCitXWylNQyI/KllBQ3BxYT1iaSdwLUZbUitZJkpoJzo+RFM5STstUEVMN1xcNUZDMTxbX1UkZFFtbStDUDVJUWdpRD5TUUdtO29SRzRrNS5VLworMEQ/Om1JL0M9NilmO0FNOi9VdF5cRic6XGxpMiJxYVpoPHRcImNQOyEoPDNUP0coPm9vNUQsOj0kbytDP11LcUNVP2dlRUZqV0cmViJQUnAKKyY5JCNgbTMnRzkiJnRvc3FBWmcvQCVcQzJJPVo2cDE6MFlsIitAKVQpc28xVUAuLGZXbS9hckhSOGQ6TUpYTVFWQzhLNV09Sm1fS0lYamRCCis4M1tLJFFsYVtmSjBTVF0wKk89LTNPJ1hgInJcJ1EmYD5oJVk4SUBZVW9cYCdeZUhZX1hUYzUmN15caWtcNC04czRWWmdUVUA6NlRkaXBCaworSTlOTExrU0UhTydtUCotKlpfLmVURiVcUDZAT10pUXNEc0guWzEsdSNLXCFGZHAkIiJlWj1NMSMkWiQoWk81aStCV3BAP1RIXnFuQiVENy8KK2gjc1dGRF5wYE5GOllmYjg1O0VbOnFeNU9jO1NzYCE3YnI5L1NzJDc0XzxVKG06U1Ejcy0zKkovdHVHTmdYc0p0S3RxRjFiWExfSiw3P0BpCisnQkVqMUlsb24qYVcrbzYxZG44M0FmRTdGY1hFX3U5KWdnQz1ccCIoN3UhJTZZN15dJ1RNUFA/QHNnX2FrTWdDYEVZZlVzZENlSk8jMigyRAoraFE7QnI8NG0mMTUtIihUWWlbUCFpTjgvT2sjQFZWbVtVTyJiWnNATFFaREkmcGpYQlgrNGRYYGNzSStPZSNKPSxeYz1kJm46IjxMZHBQPy8KKzU3TlloXyoqTnUlR1lHdFByWjoycEFAayQ1SSMvRFo/dShwLm1LZFlfbXBhZ3IiW2FIU0EsZUBFRSslRWZ0TiokWDF0O2dTYEA/Zj5aSDNqCitkRy5kWCw0XXBpai04OD9APkVzJjQiT0txNFBiX0gpOTo4ZnFgKDBJZVtWPktua0lZU140M2prPSspLixhWHNPWCg0Y3FNNkthVDo3SE1TNQorNVZxVzsuQ3REIWtOQzM9ZStnUzdxJCJua2gna2wnZ2AnMVJrKjNqaEwmSkUhRlpXaFQjTkkoMVIpP0BKbkIwKSZaQzdtPjFXdWQzbU9CPEYKKzw/MVVsRWVhUElLNEQkXyNYPGNFJUhNMkI3bnJEJFNJL0o/TUo5JFxbJUwwW1gjYy46PlopV2dYJ0Y0K0VdOydIMjVwUGZNVCpRbFBCSDxCCisyakVhSWVldSVAZ19TWmleLytgcj5rb0lAMjJ0aG9KJFQjLUlnOjg9Q1tyKTlBQGdoLm5KK1AkcnRrIWE3b0I5OTVtJU5SUl90bEk3a247QworTD9zODUjMFRgVkhhPCsmTzVLJyRFbyg2cG4tWFVxNFk2LTlSZS1CJHJodEJxIVRmaV1HRWJQYjIqQVxHLFAvLHA7ZFxKNzddUy5GIzlKYEIKK0RvcEFcU2pwOE1FJkJ0bSomW15TNGsvMFp+PgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKy9DSURJbml0L1Byb2NTZXQgZmluZHJlc291cmNlIGJlZ2luCisxMiBkaWN0IGJlZ2luCitiZWdpbmNtYXAKKy9DSURTeXN0ZW1JbmZvPDwKKy9SZWdpc3RyeSAoQWRvYmUpCisvT3JkZXJpbmcgKFVDUykKKy9TdXBwbGVtZW50IDAKKz4+IGRlZgorL0NNYXBOYW1lL0Fkb2JlLUlkZW50aXR5LVVDUyBkZWYKKy9DTWFwVHlwZSAyIGRlZgorMSBiZWdpbmNvZGVzcGFjZXJhbmdlCis8MDA+IDxGRj4KK2VuZGNvZGVzcGFjZXJhbmdlCis1IGJlZ2luYmZjaGFyCis8MDE+IDwwNURGPgorPDAyPiA8MDVEOT4KKzwwMz4gPDA1REU+Cis8MDQ+IDwwNUUwPgorPDA1PiA8MDVEMT4KK2VuZGJmY2hhcgorZW5kY21hcAorQ01hcE5hbWUgY3VycmVudGRpY3QgL0NNYXAgZGVmaW5lcmVzb3VyY2UgcG9wCitlbmQKK2VuZAorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2hlYnJld19taXJyb3JlZC5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9oZWJyZXdfbWlycm9yZWQucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMzQzNTAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9oZWJyZXdfbWlycm9yZWQucGRmCkBAIC0wLDAgKzEsMTc1IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvVGV4dF0KKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAxMTAKKz4+CitzdHJlYW0KK0JUCisvRjEgMTIgVGYKKzE1MCAxNjAgVGQKK1s8MDE+MjwwMj4yPDAzPi00PDAyPjI8MDQ+NTwwNT5dVEoKK0VUCisKK0JUCiswIDEwMCBUZAorLTEgMCAwIDEgNTAgNDAgVG0KK1s8MDE+NTwwNT5dVEoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHJ1ZVR5cGUKKyAgL0Jhc2VGb250IC9CQUFBQUErTm90b1NhbnNIZWJyZXctUmVndWxhcgorICAvRmlyc3RDaGFyIDAKKyAgL0ZvbnREZXNjcmlwdG9yIDYgMCBSCisgIC9MYXN0Q2hhciA1CisgIC9Ub1VuaWNvZGUgOCAwIFIKKyAgL1dpZHRocyBbNjAwIDI5NCAyMzUgNjQ1IDM5NyA1NDJdCis+PgorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250RGVzY3JpcHRvcgorICAvQXNjZW50IDEwNjkKKyAgL0NhcEhlaWdodCA4NjkKKyAgL0Rlc2NlbnQgLTI5MworICAvRmxhZ3MgNAorICAvRm9udEJCb3ggWy0yMTAgLTI1MiA3MTYgODY5XQorICAvRm9udEZpbGUyIDcgMCBSCisgIC9Gb250TmFtZSAvQkFBQUFBK05vdG9TYW5zSGVicmV3LVJlZ3VsYXIKKyAgL0l0YWxpY0FuZ2xlIDAKKyAgL1N0ZW1WIDgwCis+PgorZW5kb2JqCis3IDAgb2JqIDw8CisgIC9GaWx0ZXIgWy9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL0xlbmd0aCA0MjQwCis+Pgorc3RyZWFtCitHaFZPZUNNWHNDRlp0IyglcDxpOUFVLnVPNl1ZZS9pZktIWGJMViFJMTxnc2dIWSRFZy10YlB0QHJrPUFwP2wrRlEvdTteOEpBU1hWUVM+VgorbnVHPGoibkYkLFJpaSUqODlvRnJxNjwzNCwxbSljSjBJRjUoMjIqJiJjPD9ecT5ealpFa2NbLi1xZGxeZGsxRiYsZktUOUYyKWVhSC8xUVgKKzxnTjQpVzBuXWc6Nzk4O108ajQyZFlSK2I3JiRJSWBlcjBEbzJQVmk1NU9ILkRVJjNvRjdeRD49cCVXO3BUNk9Pa0MuZ0wwO2FRWiVFUV0kCitDTXBPL291aU9lKj1vcU1GVzVwXmdlPEpXSXRbWFZnW2NxcjhhUiVeZ1tUS1RwWUsmU1xGNClXSmJkJmhoRSgsLi9xJ2VmL1xrLUZPS21gaAorZj1xKW82XzBTZC1BcCJ1L2AnYm42IW8rOFp1OzVdUV4yRFtKLDZqYmYuZDRDayd0Ny5pbSJaPV5eLzdENFZYZG5KKmhYLmlhJkBTPFpsX0QKK1hxYCNYbGYzLltRNkdMLS5JUytuajxKRVExKz1IZWZvZUg4UWkwWyljPC5cXlAkNExURD9EYW1WLi87Py1QRFJeOFtiJGs4J15MQjJDNCYnCitOVWc9SEM2azhBJy5LbmI3V2gpZWxEQ1g3NClMYHRjP2BaXFNiO2kkPkFFbFVXWmRqKyE4Rld1OmduS1Bka21HU007JXEzOUBtQ1s3PFpFSAorQlAsalg3NDZZWzhWTCdlPW1scmtnK1smLzRYbiMxJyg3MnBDY2BjWE5OKy9aMD9ETSZnJUJnQUBjbzdlKTlKM1g7WFxcKDVAIj1OXi9kIiIKK1RgQHBvQ2NUQEdgLFE0M0I+XktuTGs7JDwjQzFgWlJJOnFhIy10TXIpUj9WRS5SUlw3PXNLZUBOKSNZdUFdSmZNYUhnWU4vIT9jJk9zWlRlCiteY1hlMCVsLTEqa3JyalskOFdgV2wpKks/PnQ5ZEppcmZyUjdNWUhcPVhQTjVRMnFMX0k0ZXVkZzRiXUtSVFw8T0FsL1QtUFonPzNkWiRwOworPEEvWVNDW2BPJyl1JjFPOlttb2kpJzI9VmQ1S1I3Mj0wRTZMQVIoKy8jQDgwbVM1aGlkbilOUmJTM11QTWZXMis9JkxlZ2FaWGZmU01cKyoKKyVARVNlJ0NCN0A/KWNZTVBHM1g8QTk4cT9wSy5XSGdQVzQlRk9PVioxL2lAYDtVLV8wKW0vY3JYXnBWJCIsWC8iQnNNbj87Ujo6MSxpTz83CitkKiJuLWMjZ0xwLmJQTyFKay4qci1nUCo1WyYwPmFbcU9HYD5vbl85YExoZ2w/KWNAUCFIIzIjUEZmZklFQVFQXlRTX0RTOlhlbT9sSzIhTQoraCNjK1xBPU5OMSlaVy1XQTM4LDcwbCdrYE1TVy0kOHJBMD48M1ddZmZrIlpxQ3JkSUFRQkU5PmpAbVonPEhIR29maHNWLTttT2xAXU1iMUwKK3FTSUlZbmtMTSJaOTdFVllFbGhdJVs+PmJiI2pnZioqT2xZW0lIYUs1LEBDLi9iSGJEYWxFIjpoV3UuMU4sQDtTJmdsLG4zOjx1ViQ7Tj9MCisqKDJPX3MhSnJGPWZibiRraSIhTE9ZOXFlZlhfVlw8TkZqdU8wbmdZOFRwSigsOzM5S0lQJzNeTilvOnNVXlM+b2VDdUslN1wsZGdBaVVOMQorRSEwcl89JG9sNzM+ayY3XV8qRSJtVVNyWFs2Mjk4MCt1VWs1ME1FI0kqVjpMNE44cytiaT0vcU1zdHUsbnRKNWZbKEhTYTVASmhhR1lEOlEKK11hdXFzN2BuRk0vXURBdGZWRz1ORDZbX2huVEI9OVs7R0hUZiZGIU1CTlFQN1AuTG5BWjJWUCJQbG9oYD9OVGE4bkVVWUZqM144QjQ8P3Q+Cis0U0JwXipmaEYtKmZoTC8qcj9Oa08uU2dmNDpXSnQqbi1FMFddS21BS2wpMVtMPFZAJ1dqWG1IQmw7Y245LS1hS0BsVGpyRUAqI2s/LTZvbgorLDo7PTsrM0I9W29JJnEzcDAmXGRERVc4bV5eSChnSGpSOCw3bGRxLjRoR10vPi9tZjtIbDFGXjpCJi5YaXF1IWgoUkEiR3BYT21JMmVKKHAKKy1VZnU3SDQnSTUhNzE/XFZvQmBLYWpYOjptcT49UnImUTtnXUU3cyQta1ouRSkvM1Q0bWZvVF1fVjNeczNKI0FMS0k3bkY/VGFjSEtdcWhqCitMPG5jamxdSE5bJGZQRlo7YChcR1pFaFNJZiUvOUhAPnFBKmpwTzdiN2JZPSEsPC0sNWdRNiFcPlZdQVEpXi1HQmAmQyJRX1R0NUZeMmIwNAorSF5kWEYqJiNLa3JVZFdQbzxtYUdTaklWMkM8QTYlWSNsMWVEQi0xMT01TUNlL21RO0heYDVrKDokYVJaTzAxclZtL2hYXGZZbUQ4ZipEakAKK01AaT1xS2cwKV8oPjRPLkchYTVeRTI+Yk8kXVFpRGNcMkM2cGRnSlNFdGk+N0VHSi0oV3FDQFFKaURkQE5idFZTS0NMYExCcjcrUTdlKCMlCittZlQ5IklLY1IwT1pwdUFEI1kuLihcKFlhKmBVPkRROVciKyc+JVNSMTRSYnUzb2tVRDFVb1p0U0FmS1lmLklmdEdkblplOj4tWCQ+cl09VgorRy0iSFokVGhDcWNkX25BJUdSJVlPcnEpP2NCOWgrZkFJVkIoa1VKLE1McV9lKz5pWD1BRkBiZ0ljYXBgO3A1JDJGK11vQDUmJE5MaHU6LkkKKzI8KDwuPThBNDg0bjQkUGA+ZlFLQSJ0QlJXYnFddER1cjZPRHVsUyZmIUJCPFpQU2MyMVdXMyNidVAwKCs5Z1UjWixiSC9TRkZoMjRHP2A1CitkT3QpXlFrTmJybmhmaSk5MFNFcSZuYHFbRjtzN2IhblhjJGcjQGFQUU4zcWJGZVdsKyFlPVp0YEVGJ00xKEJtJTdIUjhEYlY0Z2c8VFoiMQorJ1FZLChDaS8pX1siMWg3NjZYRCcmQURycmFIcT1ESCVPRiRqc2ZwP2pzYkRDR21gQmM0bkFZYmhOTk42SFNXK1FIU1ZOUms8KSJwMz1LWkgKK0A1LF9BIy5LaCgzTT4tTDAxTixuXkRPWWFyKm87ZW5yKG05alZPXDtqVk9acWpWT1tcakVQZElKNGpXKDFPdVwrbi9VQEEtWEchJlIsLGBmCisyVzFcM08/KiVMN2csPkBUYCFmOGVNbCNQQnJxL20yPUNAJ2wrWzZcIVRDQEtBQVtNV2FGckZSR0FQSVprTEU4Ul5ZaEpWNU9daUZJZ19cRworaU89NlZLXHU7Qyc+PWI/ZmUlUGhXTDlLMWFiTlJpPm90aiMrWic7PG4raSVPQ0hjOkdRYF1wLW9iQ090aXAuYV5jZjxValkhRkcpUFJUTEwKKysiallHKzRfbGlgK2pCN2BWRTxzIjRBVmoiLj5wR2tvL2ZxOC8iPTpSNUBYbiNRXWMyVTFiZWwhX25gMCxDPlZBWXNiWkgmUEhARkokZiMvCiswdGQ9S2cnPkFSMjVGNyZZT28hPG1JXSQqclJqVDJhUiFRXSVGaSlhT3RKU24/K1VNMicvXylbOnBgMGwyZzRiSkJhdFpFa2luK1VtX0ZERworcTtNNilbSTlPaE1JUz08bEZhRFs4XF5wOl9IKUowbDAnUjkmWnVHT18+ZEZGQ2IudUpRbGIoUTQ8NUF1NzQyX0heQ1skbnI7MFhKNGIzVGcKK1s7NDhiJXQ8Lkdka2s/OFM8VmlgO1BvZSZTX1MwUEs4aU9zK0BWZDBOKmdOKz1QbHA1MEdeI2kmS2ciQ1NtcnFBa25UaSJEOio+WVNVcm1hCitnPXImODxQaiZORGAkMTMnSENPakdfa0JDJ1QpKmVrTCQhOjZYdVJwSVg/KSteVjUrUzJjWE5KQjJlYzgwdGxVTD9HI3EtbSxoYlMlJCJWQAorcCJKUT9pZ2gxOm0nR1wkKnNfPyssNGEsSklAM0duWCorVSJfWnIuKCsqPjFqa0ZBblU5PlpYQVVcZzNBcmdsRTkmLHVCVSIwWy9uMyshQicKK1dbKU1DIj8qWUFDcHFhPWJpJ3AtRltSK1kmSmgnOj5EUzlJOy1QRUw3XFw1RkMxPFtfVSRkUW1tK0NQNUlRZ2lEPlNRR207b1JHNGs1LlUvCiswRD86bUkvQz02KWY7QU06L1V0XlxGJzpcbGkyInFhWmg8dFwiY1A7ISg8M1Q/Ryg+b281RCw6PSRvK0M/XUtxQ1U/Z2VFRmpXRyZWIlBScAorJjkkI2BtMydHOSImdG9zcUFaZy9AJVxDMkk9WjZwMTowWWwiK0ApVClzbzFVQC4sZldtL2FySFI4ZDpNSlhNUVZDOEs1XT1KbV9LSVhqZEIKKzgzW0skUWxhW2ZKMFNUXTAqTz0tM08nWGAiclwnUSZgPmglWThJQFlVb1xgJ15lSFlfWFRjNSY3Xlxpa1w0LThzNFZaZ1RVQDo2VGRpcEJrCitJOU5MTGtTRSFPJ21QKi0qWl8uZVRGJVxQNkBPXSlRc0RzSC5bMSx1I0tcIUZkcCQiImVaPU0xIyRaJChaTzVpK0JXcEA/VEhecW5CJUQ3LworaCNzV0ZEXnBgTkY6WWZiODU7RVs6cV41T2M7U3NgITdicjkvU3MkNzRfPFUobTpTUSNzLTMqSi90dUdOZ1hzSnRLdHFGMWJYTF9KLDc/QGkKKydCRWoxSWxvbiphVytvNjFkbjgzQWZFN0ZjWEVfdTkpZ2dDPVxwIig3dSElNlk3Xl0nVE1QUD9Ac2dfYWtNZ0NgRVlmVXNkQ2VKTyMyKDJECitoUTtCcjw0bSYxNS0iKFRZaVtQIWlOOC9PayNAVlZtW1VPImJac0BMUVpESSZwalhCWCs0ZFhgY3NJK09lI0o9LF5jPWQmbjoiPExkcFA/LworNTdOWWhfKipOdSVHWUd0UHJaOjJwQUBrJDVJIy9EWj91KHAubUtkWV9tcGFnciJbYUhTQSxlQEVFKyVFZnROKiRYMXQ7Z1NgQD9mPlpIM2oKK2RHLmRYLDRdcGlqLTg4P0A+RXMmNCJPS3E0UGJfSCk5OjhmcWAoMEllW1Y+S25rSVlTXjQzams9KykuLGFYc09YKDRjcU02S2FUOjdITVM1Cis1VnFXOy5DdEQha05DMz1lK2dTN3EkIm5raCdrbCdnYCcxUmsqM2poTCZKRSFGWldoVCNOSSgxUik/QEpuQjApJlpDN20+MVd1ZDNtT0I8RgorPD8xVWxFZWFQSUs0RCRfI1g8Y0UlSE0yQjduckQkU0kvSj9NSjkkXFslTDBbWCNjLjo+WilXZ1gnRjQrRV07J0gyNXBQZk1UKlFsUEJIPEIKKzJqRWFJZWV1JUBnX1NaaV4vK2ByPmtvSUAyMnRob0okVCMtSWc6OD1DW3IpOUFAZ2gubkorUCRydGshYTdvQjk5NW0lTlJSX3RsSTdrbjtDCitMP3M4NSMwVGBWSGE8KyZPNUsnJEVvKDZwbi1YVXE0WTYtOVJlLUIkcmh0QnEhVGZpXUdFYlBiMipBXEcsUC8scDtkXEo3N11TLkYjOUpgQgorRG9wQVxTanA4TUUmQnRtKiZbXlM0ay8wWn4+CitlbmRzdHJlYW0KK2VuZG9iagorOCAwIG9iaiA8PAorICAvTGVuZ3RoIDM3NworPj4KK3N0cmVhbQorL0NJREluaXQvUHJvY1NldCBmaW5kcmVzb3VyY2UgYmVnaW4KKzEyIGRpY3QgYmVnaW4KK2JlZ2luY21hcAorL0NJRFN5c3RlbUluZm88PAorL1JlZ2lzdHJ5IChBZG9iZSkKKy9PcmRlcmluZyAoVUNTKQorL1N1cHBsZW1lbnQgMAorPj4gZGVmCisvQ01hcE5hbWUvQWRvYmUtSWRlbnRpdHktVUNTIGRlZgorL0NNYXBUeXBlIDIgZGVmCisxIGJlZ2luY29kZXNwYWNlcmFuZ2UKKzwwMD4gPEZGPgorZW5kY29kZXNwYWNlcmFuZ2UKKzUgYmVnaW5iZmNoYXIKKzwwMT4gPDA1REY+Cis8MDI+IDwwNUQ5PgorPDAzPiA8MDVERT4KKzwwND4gPDA1RTA+Cis8MDU+IDwwNUQxPgorZW5kYmZjaGFyCitlbmRjbWFwCitDTWFwTmFtZSBjdXJyZW50ZGljdCAvQ01hcCBkZWZpbmVyZXNvdXJjZSBwb3AKK2VuZAorZW5kCitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCA5CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTMxIDAwMDAwIG4gCiswMDAwMDAwMzA5IDAwMDAwIG4gCiswMDAwMDAwNDcxIDAwMDAwIG4gCiswMDAwMDAwNjc4IDAwMDAwIG4gCiswMDAwMDAwOTA1IDAwMDAwIG4gCiswMDAwMDA1MjM4IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDkKKz4+CitzdGFydHhyZWYKKzU2NjcKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9oZWxsb193b3JsZC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2hlbGxvX3dvcmxkLmluCmluZGV4IGQzY2YyNjUuLjc1NDgyMGEgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2hlbGxvX3dvcmxkLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2hlbGxvX3dvcmxkLmluCkBAIC02LDkgKzYsOSBAQAogZW5kb2JqCiB7e29iamVjdCAyIDB9fSA8PAogICAvVHlwZSAvUGFnZXMKLSAgL01lZGlhQm94IFsgMCAwIDIwMCAyMDAgXQorICAvTWVkaWFCb3ggWzAgMCAyMDAgMjAwXQogICAvQ291bnQgMQotICAvS2lkcyBbIDMgMCBSIF0KKyAgL0tpZHMgWzMgMCBSXQogPj4KIGVuZG9iagoge3tvYmplY3QgMyAwfX0gPDwKQEAgLTM2LDYgKzM2LDcgQEAKID4+CiBlbmRvYmoKIHt7b2JqZWN0IDYgMH19IDw8CisgICUgTm90ZSB0aGlzIG9iamVjdCBkZWxpYmVyYXRlbHkgZG9lcyBub3QgdXNlIHt7c3RyZWFtbGVufX0uCiA+Pgogc3RyZWFtCiBCVApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvaGVsbG9fd29ybGQucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvaGVsbG9fd29ybGQucGRmCmluZGV4IGRjZGU4ZjcuLjQ4YzcxNGIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2hlbGxvX3dvcmxkLnBkZgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9oZWxsb193b3JsZC5wZGYKQEAgLTcsOSArNyw5IEBACiBlbmRvYmoKIDIgMCBvYmogPDwKICAgL1R5cGUgL1BhZ2VzCi0gIC9NZWRpYUJveCBbIDAgMCAyMDAgMjAwIF0KKyAgL01lZGlhQm94IFswIDAgMjAwIDIwMF0KICAgL0NvdW50IDEKLSAgL0tpZHMgWyAzIDAgUiBdCisgIC9LaWRzIFszIDAgUl0KID4+CiBlbmRvYmoKIDMgMCBvYmogPDwKQEAgLTM3LDYgKzM3LDcgQEAKID4+CiBlbmRvYmoKIDYgMCBvYmogPDwKKyAgJSBOb3RlIHRoaXMgb2JqZWN0IGRlbGliZXJhdGVseSBkb2VzIG5vdCB1c2UgL0xlbmd0aCA4My4KID4+CiBzdHJlYW0KIEJUCkBAIC01NCwxMSArNTUsMTQgQEAKIDAwMDAwMDAwMDAgNjU1MzUgZiAKIDAwMDAwMDAwMTUgMDAwMDAgbiAKIDAwMDAwMDAwNjggMDAwMDAgbiAKLTAwMDAwMDAxNjEgMDAwMDAgbiAKLTAwMDAwMDAzMDMgMDAwMDAgbiAKLTAwMDAwMDAzODEgMDAwMDAgbiAKLTAwMDAwMDA0NTcgMDAwMDAgbiAKLXRyYWlsZXI8PCAvUm9vdCAxIDAgUiAvU2l6ZSA3ID4+CiswMDAwMDAwMTU3IDAwMDAwIG4gCiswMDAwMDAwMjk5IDAwMDAwIG4gCiswMDAwMDAwMzc3IDAwMDAwIG4gCiswMDAwMDAwNDUzIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDcKKz4+CiBzdGFydHhyZWYKLTU3OAorNjMzCiAlJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvaGVsbG9fd29ybGRfMl9wYWdlcy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2hlbGxvX3dvcmxkXzJfcGFnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWMzMzM1NAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2hlbGxvX3dvcmxkXzJfcGFnZXMuaW4KQEAgLTAsMCArMSw2NyBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDIKKyAgL0tpZHMgWzMgMCBSIDQgMCBSXQorICAvTWVkaWFCb3ggWzAgMCAyMDAgMjAwXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgICAgL0YyIDYgMCBSCisgICAgPj4KKyAgPj4KKyAgL0NvbnRlbnRzIDcgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgICAvRjIgNiAwIFIKKyAgICA+PgorICA+PgorICAvQ29udGVudHMgNyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0JUCisyMCA1MCBUZAorL0YxIDEyIFRmCisoSGVsbG8sIHdvcmxkISkgVGoKKzAgNTAgVGQKKy9GMiAxNiBUZgorKEdvb2RieWUsIHdvcmxkISkgVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvaGVsbG9fd29ybGRfMl9wYWdlcy5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9oZWxsb193b3JsZF8yX3BhZ2VzLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTQyZTNhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvaGVsbG9fd29ybGRfMl9wYWdlcy5wZGYKQEAgLTAsMCArMSw4MSBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFswIDAgMjAwIDIwMF0KKyAgL0NvdW50IDIKKyAgL0tpZHMgWzMgMCBSIDQgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgICAvRjIgNiAwIFIKKyAgICA+PgorICA+PgorICAvQ29udGVudHMgNyAwIFIKKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgICAgL0YyIDYgMCBSCisgICAgPj4KKyAgPj4KKyAgL0NvbnRlbnRzIDcgMCBSCis+PgorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuCis+PgorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorPj4KK2VuZG9iagorNyAwIG9iaiA8PAorICAvTGVuZ3RoIDgzCis+Pgorc3RyZWFtCitCVAorMjAgNTAgVGQKKy9GMSAxMiBUZgorKEhlbGxvLCB3b3JsZCEpIFRqCiswIDUwIFRkCisvRjIgMTYgVGYKKyhHb29kYnllLCB3b3JsZCEpIFRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKK3hyZWYKKzAgOAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDA2OCAwMDAwMCBuIAorMDAwMDAwMDE2MyAwMDAwMCBuIAorMDAwMDAwMDMwNSAwMDAwMCBuIAorMDAwMDAwMDQ0NyAwMDAwMCBuIAorMDAwMDAwMDUyNSAwMDAwMCBuIAorMDAwMDAwMDYwMSAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSA4Cis+Pgorc3RhcnR4cmVmCis3MzUKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9oZWxsb193b3JsZF8yX3BhZ2VzX3NoYXJlZF9yZXNvdXJjZXNfZGljdC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2hlbGxvX3dvcmxkXzJfcGFnZXNfc2hhcmVkX3Jlc291cmNlc19kaWN0LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljMzA3ODAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9oZWxsb193b3JsZF8yX3BhZ2VzX3NoYXJlZF9yZXNvdXJjZXNfZGljdC5pbgpAQCAtMCwwICsxLDY0IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMgorICAvS2lkcyBbMyAwIFIgNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgNSAwIFIKKyAgL0NvbnRlbnRzIDggMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgNSAwIFIKKyAgL0NvbnRlbnRzIDggMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvRm9udCA8PAorICAgIC9GMSA2IDAgUgorICAgIC9GMiA3IDAgUgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvVGltZXMtUm9tYW4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorQlQKKzIwIDUwIFRkCisvRjEgMTIgVGYKKyhIZWxsbywgd29ybGQhKSBUagorMCA1MCBUZAorL0YyIDE2IFRmCisoR29vZGJ5ZSwgd29ybGQhKSBUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9oZWxsb193b3JsZF8yX3BhZ2VzX3NoYXJlZF9yZXNvdXJjZXNfZGljdC5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9oZWxsb193b3JsZF8yX3BhZ2VzX3NoYXJlZF9yZXNvdXJjZXNfZGljdC5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDZiMjUzMQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2hlbGxvX3dvcmxkXzJfcGFnZXNfc2hhcmVkX3Jlc291cmNlc19kaWN0LnBkZgpAQCAtMCwwICsxLDc5IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMgorICAvS2lkcyBbMyAwIFIgNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1Jlc291cmNlcyA1IDAgUgorICAvQ29udGVudHMgOCAwIFIKKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDUgMCBSCisgIC9Db250ZW50cyA4IDAgUgorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvRm9udCA8PAorICAgIC9GMSA2IDAgUgorICAgIC9GMiA3IDAgUgorICA+PgorPj4KK2VuZG9iagorNiAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgorPj4KK2VuZG9iagorNyAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKz4+CitlbmRvYmoKKzggMCBvYmogPDwKKyAgL0xlbmd0aCA4MworPj4KK3N0cmVhbQorQlQKKzIwIDUwIFRkCisvRjEgMTIgVGYKKyhIZWxsbywgd29ybGQhKSBUagorMCA1MCBUZAorL0YyIDE2IFRmCisoR29vZGJ5ZSwgd29ybGQhKSBUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit4cmVmCiswIDkKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxNjMgMDAwMDAgbiAKKzAwMDAwMDAyNTEgMDAwMDAgbiAKKzAwMDAwMDAzMzkgMDAwMDAgbiAKKzAwMDAwMDA0MDQgMDAwMDAgbiAKKzAwMDAwMDA0ODIgMDAwMDAgbiAKKzAwMDAwMDA1NTggMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgOQorPj4KK3N0YXJ0eHJlZgorNjkyCislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvaGVsbG9fd29ybGRfMl9wYWdlc19zcGxpdF9zdHJlYW1zLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvaGVsbG9fd29ybGRfMl9wYWdlc19zcGxpdF9zdHJlYW1zLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmNjhmNWMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9oZWxsb193b3JsZF8yX3BhZ2VzX3NwbGl0X3N0cmVhbXMuaW4KQEAgLTAsMCArMSw3NSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDIKKyAgL0tpZHMgWzMgMCBSIDQgMCBSXQorICAvTWVkaWFCb3ggWzAgMCAyMDAgMjAwXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgICAgL0YyIDYgMCBSCisgICAgPj4KKyAgPj4KKyAgL0NvbnRlbnRzIDcgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgICAvRjIgNiAwIFIKKyAgICA+PgorICA+PgorICAvQ29udGVudHMgNyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IFs4IDAgUiA5IDAgUl0KK3t7b2JqZWN0IDggMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0JUCisyMCA1MCBUZAorL0YxIDEyIFRmCisoSGVsbG8sIHdvcmxkISkgVGoKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitCVAorMjAgMTAwIFRkCisvRjIgMTYgVGYKKyhHb29kYnllLCB3b3JsZCEpIFRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2hlbGxvX3dvcmxkXzJfcGFnZXNfc3BsaXRfc3RyZWFtcy5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9oZWxsb193b3JsZF8yX3BhZ2VzX3NwbGl0X3N0cmVhbXMucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhYzgyOWYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9oZWxsb193b3JsZF8yX3BhZ2VzX3NwbGl0X3N0cmVhbXMucGRmCkBAIC0wLDAgKzEsOTEgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAyCisgIC9LaWRzIFszIDAgUiA0IDAgUl0KKyAgL01lZGlhQm94IFswIDAgMjAwIDIwMF0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgICAgL0YyIDYgMCBSCisgICAgPj4KKyAgPj4KKyAgL0NvbnRlbnRzIDcgMCBSCis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvRjEgNSAwIFIKKyAgICAgIC9GMiA2IDAgUgorICAgID4+CisgID4+CisgIC9Db250ZW50cyA3IDAgUgorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgorPj4KK2VuZG9iagorNiAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKz4+CitlbmRvYmoKKzcgMCBvYmogWzggMCBSIDkgMCBSXQorOCAwIG9iaiA8PAorICAvTGVuZ3RoIDQxCis+Pgorc3RyZWFtCitCVAorMjAgNTAgVGQKKy9GMSAxMiBUZgorKEhlbGxvLCB3b3JsZCEpIFRqCitlbmRzdHJlYW0KK2VuZG9iagorOSAwIG9iaiA8PAorICAvTGVuZ3RoIDQ3Cis+Pgorc3RyZWFtCitCVAorMjAgMTAwIFRkCisvRjIgMTYgVGYKKyhHb29kYnllLCB3b3JsZCEpIFRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKK3hyZWYKKzAgMTAKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxNjMgMDAwMDAgbiAKKzAwMDAwMDAzMDUgMDAwMDAgbiAKKzAwMDAwMDA0NDcgMDAwMDAgbiAKKzAwMDAwMDA1MjUgMDAwMDAgbiAKKzAwMDAwMDA2MDEgMDAwMDAgbiAKKzAwMDAwMDA2MjMgMDAwMDAgbiAKKzAwMDAwMDA3MTUgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgMTAKKz4+CitzdGFydHhyZWYKKzgxMworJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2lua19hbm5vdC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2lua19hbm5vdC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYTkwYjI5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvaW5rX2Fubm90LmluCkBAIC0wLDAgKzEsNDggQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0Fubm90cyBbCisgICAgNCAwIFIgNSAwIFIKKyAgXQorICAvVGFicyAvUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9JbmsKKyAgL05NIChJbmstMSkKKyAgL0YgNAorICAvSW5rTGlzdCBbWzE1OSAyOTYgMzUwIDQxMSA0NzIgMjQzLjQyXV0KKyAgL1AgMyAwIFIKKyAgL0MgWzEgMC45MDE5NiAwXQorICAvUmVjdCBbMjkzIDUzMCAzNDkgNTQyXQorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9JbmsKKyAgL05NIChJbmstMikKKyAgL0YgNAorICAvSW5rTGlzdCBbWzI1OSAzOTYgNDUwIDUxMSA1NzIgMzQzIDQyXV0KKyAgL1AgMyAwIFIKKyAgL0MgWzEgMC45MDE5NiAwXQorICAvUmVjdCBbMjkzIDUzMCAzNDkgNTQyXQorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvaW5rX2Fubm90LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2lua19hbm5vdC5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA2ZjI4ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2lua19hbm5vdC5wZGYKQEAgLTAsMCArMSw2MCBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9Bbm5vdHMgWworICAgIDQgMCBSIDUgMCBSCisgIF0KKyAgL1RhYnMgL1IKKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9JbmsKKyAgL05NIChJbmstMSkKKyAgL0YgNAorICAvSW5rTGlzdCBbWzE1OSAyOTYgMzUwIDQxMSA0NzIgMjQzLjQyXV0KKyAgL1AgMyAwIFIKKyAgL0MgWzEgMC45MDE5NiAwXQorICAvUmVjdCBbMjkzIDUzMCAzNDkgNTQyXQorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0luaworICAvTk0gKEluay0yKQorICAvRiA0CisgIC9JbmtMaXN0IFtbMjU5IDM5NiA0NTAgNTExIDU3MiAzNDMgNDJdXQorICAvUCAzIDAgUgorICAvQyBbMSAwLjkwMTk2IDBdCisgIC9SZWN0IFsyOTMgNTMwIDM0OSA1NDJdCis+PgorZW5kb2JqCit4cmVmCiswIDYKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxMzEgMDAwMDAgbiAKKzAwMDAwMDAyNTEgMDAwMDAgbiAKKzAwMDAwMDA0MjIgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgNgorPj4KK3N0YXJ0eHJlZgorNTkzCislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9hbm5vdF9wcm9wZXJ0aWVzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9hbm5vdF9wcm9wZXJ0aWVzLmluCmluZGV4IDkzOTM2NWMuLmUxNDNhYzggMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYW5ub3RfcHJvcGVydGllcy5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2Fubm90X3Byb3BlcnRpZXMuaW4KQEAgLTc0LDYgKzc0LDE1IEBACiB9IGNhdGNoIChlKSB7CiAgIGFwcC5hbGVydCgiRVJST1I6ICIgKyBlKTsKIH0KK2FwcC5hbGVydCgiVGVzdCBzZXR0aW5nIGVtcHR5IG5hbWUgdW5kZXIgY2hhbmdlZCBuYW1lIik7Cit0cnkgeworICB2YXIgYW5ub3QgPSB0aGlzLmdldEFubm90KDAsICJub25lc3VjaCIpOworICBhbm5vdC5uYW1lID0gIiI7CisgIGFwcC5hbGVydCgibmFtZSBhZnRlciBlbXB0eSBuYW1lIGNoYW5nZTogIiArIGFubm90Lm5hbWUpOworfSBjYXRjaCAoZSkgeworICBhcHAuYWxlcnQoIkVSUk9SOiAiICsgZSk7Cit9CisKIGVuZHN0cmVhbQogZW5kb2JqCiB7e29iamVjdCAyMiAwfX0gPDwKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYW5ub3RfcHJvcGVydGllc19leHBlY3RlZC50eHQgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2Fubm90X3Byb3BlcnRpZXNfZXhwZWN0ZWQudHh0CmluZGV4IDU0NTQ4ZTYuLjI1MmZkMmIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYW5ub3RfcHJvcGVydGllc19leHBlY3RlZC50eHQKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9hbm5vdF9wcm9wZXJ0aWVzX2V4cGVjdGVkLnR4dApAQCAtMTQsMyArMTQsNSBAQAogQWxlcnQ6IFNVQ0NFU1M6IERvY3VtZW50LmdldEFubm90OiBPYmplY3Qgbm8gbG9uZ2VyIGV4aXN0cy4KIEFsZXJ0OiBUZXN0IGxvb2t1cCB1bmRlciBjaGFuZ2VkIG5hbWUKIEFsZXJ0OiBub25lc3VjaCBhZnRlciBuYW1lIGNoYW5nZTogb2JqZWN0CitBbGVydDogVGVzdCBzZXR0aW5nIGVtcHR5IG5hbWUgdW5kZXIgY2hhbmdlZCBuYW1lCitBbGVydDogbmFtZSBhZnRlciBlbXB0eSBuYW1lIGNoYW5nZTogCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2FwcF9tZXRob2RzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9hcHBfbWV0aG9kcy5pbgppbmRleCA4MWZhNjYwLi4xYzAxZTg0IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2FwcF9tZXRob2RzLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYXBwX21ldGhvZHMuaW4KQEAgLTE5LDYgKzE5LDcgQEAKICAgL1BhcmVudCAyIDAgUgogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KK2VuZG9iagogJSBPcGVuQWN0aW9uIGFjdGlvbgoge3tvYmplY3QgMTAgMH19IDw8CiAgIC9UeXBlIC9BY3Rpb24KQEAgLTI2LDcgKzI3LDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KQEAgLTM0LDcgKzM1LDggQEAKIHt7aW5jbHVkZSBleHBlY3QuanN9fQogCiB0cnkgewotICBleHBlY3QoImFwcC5hbGVydCgnbWVzc2FnZScsIDEsIDIsICd0aXRsZScpIiwgMCk7CisgIC8vIFRlc3QgdW5pY29kZSBzdXBwb3J0LCBubyBwYXJ0aWN1bGFyIHJlYXNvbiBmb3IgdGhlc2UgQ0pLIGNoYXJhY3RlcnMuCisgIGV4cGVjdCgiYXBwLmFsZXJ0KCdtZXNzYWdlIFx1NDAyMycsIDEsIDIsICd0aXRsZSBcdTQwMjQnKSIsIDApOwogICBleHBlY3QoImFwcC5hbGVydCh7J2NNc2cnOiAnbWVzc2FnZScsICdjVGl0bGUnOiAndGl0bGUnfSkiLCAwKTsKICAgZXhwZWN0KCJhcHAuYWxlcnQoeydjTXNnJzogJ21lc3NhZ2UnLCAnY1RpdGxlJzogJ3RpdGxlJywgJ25JY29uJzogMywgJ25UeXBlJzogNH0pIiwgMCk7CiAgIGV4cGVjdCgiYXBwLmFsZXJ0KHVuZGVmaW5lZCkiLCAwKTsKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYXBwX21ldGhvZHNfZXhwZWN0ZWQudHh0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9hcHBfbWV0aG9kc19leHBlY3RlZC50eHQKaW5kZXggMDE1ZmYyOC4uODZmYjNhOSAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9hcHBfbWV0aG9kc19leHBlY3RlZC50eHQKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9hcHBfbWV0aG9kc19leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACi10aXRsZVtpY29uPTEsdHlwZT0yXTogbWVzc2FnZQotQWxlcnQ6IFBBU1M6IGFwcC5hbGVydCgnbWVzc2FnZScsIDEsIDIsICd0aXRsZScpID0gMAordGl0bGUg5ICkW2ljb249MSx0eXBlPTJdOiBtZXNzYWdlIOSAoworQWxlcnQ6IFBBU1M6IGFwcC5hbGVydCgnbWVzc2FnZSDkgKMnLCAxLCAyLCAndGl0bGUg5ICkJykgPSAwCiB0aXRsZTogbWVzc2FnZQogQWxlcnQ6IFBBU1M6IGFwcC5hbGVydCh7J2NNc2cnOiAnbWVzc2FnZScsICdjVGl0bGUnOiAndGl0bGUnfSkgPSAwCiB0aXRsZVtpY29uPTMsdHlwZT00XTogbWVzc2FnZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9hcHBfcHJvcGVydGllcy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYXBwX3Byb3BlcnRpZXMuaW4KaW5kZXggMTM1NWU2NC4uMjkwZmMyNCAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9hcHBfcHJvcGVydGllcy5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2FwcF9wcm9wZXJ0aWVzLmluCkBAIC0yNSw2ICsyNSw3IEBACiAgID4+CiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgorZW5kb2JqCiAlIFBhZ2UgbnVtYmVyIDEuCiB7e29iamVjdCA0IDB9fSA8PAogICAvVHlwZSAvUGFnZQpAQCAtMzQsNiArMzUsNyBAQAogICA+PgogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KK2VuZG9iagogJSBQYWdlIG51bWJlciAyLgoge3tvYmplY3QgNSAwfX0gPDwKICAgL1R5cGUgL1BhZ2UKQEAgLTQzLDYgKzQ1LDcgQEAKICAgPj4KICAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KID4+CitlbmRvYmoKICUgUGFnZSBudW1iZXIgMy4KIHt7b2JqZWN0IDYgMH19IDw8CiAgIC9UeXBlIC9QYWdlCkBAIC01Miw2ICs1NSw3IEBACiAgID4+CiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgorZW5kb2JqCiAKICUgSW5mbwoge3tvYmplY3QgOSAwfX0gPDwKQEAgLTY2LDcgKzcwLDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYXBwbHkuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2FwcGx5LmluCmluZGV4IGQ5NDRlODMuLmU4ZWM1ZTIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYXBwbHkuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9hcHBseS5pbgpAQCAtMjMsNiArMjMsNyBAQAogICAvQ29udGVudHMgWzIxIDAgUl0KICAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KID4+CitlbmRvYmoKICUgT3BlbkFjdGlvbiBhY3Rpb24KIHt7b2JqZWN0IDEwIDB9fSA8PAogICAvVHlwZSAvQWN0aW9uCkBAIC0zMCw3ICszMSw3IEBACiAgIC9KUyAxMSAwIFIKID4+CiBlbmRvYmoKLSUgSlMgcHJvZ3JhbSB0byBleGV4dXRlCislIEpTIHByb2dyYW0gdG8gZXhlY3V0ZQoge3tvYmplY3QgMTEgMH19IDw8CiAgIHt7c3RyZWFtbGVufX0KID4+CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2FycmF5X2J1ZmZlci5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYXJyYXlfYnVmZmVyLmluCmluZGV4IDA2MzcxYmEuLjM3OTBjNmMgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYXJyYXlfYnVmZmVyLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYXJyYXlfYnVmZmVyLmluCkBAIC0yMyw2ICsyMyw3IEBACiAgIC9Db250ZW50cyBbMjEgMCBSXQogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KK2VuZG9iagogJSBPcGVuQWN0aW9uIGFjdGlvbgoge3tvYmplY3QgMTAgMH19IDw8CiAgIC9UeXBlIC9BY3Rpb24KQEAgLTMwLDcgKzMxLDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzEwOTgyMTMuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xMDk4MjEzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjOTkzMTEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xMDk4MjEzLmluCkBAIC0wLDAgKzEsNjUgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvT3BlbkFjdGlvbiA4IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAyCisgIC9LaWRzIFsKKyAgICAzIDAgUgorICAgIDQgMCBSCisgIF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0Nyb3BCb3ggWzE3OSAxNzMgMjAwIDc1XQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ3JvcEJveCBbMTI3IDIxNCAxODYgMjldCisgIC9Bbm5vdHMgWworICAgIDUgMCBSCisgICAgNiAwIFIKKyAgICA3IDAgUgorICBdCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKz4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL0Fubm90Cis+PgorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9UeXBlIC9BY3Rpb24KKyAgL1MgL0phdmFTY3JpcHQKKyAgL0pTICgKKyAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAxLCB7CisgICAgICBzZXQ6ICh2KSA9PiB7CisgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsIDEsIHsKKyAgICAgICAgICBnZXQ6ICgpID0+IHt9CisgICAgICAgIH0pOworICAgICAgfQorICAgIH0pOworICAgIHRyeSB7IHRoaXMuZ2V0QW5ub3RzKCk7IH0gY2F0Y2ggKGUpIHsgYXBwLmFsZXJ0KCdDYXVnaHQ6ICcgKyBlKTsgfQorICAgIGFwcC5hbGVydCgnRG9uZScpOworICApCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xMDk4MjEzX2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzEwOTgyMTNfZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZTE4MTgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xMDk4MjEzX2V4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitBbGVydDogRG9uZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfMTE0MjY4OC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzExNDI2ODguaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQzODI1ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzExNDI2ODguaW4KQEAgLTAsMCArMSw3OCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDUgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWworICAgICAgMyAwIFIKKyAgICAgIDIgMCBSCisgICAgXQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9UeAorICAvVCAodGYxKQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9UeAorICAvVCAodGYwKQorICAvQUEgPDwKKyAgICAvRiAxMCAwIFIKKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMgorICAvS2lkcyBbCisgICAgOCAwIFIKKyAgICA5IDAgUgorICBdCis+PgorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDUgMCBSCisgIC9Bbm5vdHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCA1IDAgUgorICAvQW5ub3RzIFsyIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEwIDB9fSA8PAorICAvVHlwZSAvQWN0aW9uCisgIC9TIC9KYXZhU2NyaXB0CisgIC9KUyAxMyAwIFIKKz4+Cit7e29iamVjdCAxMyAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorZnVuY3Rpb24gZjMoKSB7CisgIC8vIFNldHVwIGR1YmlvdXMgdmFsdWVzIGluIGV2ZW50IHJlY29yZGVyLgorICB0cnkgeyBBRlNwZWNpYWxfRm9ybWF0KDIpOyB9IGNhdGNoKGUpIHt9CisgIHRyeSB7IEFGTnVtYmVyX0Zvcm1hdCgtMzAyOTA3NDc3LDAsMSwtNiwiIix0cnVlKTsgfSBjYXRjaChlKSB7fQorCisgIC8vIEV4aGF1c3QgY2FsbCBzdGFjaywgdGhlbiBkbyB3b3JrIHVwb24gZXhpdGluZyBlYWNoIGZyYW1lLiBUaGUKKyAgLy8gb2JqZWN0aXZlIGlzIHRvIGdldCBhbnkgY2FsbCgpIG1hZGUgdW5kZXIgdGhlIGNvdmVycyB0byB0aHJvdworICAvLyB3aXRoIGEgc3RhY2sgc2l6ZSBleGNlcHRpb24uCisgIHRyeSB7IGYzKCk7IH0gY2F0Y2goZSkge30KKyAgdHJ5IHsgQUZEYXRlX0tleXN0cm9rZSgieXltbS1kZCIpOyB9IGNhdGNoKGUpIHt9Cit9CitmMygpOworYXBwLmFsZXJ0KCdEb25lLicpOworZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzExNDI2ODhfZXhwZWN0ZWQudHh0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfMTE0MjY4OF9leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NiMzJjYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzExNDI2ODhfZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK0FsZXJ0OiBEb25lLgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfMTMxNDY1OC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzEzMTQ2NTguaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA1YjNlZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzEzMTQ2NTguaW4KQEAgLTAsMCArMSwyOSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL10KKyAgL1N1YnR5cGUgL1dpZGdldAorICAvVCAoMCkKKyAgL0ZUIC9DaAorICAvQUEgPDwKKyAgICAvRiA1IDAgUgorICA+PgorICAvQW5ub3RzIDQgMCBSCis0IDAgb2JqIFszIDAgUiAvRmYgMzkzMjE2XQorICAvQVA8PC9OPDw+Pgorc3RyZWFtCit7e29iamVjdCA1IDB9fSA8PAorICAvSlMgKGFwcC5hbGVydCgnZG9uZScpKQorPj4KK2VuZG9iagore3t0cmFpbGVyfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xMzE0NjU4X2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzEzMTQ2NThfZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhYTFlY2EKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xMzE0NjU4X2V4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitBbGVydDogZG9uZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfMTMzNTY4MS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzEzMzU2ODEuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU0ZTU5NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzEzMzU2ODEuaW4KQEAgLTAsMCArMSwzOCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1BhZ2VzIDEgMCBSCisgIC9PcGVuQWN0aW9uIDIgMCBSCisgIC9OYW1lcyA8PAorICAgICAgL0Rlc3RzIDMgMCBSCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvQWN0aW9uCisgIC9TIC9KYXZhU2NyaXB0CisgIC9KUyAoCisgICAgYXBwLmFsZXJ0XCgiU3RhcnRpbmciXCk7CisgICAgdGhpcy5nb3RvTmFtZWREZXN0XCgiIlwpOworICApCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvS2lkcyA0IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gWworICA8PCA+PgorICA8PCA+PgorICA8PAorICAgIC9LaWRzIFsKKyAgICAgIDw8CisgICAgICAgIC9MaW1pdHMgNCAwIFIKKyAgICAgID4+CisgICAgXQorICA+PgorXQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xMzM1NjgxX2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzEzMzU2ODFfZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwYTY5NTEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xMzM1NjgxX2V4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitBbGVydDogU3RhcnRpbmcKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzEzNTgwNzUuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xMzU4MDc1LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1MDNiZjIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xMzU4MDc1LmluCkBAIC0wLDAgKzEsMzkgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9QYWdlcyAxIDAgUgorICAvT3BlbkFjdGlvbiAyIDAgUgorICAvTmFtZXMgPDwKKyAgICAvRGVzdHMgMyAwIFIKKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9BY3Rpb24KKyAgL1MgL0phdmFTY3JpcHQKKyAgL0pTICgKKyAgICAgICAgdGhpcy5nb3RvTmFtZWREZXN0XCgiMiJcKTsKKyAgICAgICAgYXBwLmFsZXJ0XCgiY29tcGxldGVkIlwpOworICApCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvS2lkcyA0IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gWworICAoMSkKKyAgKDMpCisgIDw8CisgICAgL0tpZHMgWworICAgICAgPDwKKyAgICAgICAgL0xpbWl0cyA0IDAgUgorICAgICAgICAvTmFtZXMgWygyKSBbXV0KKyAgICAgID4+CisgICAgXQorICA+PgorXQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xMzU4MDc1X2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzEzNTgwNzVfZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzZDQ2MGIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xMzU4MDc1X2V4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitBbGVydDogY29tcGxldGVkCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xNDQ1NDI2LmV2dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzE0NDU0MjYuZXZ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NWU4NWIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xNDQ1NDI2LmV2dApAQCAtMCwwICsxLDMgQEAKK21vdXNlZG93bixsZWZ0LDIwMiw2OTcKK21vdXNldXAsbGVmdCwyMDIsNjk3CitrZXljb2RlLDQwCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18xNDQ1NDI2LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfMTQ0NTQyNi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDgzZGE3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfMTQ0NTQyNi5pbgpAQCAtMCwwICsxLDExNCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA0IDAgUgorICAvT3BlbkFjdGlvbiA0MCAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMgorICAvS2lkcyBbCisgICAgMzIgMCBSCisgICAgMzQgMCBSCisgIF0KKz4+CitlbmRvYmoKKyUgRm9ybXMKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9GaWVsZHMgWworICAgIDEwIDAgUgorICAgIDExIDAgUgorICBdCis+PgorZW5kb2JqCislIEZpZWxkcwore3tvYmplY3QgMTAgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvVHgKKyAgL1QgKEZpZWxkX1RleHRFZGl0KQorICAvUmVjdCBbMCAwIDYxMiA3OTJdCis+Pgore3tvYmplY3QgMTEgMH19IDw8CisgIC9UIChGaWVsZF9Db21ib0JveCkKKyAgL1BhcmVudCA0IDAgUgorICAvS2lkcyBbMTIgMCBSXQorICAvT3B0IFsoYSkgKGIpIChjKSAoZCldCisgIC9WIFsoYSldCis+PgorZW5kb2JqCit7e29iamVjdCAxMiAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9DaAorICAvRmYgMTMxMDcyCisgIC9QYXJlbnQgMTEgMCBSCisgIC9LaWRzIFsxMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAxMyAwfX0gPDwKKyAgL1BhcmVudCAxMiAwIFIKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL1JlY3QgWzAgMCA2MTIgNzkyXQorICAvQUEgPDwgL0sgMjAgMCBSID4+Cis+PgorZW5kb2JqCislIFBhZ2VzCit7e29iamVjdCAzMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvQW5ub3RzIFsxMyAwIFJdCisKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDM0IDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9Bbm5vdHMgWzEwIDAgUl0KKz4+CitlbmRvYmoKKyUgRG9jdW1lbnQgSlMgQWN0aW9uCit7e29iamVjdCA0MCAwfX0gPDwKKyAgL1R5cGUgL0FjdGlvbgorICAvUyAvSmF2YVNjcmlwdAorICAvSlMgNDEgMCBSCis+PgorZW5kb2JqCislIEpTIHByb2dyYW0gdG8gZXhleHV0ZQore3tvYmplY3QgNDEgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3ZhciBmaWVsZF90ZXh0ID0gdGhpcy5nZXRGaWVsZCgiRmllbGRfVGV4dEVkaXQiKTsKK3ZhciBmaWVsZF9jb21ib2JveCA9IHRoaXMuZ2V0RmllbGQoIkZpZWxkX0NvbWJvQm94Iik7CitmaWVsZF9jb21ib2JveC5zZXRGb2N1cygpOwordGhpcy5fX2RlZmluZUdldHRlcl9fKCJmaWxlc2l6ZSIsIGZ1bmN0aW9uIG5ld19nZXR0ZXIoKXsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkX3RleHQuc2V0Rm9jdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkX2NvbWJvYm94LmJvcmRlclN0eWxlPSJkYXNoZWQiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRfY29tYm9ib3guc2V0Rm9jdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKK2VuZHN0cmVhbQorZW5kb2JqCislIE9wZW5BY3Rpb24gYWN0aW9uCit7e29iamVjdCAyMCAwfX0gPDwKKyAgL1MgL0phdmFTY3JpcHQKKyAgL0pTIDIxIDAgUgorPj4KK2VuZG9iagorJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKK3t7b2JqZWN0IDIxIDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit2YXIgdCA9IHRoaXMuZmlsZXNpemU7CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfMzYxLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfMzYxLmluCmluZGV4IDRhZjg2YTYuLjM4NjE0MmEgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzM2MS5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z18zNjEuaW4KQEAgLTI0LDEwICsyNCwxMiBAQAogICAvQ29udGVudHMgWzIxIDAgUl0KICAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KID4+CitlbmRvYmoKICUgRm9ybXMKIHt7b2JqZWN0IDQgMH19IDw8CiAgIC9GaWVsZHMgWzUgMCBSXQogPj4KK2VuZG9iagogJSBGaWVsZAoge3tvYmplY3QgNSAwfX0gPDwKICAvRlQgL1R4CkBAIC0zNiw2ICszOCw3IEBACiAgL1N1YnR5cGUgL1dpZGdldAogIC9SZWN0IFsxMDAgMjAwIDE1MCAyNTBdCiA+PgorZW5kb2JqCiAlIE9wZW5BY3Rpb24gYWN0aW9uCiB7e29iamVjdCAxMCAwfX0gPDwKICAgL1R5cGUgL0FjdGlvbgpAQCAtNDMsNyArNDYsNyBAQAogICAvSlMgMTEgMCBSCiA+PgogZW5kb2JqCi0lIEpTIHByb2dyYW0gdG8gZXhleHV0ZQorJSBKUyBwcm9ncmFtIHRvIGV4ZWN1dGUKIHt7b2JqZWN0IDExIDB9fSA8PAogICB7e3N0cmVhbWxlbn19CiA+PgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfNDkyXzEuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z180OTJfMS5pbgppbmRleCA5ZDQ4YWQ1Li40YjgwMjZmIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z180OTJfMS5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z180OTJfMS5pbgpAQCAtNTAsNyArNTAsNyBAQAogICAvSlMgMjEgMCBSCiA+PgogZW5kb2JqCi0lIEpTIHByb2dyYW0gdG8gZXhleHV0ZQorJSBKUyBwcm9ncmFtIHRvIGV4ZWN1dGUKIHt7b2JqZWN0IDIxIDB9fSA8PAogICB7e3N0cmVhbWxlbn19CiA+PgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfNDk0MDU3LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfNDk0MDU3LmluCmluZGV4IGJiZmExM2UuLjM2MTVkMDMgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzQ5NDA1Ny5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z180OTQwNTcuaW4KQEAgLTg3LDcgKzg3LDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzY3OTY0Mi5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzY3OTY0Mi5pbgppbmRleCA2NDRhMjU5Li5iNjNjYjcwIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z182Nzk2NDIuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfNjc5NjQyLmluCkBAIC04Niw3ICs4Niw3IEBACiAgIC9KUyAxMSAwIFIKID4+CiBlbmRvYmoKLSUgSlMgcHJvZ3JhbSB0byBleGV4dXRlCislIEpTIHByb2dyYW0gdG8gZXhlY3V0ZQoge3tvYmplY3QgMTEgMH19IDw8CiAgIHt7c3RyZWFtbGVufX0KID4+CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z182Nzk2NDMuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z182Nzk2NDMuaW4KaW5kZXggYzYwZmMwZi4uNWViZTMxMiAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfNjc5NjQzLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzY3OTY0My5pbgpAQCAtODYsNyArODYsNyBAQAogICAvSlMgMTEgMCBSCiA+PgogZW5kb2JqCi0lIEpTIHByb2dyYW0gdG8gZXhleHV0ZQorJSBKUyBwcm9ncmFtIHRvIGV4ZWN1dGUKIHt7b2JqZWN0IDExIDB9fSA8PAogICB7e3N0cmVhbWxlbn19CiA+PgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfNjk1ODI2LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfNjk1ODI2LmluCmluZGV4IGUxN2VhZjEuLjlkMzJiZTcgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzY5NTgyNi5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z182OTU4MjYuaW4KQEAgLTIzLDYgKzIzLDcgQEAKICAgL0NvbnRlbnRzIFsyMSAwIFJdCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgorZW5kb2JqCiAlIE9wZW5BY3Rpb24gYWN0aW9uCiB7e29iamVjdCAxMCAwfX0gPDwKICAgL1R5cGUgL0FjdGlvbgpAQCAtMzAsNyArMzEsNyBAQAogICAvSlMgMTEgMCBSCiA+PgogZW5kb2JqCi0lIEpTIHByb2dyYW0gdG8gZXhleHV0ZQorJSBKUyBwcm9ncmFtIHRvIGV4ZWN1dGUKIHt7b2JqZWN0IDExIDB9fSA8PAogICB7e3N0cmVhbWxlbn19CiA+PgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfNzM1OTEyLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfNzM1OTEyLmluCmluZGV4IDA2YmQ5YTMuLmYzZGI1YTIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzczNTkxMi5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z183MzU5MTIuaW4KQEAgLTUzLDcgKzUzLDcgQEAKICAgL0pTIDMxIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAzMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KQEAgLTY5LDcgKzY5LDcgQEAKICAgL0pTIDM1IDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAzNSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KQEAgLTg1LDcgKzg1LDcgQEAKICAgL0pTIDM3IDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAzNyAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzc0MDE2Ni5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzc0MDE2Ni5pbgppbmRleCA0MjUzNzRkLi42ZjBjODI5IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2J1Z183NDAxNjYuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfNzQwMTY2LmluCkBAIC0yNCwxMCArMjQsMTIgQEAKICAgL0NvbnRlbnRzIFsyMSAwIFJdCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgorZW5kb2JqCiAlIEZvcm1zCiB7e29iamVjdCA0IDB9fSA8PAogICAvRmllbGRzIFs1IDAgUl0KID4+CitlbmRvYmoKICUgRmllbGQKIHt7b2JqZWN0IDUgMH19IDw8CiAgL0ZUIC9UeApAQCAtMzYsNiArMzgsNyBAQAogIC9TdWJ0eXBlIC9XaWRnZXQKICAvUmVjdCBbMTAwIDIwMCAxNTAgMjUwXQogPj4KK2VuZG9iagogJSBPcGVuQWN0aW9uIGFjdGlvbgoge3tvYmplY3QgMTAgMH19IDw8CiAgIC9UeXBlIC9BY3Rpb24KQEAgLTQzLDcgKzQ2LDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvYnVnXzk1OTI3NF8xLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfOTU5Mjc0XzEuaW4KaW5kZXggNzQ5MDljMC4uOWVmYjlkYyAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfOTU5Mjc0XzEuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9idWdfOTU5Mjc0XzEuaW4KQEAgLTIzLDYgKzIzLDcgQEAKICAgL0NvbnRlbnRzIFsyMSAwIFJdCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgorZW5kb2JqCiAlIE9wZW5BY3Rpb24gYWN0aW9uCiB7e29iamVjdCAxMCAwfX0gPDwKICAgL1R5cGUgL0FjdGlvbgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9jb2xvcl9tZXRob2RzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9jb2xvcl9tZXRob2RzLmluCmluZGV4IGJmMDNiYjQuLjQ0YWZjZWQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvY29sb3JfbWV0aG9kcy5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2NvbG9yX21ldGhvZHMuaW4KQEAgLTI3LDcgKzI3LDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvY29sb3JfcHJvcGVydGllcy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvY29sb3JfcHJvcGVydGllcy5pbgppbmRleCA3ZDA5NjU2Li4wZmVhODFlIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2NvbG9yX3Byb3BlcnRpZXMuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9jb2xvcl9wcm9wZXJ0aWVzLmluCkBAIC0yMCw2ICsyMCw3IEBACiAgIC9Db250ZW50cyBbMjEgMCBSXQogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KK2VuZG9iagogJSBPcGVuQWN0aW9uIGFjdGlvbgoge3tvYmplY3QgMTAgMH19IDw8CiAgIC9UeXBlIC9BY3Rpb24KQEAgLTI3LDcgKzI4LDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvY29uc29sZV9tZXRob2RzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9jb25zb2xlX21ldGhvZHMuaW4KaW5kZXggMGZiYmEzZi4uMGRjNzRlMyAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9jb25zb2xlX21ldGhvZHMuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9jb25zb2xlX21ldGhvZHMuaW4KQEAgLTI3LDcgKzI3LDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvY29uc3RydWN0b3IuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2NvbnN0cnVjdG9yLmluCmluZGV4IDEyMTFmODkuLjkwYzQxYzAgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvY29uc3RydWN0b3IuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9jb25zdHJ1Y3Rvci5pbgpAQCAtMTksNiArMTksNyBAQAogICAvUGFyZW50IDIgMCBSCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgorZW5kb2JqCiAlIE9wZW5BY3Rpb24gYWN0aW9uCiB7e29iamVjdCAxMCAwfX0gPDwKICAgL1R5cGUgL0FjdGlvbgpAQCAtMjYsMzQgKzI3LDE4IEBACiAgIC9KUyAxMSAwIFIKID4+CiBlbmRvYmoKLSUgSlMgcHJvZ3JhbSB0byBleGV4dXRlCislIEpTIHByb2dyYW0gdG8gZXhlY3V0ZQoge3tvYmplY3QgMTEgMH19IDw8CiAgIHt7c3RyZWFtbGVufX0KID4+CiBzdHJlYW0KLWZ1bmN0aW9uIHRlc3RJbGxlZ2FsQ29uc3RydWN0b3IobmFtZSwgYWxsb3dlZCkgewotICBjb25zdCBjb25zdHJ1Y3RvclN0cmluZyA9IG5hbWUgKyAiLmNvbnN0cnVjdG9yIjsKLSAgbGV0IGNvbnN0cnVjdG9yOwotICB0cnkgewotICAgIGNvbnN0cnVjdG9yID0gZXZhbChjb25zdHJ1Y3RvclN0cmluZyk7Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICBhcHAuYWxlcnQoIkZBSUw6IE5vIHN1Y2ggIiArIGNvbnN0cnVjdG9yU3RyaW5nKTsKLSAgICByZXR1cm47Ci0gIH0KLSAgdHJ5IHsKLSAgICBjb25zdHJ1Y3RvcigpOwotICAgIGFwcC5hbGVydCgiRkFJTDogIiArIGNvbnN0cnVjdG9yU3RyaW5nICsgIigpOiByZXR1cm5lZCIpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgYXBwLmFsZXJ0KCJQQVNTOiAiICsgY29uc3RydWN0b3JTdHJpbmcgKyAiKCk6ICIgKyBlKTsKLSAgfQotICB0cnkgewotICAgIG5ldyBjb25zdHJ1Y3RvcjsKLSAgICBhcHAuYWxlcnQoIkZBSUw6IG5ldyAiICsgY29uc3RydWN0b3JTdHJpbmcgKyAiOiByZXR1cm5lZCIpOwotICB9IGNhdGNoIChlKSB7Ci0gICAgYXBwLmFsZXJ0KCJQQVNTOiBuZXcgIiArIGNvbnN0cnVjdG9yU3RyaW5nICsgIjogIiArIGUpOwotICB9Ci19Cit7e2luY2x1ZGUgY29uc3RydWN0b3IuanN9fQorCisvLyBHbG9iYWwgb2JqZWN0cwogdGVzdElsbGVnYWxDb25zdHJ1Y3RvcigidGhpcyIpOwordGVzdElsbGVnYWxDb25zdHJ1Y3RvcigiZ2xvYmFsVGhpcyIpOworCisvLyBTdGF0aWMgb2JqZWN0cwogdGVzdElsbGVnYWxDb25zdHJ1Y3RvcigiYXBwIik7CiB0ZXN0SWxsZWdhbENvbnN0cnVjdG9yKCJldmVudCIpOwogdGVzdElsbGVnYWxDb25zdHJ1Y3RvcigiZm9udCIpOwpAQCAtNjksNiArNTQsMTEgQEAKIHRlc3RJbGxlZ2FsQ29uc3RydWN0b3IoInpvb210eXBlIik7CiB0ZXN0SWxsZWdhbENvbnN0cnVjdG9yKCJzY2FsZUhvdyIpOwogdGVzdElsbGVnYWxDb25zdHJ1Y3Rvcigic2NhbGVXaGVuIik7CisKKy8vIER5bmFtaWMgb2JqZWN0cwordGltZXIxID0gYXBwLnNldFRpbWVPdXQoInZhciBtYXJrZWQgPSB0cnVlIiwgMTAwMCk7Cit0ZXN0TGVnYWxDb25zdHJ1Y3RvcigidGltZXIxIik7CisKIGVuZHN0cmVhbQogZW5kb2JqCiB7e3hyZWZ9fQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9jb25zdHJ1Y3Rvci5qcyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvY29uc3RydWN0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjhjOThhYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvY29uc3RydWN0b3IuanMKQEAgLTAsMCArMSw0OSBAQAorLy8gQ29weXJpZ2h0IDIwMjAgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitmdW5jdGlvbiB0ZXN0TGVnYWxDb25zdHJ1Y3RvcihuYW1lLCBhbGxvd2VkKSB7CisgIGNvbnN0IGNvbnN0cnVjdG9yU3RyaW5nID0gbmFtZSArICIuY29uc3RydWN0b3IiOworICB2YXIgY29uc3RydWN0b3I7CisgIHRyeSB7CisgICAgY29uc3RydWN0b3IgPSBldmFsKGNvbnN0cnVjdG9yU3RyaW5nKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGFwcC5hbGVydCgiRkFJTDogTm8gc3VjaCAiICsgY29uc3RydWN0b3JTdHJpbmcpOworICAgIHJldHVybjsKKyAgfQorICB0cnkgeworICAgIGNvbnN0cnVjdG9yKCk7CisgICAgYXBwLmFsZXJ0KCJGQUlMOiAiICsgY29uc3RydWN0b3JTdHJpbmcgKyAiKCk6IHJldHVybmVkIik7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBhcHAuYWxlcnQoIlBBU1M6ICIgKyBjb25zdHJ1Y3RvclN0cmluZyArICIoKTogIiArIGUpOworICB9CisgIHRyeSB7CisgICAgdmFyIHRoaW5nID0gbmV3IGNvbnN0cnVjdG9yOworICAgIGFwcC5hbGVydCgiUEFTUzogbmV3ICIgKyBjb25zdHJ1Y3RvclN0cmluZyArICI6ICIgKyB0aGluZyk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBhcHAuYWxlcnQoIkZBSUw6IG5ldyAiICsgY29uc3RydWN0b3JTdHJpbmcgKyAiOiAiICsgZSk7CisgIH0KK30KKworZnVuY3Rpb24gdGVzdElsbGVnYWxDb25zdHJ1Y3RvcihuYW1lLCBhbGxvd2VkKSB7CisgIGNvbnN0IGNvbnN0cnVjdG9yU3RyaW5nID0gbmFtZSArICIuY29uc3RydWN0b3IiOworICB2YXIgY29uc3RydWN0b3I7CisgIHRyeSB7CisgICAgY29uc3RydWN0b3IgPSBldmFsKGNvbnN0cnVjdG9yU3RyaW5nKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGFwcC5hbGVydCgiRkFJTDogTm8gc3VjaCAiICsgY29uc3RydWN0b3JTdHJpbmcpOworICAgIHJldHVybjsKKyAgfQorICB0cnkgeworICAgIGNvbnN0cnVjdG9yKCk7CisgICAgYXBwLmFsZXJ0KCJGQUlMOiAiICsgY29uc3RydWN0b3JTdHJpbmcgKyAiKCk6IHJldHVybmVkIik7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBhcHAuYWxlcnQoIlBBU1M6ICIgKyBjb25zdHJ1Y3RvclN0cmluZyArICIoKTogIiArIGUpOworICB9CisgIHRyeSB7CisgICAgbmV3IGNvbnN0cnVjdG9yOworICAgIGFwcC5hbGVydCgiRkFJTDogbmV3ICIgKyBjb25zdHJ1Y3RvclN0cmluZyArICI6IHJldHVybmVkIik7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBhcHAuYWxlcnQoIlBBU1M6IG5ldyAiICsgY29uc3RydWN0b3JTdHJpbmcgKyAiOiAiICsgZSk7CisgIH0KK30KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvY29uc3RydWN0b3JfZXhwZWN0ZWQudHh0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9jb25zdHJ1Y3Rvcl9leHBlY3RlZC50eHQKaW5kZXggYWYwMzMzNy4uOGM1OGFhZCAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9jb25zdHJ1Y3Rvcl9leHBlY3RlZC50eHQKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9jb25zdHJ1Y3Rvcl9leHBlY3RlZC50eHQKQEAgLTEsNSArMSw3IEBACiBBbGVydDogUEFTUzogdGhpcy5jb25zdHJ1Y3RvcigpOiBpbGxlZ2FsIGNvbnN0cnVjdG9yCiBBbGVydDogUEFTUzogbmV3IHRoaXMuY29uc3RydWN0b3I6IG5vdCBhIGR5bmFtaWMgb2JqZWN0CitBbGVydDogUEFTUzogZ2xvYmFsVGhpcy5jb25zdHJ1Y3RvcigpOiBpbGxlZ2FsIGNvbnN0cnVjdG9yCitBbGVydDogUEFTUzogbmV3IGdsb2JhbFRoaXMuY29uc3RydWN0b3I6IG5vdCBhIGR5bmFtaWMgb2JqZWN0CiBBbGVydDogUEFTUzogYXBwLmNvbnN0cnVjdG9yKCk6IGlsbGVnYWwgY29uc3RydWN0b3IKIEFsZXJ0OiBQQVNTOiBuZXcgYXBwLmNvbnN0cnVjdG9yOiBub3QgYSBkeW5hbWljIG9iamVjdAogQWxlcnQ6IFBBU1M6IGV2ZW50LmNvbnN0cnVjdG9yKCk6IGlsbGVnYWwgY29uc3RydWN0b3IKQEAgLTMwLDMgKzMyLDUgQEAKIEFsZXJ0OiBQQVNTOiBuZXcgc2NhbGVIb3cuY29uc3RydWN0b3I6IG5vdCBhIGR5bmFtaWMgb2JqZWN0CiBBbGVydDogUEFTUzogc2NhbGVXaGVuLmNvbnN0cnVjdG9yKCk6IGlsbGVnYWwgY29uc3RydWN0b3IKIEFsZXJ0OiBQQVNTOiBuZXcgc2NhbGVXaGVuLmNvbnN0cnVjdG9yOiBub3QgYSBkeW5hbWljIG9iamVjdAorQWxlcnQ6IFBBU1M6IHRpbWVyMS5jb25zdHJ1Y3RvcigpOiBpbGxlZ2FsIGNvbnN0cnVjdG9yCitBbGVydDogUEFTUzogbmV3IHRpbWVyMS5jb25zdHJ1Y3RvcjogW29iamVjdCBPYmplY3RdCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2NvbnN0cy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvY29uc3RzLmluCmluZGV4IGRiZmQ1NzkuLmI0MTgwZmYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvY29uc3RzLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvY29uc3RzLmluCkBAIC0yMyw2ICsyMyw3IEBACiAgIC9Db250ZW50cyBbMjEgMCBSXQogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KK2VuZG9iagogJSBPcGVuQWN0aW9uIGFjdGlvbgoge3tvYmplY3QgMTAgMH19IDw8CiAgIC9UeXBlIC9BY3Rpb24KQEAgLTMwLDcgKzMxLDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZG9jdW1lbnRfbWV0aG9kcy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZG9jdW1lbnRfbWV0aG9kcy5pbgppbmRleCA5NTcxZTU1Li41ZGI5Nzc1IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2RvY3VtZW50X21ldGhvZHMuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9kb2N1bWVudF9tZXRob2RzLmluCkBAIC0yNiw2ICsyNiw3IEBACiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgIC9Db250ZW50cyA4IDAgUgogPj4KK2VuZG9iagogJSBQYWdlIG51bWJlciAxLgoge3tvYmplY3QgNCAwfX0gPDwKICAgL1R5cGUgL1BhZ2UKQEAgLTM1LDYgKzM2LDcgQEAKICAgPj4KICAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KID4+CitlbmRvYmoKICUgUGFnZSBudW1iZXIgMi4KIHt7b2JqZWN0IDUgMH19IDw8CiAgIC9UeXBlIC9QYWdlCkBAIC00NCw2ICs0Niw3IEBACiAgID4+CiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgorZW5kb2JqCiAlIFBhZ2UgbnVtYmVyIDMuCiB7e29iamVjdCA2IDB9fSA8PAogICAvVHlwZSAvUGFnZQpAQCAtNTMsNiArNTYsNyBAQAogICA+PgogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KK2VuZG9iagogJSBDb250ZW50cyBvZiB0aGUgcGFnZS4KIHt7b2JqZWN0IDggMH19IDw8CiAgIHt7c3RyZWFtbGVufX0KQEAgLTc4LDcgKzgyLDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZG9jdW1lbnRfcHJvcGVydGllcy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZG9jdW1lbnRfcHJvcGVydGllcy5pbgppbmRleCBmYTdkOTJhLi40NGExMDhiIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2RvY3VtZW50X3Byb3BlcnRpZXMuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9kb2N1bWVudF9wcm9wZXJ0aWVzLmluCkBAIC0yNSw2ICsyNSw3IEBACiAgID4+CiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgorZW5kb2JqCiAlIFBhZ2UgbnVtYmVyIDEuCiB7e29iamVjdCA0IDB9fSA8PAogICAvVHlwZSAvUGFnZQpAQCAtMzQsNiArMzUsNyBAQAogICA+PgogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KK2VuZG9iagogJSBQYWdlIG51bWJlciAyLgoge3tvYmplY3QgNSAwfX0gPDwKICAgL1R5cGUgL1BhZ2UKQEAgLTQzLDYgKzQ1LDcgQEAKICAgPj4KICAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KID4+CitlbmRvYmoKICUgUGFnZSBudW1iZXIgMy4KIHt7b2JqZWN0IDYgMH19IDw8CiAgIC9UeXBlIC9QYWdlCkBAIC01Miw2ICs1NSw3IEBACiAgID4+CiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgorZW5kb2JqCiAKICUgSW5mbwoge3tvYmplY3QgOSAwfX0gPDwKQEAgLTY2LDcgKzcwLDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZG9jdW1lbnRfcHJvcGVydGllc19leHBlY3RlZC50eHQgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2RvY3VtZW50X3Byb3BlcnRpZXNfZXhwZWN0ZWQudHh0CmluZGV4IDViYWI4MmYuLmJhODlkYTAgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZG9jdW1lbnRfcHJvcGVydGllc19leHBlY3RlZC50eHQKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9kb2N1bWVudF9wcm9wZXJ0aWVzX2V4cGVjdGVkLnR4dApAQCAtMjM3LDEzICsyMzcsMTMgQEAKIEFsZXJ0OiB0aGlzLnpvb21UeXBlID0gMzsgeWllbGRzIDMKIEFsZXJ0OiAqKiogR2V0dGluZyBwcm9wZXJ0aWVzICoqKgogQWxlcnQ6IHRoaXMuQURCRSBpcyB1bmRlZmluZWQgdW5kZWZpbmVkCi1BbGVydDogdGhpcy5hdXRob3IgaXMgc3RyaW5nIDMKK0FsZXJ0OiB0aGlzLmF1dGhvciBpcyBzdHJpbmcgSm9lIFJhbmRvbSBBdXRob3IKIEFsZXJ0OiB0aGlzLmJhc2VVUkwgaXMgc3RyaW5nIDMKIEFsZXJ0OiB0aGlzLmJvb2ttYXJrUm9vdCBpcyB1bmRlZmluZWQgdW5kZWZpbmVkCiBBbGVydDogdGhpcy5jYWxjdWxhdGUgaXMgYm9vbGVhbiB0cnVlCiBBbGVydDogdGhpcy5Db2xsYWIgaXMgdW5kZWZpbmVkIHVuZGVmaW5lZAotQWxlcnQ6IHRoaXMuY3JlYXRpb25EYXRlIGlzIHN0cmluZyAzCi1BbGVydDogdGhpcy5jcmVhdG9yIGlzIHN0cmluZyAzCitBbGVydDogdGhpcy5jcmVhdGlvbkRhdGUgaXMgc3RyaW5nIAorQWxlcnQ6IHRoaXMuY3JlYXRvciBpcyBzdHJpbmcgSm9lIFJhbmRvbSBDcmVhdG9yCiBBbGVydDogdGhpcy5kZWxheSBpcyBib29sZWFuIHRydWUKIEFsZXJ0OiB0aGlzLmRpcnR5IGlzIGJvb2xlYW4gdHJ1ZQogQWxlcnQ6IHRoaXMuZG9jdW1lbnRGaWxlTmFtZSBpcyBzdHJpbmcgCkBAIC0yNTEsMTAgKzI1MSwxMCBAQAogQWxlcnQ6IHRoaXMuZmlsZXNpemUgaXMgbnVtYmVyIDAKIEFsZXJ0OiB0aGlzLmljb25zIGlzIHVuZGVmaW5lZCB1bmRlZmluZWQKIEFsZXJ0OiB0aGlzLmluZm8gaXMgb2JqZWN0IFtvYmplY3QgT2JqZWN0XQotQWxlcnQ6IHRoaXMua2V5d29yZHMgaXMgc3RyaW5nIDMKK0FsZXJ0OiB0aGlzLmtleXdvcmRzIGlzIHN0cmluZyAKIEFsZXJ0OiB0aGlzLmxheW91dCBpcyB1bmRlZmluZWQgdW5kZWZpbmVkCiBBbGVydDogdGhpcy5tZWRpYSBpcyB1bmRlZmluZWQgdW5kZWZpbmVkCi1BbGVydDogdGhpcy5tb2REYXRlIGlzIHN0cmluZyAzCitBbGVydDogdGhpcy5tb2REYXRlIGlzIHN0cmluZyAKIEFsZXJ0OiB0aGlzLm1vdXNlWCBpcyB1bmRlZmluZWQgdW5kZWZpbmVkCiBBbGVydDogdGhpcy5tb3VzZVkgaXMgdW5kZWZpbmVkIHVuZGVmaW5lZAogQWxlcnQ6IHRoaXMubnVtRmllbGRzIGlzIG51bWJlciAwCkBAIC0yNjIsOSArMjYyLDkgQEAKIEFsZXJ0OiB0aGlzLnBhZ2VOdW0gaXMgdW5kZWZpbmVkIHVuZGVmaW5lZAogQWxlcnQ6IHRoaXMucGFnZVdpbmRvd1JlY3QgaXMgdW5kZWZpbmVkIHVuZGVmaW5lZAogQWxlcnQ6IHRoaXMucGF0aCBpcyBzdHJpbmcgL215ZmlsZS5wZGYKLUFsZXJ0OiB0aGlzLnByb2R1Y2VyIGlzIHN0cmluZyAzCi1BbGVydDogdGhpcy5zdWJqZWN0IGlzIHN0cmluZyAzCi1BbGVydDogdGhpcy50aXRsZSBpcyBzdHJpbmcgMworQWxlcnQ6IHRoaXMucHJvZHVjZXIgaXMgc3RyaW5nIAorQWxlcnQ6IHRoaXMuc3ViamVjdCBpcyBzdHJpbmcgCitBbGVydDogdGhpcy50aXRsZSBpcyBzdHJpbmcgCiBBbGVydDogdGhpcy5VUkwgaXMgc3RyaW5nIG15ZmlsZS5wZGYKIEFsZXJ0OiB0aGlzLnpvb20gaXMgdW5kZWZpbmVkIHVuZGVmaW5lZAogQWxlcnQ6IHRoaXMuem9vbVR5cGUgaXMgdW5kZWZpbmVkIHVuZGVmaW5lZApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9leHBlY3QuanMgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2V4cGVjdC5qcwppbmRleCA4MzJmMWQ2Li5hN2E1NjQzIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2V4cGVjdC5qcworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2V4cGVjdC5qcwpAQCAtMSwzICsxLDcgQEAKKy8vIENvcHlyaWdodCAyMDIyIFRoZSBQREZpdW0gQXV0aG9ycworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKwogZnVuY3Rpb24gZXhwZWN0KGV4cHJlc3Npb24sIGV4cGVjdGVkKSB7CiAgIHRyeSB7CiAgICAgdmFyIGFjdHVhbCA9IGV2YWwoZXhwcmVzc2lvbik7CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2ZpZWxkLmZyYWdtZW50IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9maWVsZC5mcmFnbWVudAppbmRleCAzMzVlMWFlLi5mZjhmN2Y0IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2ZpZWxkLmZyYWdtZW50CisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZmllbGQuZnJhZ21lbnQKQEAgLTQ2LDYgKzQ2LDcgQEAKICAgICAxMCAwIFIKICAgICAxMSAwIFIKICAgICAxMiAwIFIKKyAgICAxMyAwIFIKICAgXQogPj4KIGVuZG9iagpAQCAtNjgsNiArNjksOSBAQAogICAvUGFyZW50IDUgMCBSCiAgIC9UIChNeVB1c2hCdXR0b24pCiAgIC9SZWN0IFsyMjAgMjIxIDI0MCAyNDFdCisgIC9NSyA8PAorICAgIC9UUCA0CisgID4+CiA+PgogZW5kb2JqCiB7e29iamVjdCA4IDB9fSA8PApAQCAtMTMyLDYgKzEzNiwyMCBAQAogICAvViAoIi9wYXRoL3RvL2ZpbGUucGRmIikKID4+CiBlbmRvYmoKKyUgUXVlc3Rpb25hYmxlIFRQIHZhbHVlLgore3tvYmplY3QgMTMgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvQnRuCisgIC9GZiA2NTUzNgorICAvUGFyZW50IDUgMCBSCisgIC9UIChNeUJhZFB1c2hCdXR0b24pCisgIC9SZWN0IFs0MDAgNDIxIDQ0MCA0NDFdCisgIC9NSyA8PAorICAgIC9UUCA3CisgID4+Cis+PgorZW5kb2JqCiAlIE9wZW5BY3Rpb24gYWN0aW9uCiB7e29iamVjdCAxNSAwfX0gPDwKICAgL1R5cGUgL0FjdGlvbgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9maWVsZF9tZXRob2RzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9maWVsZF9tZXRob2RzLmluCmluZGV4IDgxYjllZWQuLjQ2ODQ1NTIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZmllbGRfbWV0aG9kcy5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2ZpZWxkX21ldGhvZHMuaW4KQEAgLTEsNyArMSw3IEBACiB7e2hlYWRlcn19CiB7e2luY2x1ZGUgZmllbGQuZnJhZ21lbnR9fQogCi0lIEpTIHByb2dyYW0gdG8gZXhleHV0ZQorJSBKUyBwcm9ncmFtIHRvIGV4ZWN1dGUKIHt7b2JqZWN0IDE2IDB9fSA8PAogICB7e3N0cmVhbWxlbn19CiA+PgpAQCAtNTEsNyArNTEsMTggQEAKIHRlc3RHZXRBcnJheSgpOwogCiBleHBlY3QoInRoaXMuZ2V0RmllbGQoJ015RmllbGQuTXlQdXNoQnV0dG9uJykuYnV0dG9uR2V0Q2FwdGlvbigpIiwgIiIpOworZXhwZWN0KCJ0aGlzLmdldEZpZWxkKCdNeUZpZWxkLk15UHVzaEJ1dHRvbicpLmJ1dHRvbkdldENhcHRpb24oMCkiLCAiIik7CitleHBlY3QoInRoaXMuZ2V0RmllbGQoJ015RmllbGQuTXlQdXNoQnV0dG9uJykuYnV0dG9uR2V0Q2FwdGlvbigxKSIsICIiKTsKK2V4cGVjdCgidGhpcy5nZXRGaWVsZCgnTXlGaWVsZC5NeVB1c2hCdXR0b24nKS5idXR0b25HZXRDYXB0aW9uKDIpIiwgIiIpOworZXhwZWN0RXJyb3IoInRoaXMuZ2V0RmllbGQoJ015RmllbGQuTXlQdXNoQnV0dG9uJykuYnV0dG9uR2V0Q2FwdGlvbigzKSIpCitleHBlY3RFcnJvcigidGhpcy5nZXRGaWVsZCgnTXlGaWVsZC5NeU11bHRpU2VsZWN0JykuYnV0dG9uR2V0Q2FwdGlvbigpIikKKwogZXhwZWN0KCJ0aGlzLmdldEZpZWxkKCdNeUZpZWxkLk15UHVzaEJ1dHRvbicpLmJ1dHRvbkdldEljb24oKSIsICJbb2JqZWN0IE9iamVjdF0iKTsKK2V4cGVjdCgidGhpcy5nZXRGaWVsZCgnTXlGaWVsZC5NeVB1c2hCdXR0b24nKS5idXR0b25HZXRJY29uKDApIiwgIltvYmplY3QgT2JqZWN0XSIpOworZXhwZWN0KCJ0aGlzLmdldEZpZWxkKCdNeUZpZWxkLk15UHVzaEJ1dHRvbicpLmJ1dHRvbkdldEljb24oMSkiLCAiW29iamVjdCBPYmplY3RdIik7CitleHBlY3RFcnJvcigidGhpcy5nZXRGaWVsZCgnTXlGaWVsZC5NeVB1c2hCdXR0b24nKS5idXR0b25HZXRJY29uKDMpIik7CitleHBlY3RFcnJvcigidGhpcy5nZXRGaWVsZCgnTXlGaWVsZC5NeU11bHRpU2VsZWN0JykuYnV0dG9uR2V0SWNvbigpIik7CisKIGV4cGVjdCgidGhpcy5nZXRGaWVsZCgnTXlGaWVsZC5NeVB1c2hCdXR0b24nKS5idXR0b25JbXBvcnRJY29uKCkiLCB1bmRlZmluZWQpOwogCiBleHBlY3QoInRoaXMuZ2V0RmllbGQoJ015RmllbGQuTXlGaWxlJykuYnJvd3NlRm9yRmlsZVRvU3VibWl0KCkiLCB1bmRlZmluZWQpOwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9maWVsZF9tZXRob2RzX2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZmllbGRfbWV0aG9kc19leHBlY3RlZC50eHQKaW5kZXggOGQ3ZWM4NC4uOTlkYmYwOSAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9maWVsZF9tZXRob2RzX2V4cGVjdGVkLnR4dAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2ZpZWxkX21ldGhvZHNfZXhwZWN0ZWQudHh0CkBAIC04LDcgKzgsOCBAQAogQWxlcnQ6IGRvdGRvdDEgaXMgCiBBbGVydDogZG90ZG90MiBpcyBNeUZpZWxkLk15UHVzaEJ1dHRvbgogQWxlcnQ6IGRvdGRvdDMgaXMgTXlGaWVsZAotQWxlcnQ6IGZvdW5kIDcgc3ViLWZpZWxkczoKK0FsZXJ0OiBmb3VuZCA4IHN1Yi1maWVsZHM6CitBbGVydDogTXlGaWVsZC5NeUJhZFB1c2hCdXR0b24KIEFsZXJ0OiBNeUZpZWxkLk15Q2hlY2tCb3gKIEFsZXJ0OiBNeUZpZWxkLk15RmlsZQogQWxlcnQ6IE15RmllbGQuTXlNdWx0aVNlbGVjdApAQCAtMTcsNyArMTgsMTYgQEAKIEFsZXJ0OiBNeUZpZWxkLk15U2luZ2xlU2VsZWN0CiBBbGVydDogTXlGaWVsZC5NeVRleHQKIEFsZXJ0OiBQQVNTOiB0aGlzLmdldEZpZWxkKCdNeUZpZWxkLk15UHVzaEJ1dHRvbicpLmJ1dHRvbkdldENhcHRpb24oKSA9IAorQWxlcnQ6IFBBU1M6IHRoaXMuZ2V0RmllbGQoJ015RmllbGQuTXlQdXNoQnV0dG9uJykuYnV0dG9uR2V0Q2FwdGlvbigwKSA9IAorQWxlcnQ6IFBBU1M6IHRoaXMuZ2V0RmllbGQoJ015RmllbGQuTXlQdXNoQnV0dG9uJykuYnV0dG9uR2V0Q2FwdGlvbigxKSA9IAorQWxlcnQ6IFBBU1M6IHRoaXMuZ2V0RmllbGQoJ015RmllbGQuTXlQdXNoQnV0dG9uJykuYnV0dG9uR2V0Q2FwdGlvbigyKSA9IAorQWxlcnQ6IFBBU1M6IHRoaXMuZ2V0RmllbGQoJ015RmllbGQuTXlQdXNoQnV0dG9uJykuYnV0dG9uR2V0Q2FwdGlvbigzKSB0aHJldyBGaWVsZC5idXR0b25HZXRDYXB0aW9uOiBJbmNvcnJlY3QgcGFyYW1ldGVyIHZhbHVlLgorQWxlcnQ6IFBBU1M6IHRoaXMuZ2V0RmllbGQoJ015RmllbGQuTXlNdWx0aVNlbGVjdCcpLmJ1dHRvbkdldENhcHRpb24oKSB0aHJldyBGaWVsZC5idXR0b25HZXRDYXB0aW9uOiBPYmplY3QgaXMgb2YgdGhlIHdyb25nIHR5cGUuCiBBbGVydDogUEFTUzogdGhpcy5nZXRGaWVsZCgnTXlGaWVsZC5NeVB1c2hCdXR0b24nKS5idXR0b25HZXRJY29uKCkgPSBbb2JqZWN0IE9iamVjdF0KK0FsZXJ0OiBQQVNTOiB0aGlzLmdldEZpZWxkKCdNeUZpZWxkLk15UHVzaEJ1dHRvbicpLmJ1dHRvbkdldEljb24oMCkgPSBbb2JqZWN0IE9iamVjdF0KK0FsZXJ0OiBQQVNTOiB0aGlzLmdldEZpZWxkKCdNeUZpZWxkLk15UHVzaEJ1dHRvbicpLmJ1dHRvbkdldEljb24oMSkgPSBbb2JqZWN0IE9iamVjdF0KK0FsZXJ0OiBQQVNTOiB0aGlzLmdldEZpZWxkKCdNeUZpZWxkLk15UHVzaEJ1dHRvbicpLmJ1dHRvbkdldEljb24oMykgdGhyZXcgRmllbGQuYnV0dG9uR2V0SWNvbjogSW5jb3JyZWN0IHBhcmFtZXRlciB2YWx1ZS4KK0FsZXJ0OiBQQVNTOiB0aGlzLmdldEZpZWxkKCdNeUZpZWxkLk15TXVsdGlTZWxlY3QnKS5idXR0b25HZXRJY29uKCkgdGhyZXcgRmllbGQuYnV0dG9uR2V0SWNvbjogT2JqZWN0IGlzIG9mIHRoZSB3cm9uZyB0eXBlLgogQWxlcnQ6IFBBU1M6IHRoaXMuZ2V0RmllbGQoJ015RmllbGQuTXlQdXNoQnV0dG9uJykuYnV0dG9uSW1wb3J0SWNvbigpID0gdW5kZWZpbmVkCiBBbGVydDogUEFTUzogdGhpcy5nZXRGaWVsZCgnTXlGaWVsZC5NeUZpbGUnKS5icm93c2VGb3JGaWxlVG9TdWJtaXQoKSA9IHVuZGVmaW5lZAogQWxlcnQ6IFBBU1M6IHRoaXMuZ2V0RmllbGQoJ015RmllbGQuTXlNdWx0aVNlbGVjdCcpLmdldEl0ZW1BdCgwKSA9IGZvbwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9maWVsZF9wcm9wZXJ0aWVzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9maWVsZF9wcm9wZXJ0aWVzLmluCmluZGV4IDIxMjYzODQuLjM4ODc3ODcgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZmllbGRfcHJvcGVydGllcy5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2ZpZWxkX3Byb3BlcnRpZXMuaW4KQEAgLTEsNiArMSw2IEBACiB7e2hlYWRlcn19CiB7e2luY2x1ZGUgZmllbGQuZnJhZ21lbnR9fQotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxNiAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KQEAgLTExLDYgKzExLDcgQEAKICAgICB2YXIgZmllbGQgPSB0aGlzLmdldEZpZWxkKCJNeUZpZWxkIik7CiAgICAgdmFyIHRleHQgPSB0aGlzLmdldEZpZWxkKCJNeUZpZWxkLk15VGV4dCIpOwogICAgIHZhciBidXR0b24gPSB0aGlzLmdldEZpZWxkKCJNeUZpZWxkLk15UHVzaEJ1dHRvbiIpOworICAgIHZhciBiYWRidXR0b24gPSB0aGlzLmdldEZpZWxkKCJNeUZpZWxkLk15QmFkUHVzaEJ1dHRvbiIpOwogICAgIHZhciByYWRpbyA9IHRoaXMuZ2V0RmllbGQoIk15RmllbGQuTXlSYWRpbyIpOwogICAgIHZhciBsaXN0ID0gdGhpcy5nZXRGaWVsZCgiTXlGaWVsZC5NeU11bHRpU2VsZWN0Iik7CiAgICAgdmFyIGNoZWNrID0gdGhpcy5nZXRGaWVsZCgiTXlGaWVsZC5NeUNoZWNrQm94Iik7CkBAIC0yMyw2ICsyNCw3IEBACiAgICAgdGVzdEZpZWxkUHJvcGVydGllc0Nhc2UoZmllbGQpOwogICAgIHRlc3RUZXh0UHJvcGVydGllc0Nhc2UodGV4dCk7CiAgICAgdGVzdFB1c2hCdXR0b25Qcm9wZXJ0aWVzQ2FzZShidXR0b24pOworICAgIHRlc3RCYWRQdXNoQnV0dG9uUHJvcGVydGllc0Nhc2UoYmFkYnV0dG9uKTsKICAgICB0ZXN0UmFkaW9CdXR0b25Qcm9wZXJ0aWVzQ2FzZShyYWRpbyk7CiAgICAgdGVzdENoZWNrQm94UHJvcGVydGllc0Nhc2UoY2hlY2spOwogICAgIHRlc3RMaXN0Qm94UHJvcGVydGllc0Nhc2UobGlzdCk7CkBAIC02OCw3ICs3MCw3IEBACiAgICAgdGVzdFJPUHJvcGVydHkoZmllbGQsICJwYWdlIiwgMCk7CiAgICAgdGVzdFJJUHJvcGVydHkoZmllbGQsICJwYXNzd29yZCIsIGZhbHNlLCA0Mik7CiAgICAgdGVzdFJXUHJvcGVydHkoZmllbGQsICJwcmludCIsIHRydWUsIGZhbHNlKTsKLSAgICB0ZXN0UklQcm9wZXJ0eShmaWVsZCwgInJlYWRvbmx5IiwgZmFsc2UsIHRydWUpOworICAgIHRlc3RSV1Byb3BlcnR5KGZpZWxkLCAicmVhZG9ubHkiLCBmYWxzZSwgdHJ1ZSk7CiAgICAgdGVzdFJPUHJvcGVydHkoZmllbGQsICJyZWN0IiwgWzIwMCwyMjEsMjIwLDIwMV0pOwogICAgIC8vIHRlc3RST1Byb3BlcnR5KGZpZWxkLCAicmVxdWlyZWQiLCAiY2xhbXMiKTsKICAgICB0ZXN0UklQcm9wZXJ0eShmaWVsZCwgInJpY2hUZXh0IiwgZmFsc2UsIHRydWUpOwpAQCAtOTQsNyArOTYsNyBAQAogICAgIHRlc3RSSVByb3BlcnR5KGZpZWxkLCAiYnV0dG9uQWxpZ25YIiwgMCwgNTApOwogICAgIHRlc3RSSVByb3BlcnR5KGZpZWxkLCAiYnV0dG9uQWxpZ25ZIiwgMCwgNTApOwogICAgIHRlc3RSSVByb3BlcnR5KGZpZWxkLCAiYnV0dG9uRml0Qm91bmRzIiwgZmFsc2UpOwotICAgIHRlc3RSSVByb3BlcnR5KGZpZWxkLCAiYnV0dG9uUG9zaXRpb24iLCAwKTsKKyAgICB0ZXN0UklQcm9wZXJ0eShmaWVsZCwgImJ1dHRvblBvc2l0aW9uIiwgNCk7CiAgICAgdGVzdFJJUHJvcGVydHkoZmllbGQsICJidXR0b25TY2FsZUhvdyIsIDApOwogICAgIHRlc3RSSVByb3BlcnR5KGZpZWxkLCAiYnV0dG9uU2NhbGVXaGVuIiwgMCk7CiAgICAgdGVzdFJJUHJvcGVydHkoZmllbGQsICJoaWdobGlnaHQiLCAiaW52ZXJ0Iik7CkBAIC0xMDQsMTEgKzEwNiwxOSBAQAogICB9CiB9CiAKK2Z1bmN0aW9uIHRlc3RCYWRQdXNoQnV0dG9uUHJvcGVydGllc0Nhc2UoZmllbGQpIHsKKyAgdHJ5IHsKKyAgICB0ZXN0UklQcm9wZXJ0eShmaWVsZCwgImJ1dHRvblBvc2l0aW9uIiwgNyk7IC8vIG5vdCBjaGVja2VkLgorICB9IGNhdGNoIChlKSB7CisgICAgYXBwLmFsZXJ0KCJVbmV4cGVjdGVkIGVycm9yOiAiICsgZSk7CisgIH0KK30KKwogZnVuY3Rpb24gdGVzdFJhZGlvQnV0dG9uUHJvcGVydGllc0Nhc2UoZmllbGQpIHsKICAgdHJ5IHsKLSAgICB0ZXN0Uk9Qcm9wZXJ0eShmaWVsZCwgImV4cG9ydFZhbHVlcyIsICJOIik7CisgICAgdGVzdFJPUHJvcGVydHkoZmllbGQsICJleHBvcnRWYWx1ZXMiLCAiWWVzIik7CiAgICAgdGVzdFJJUHJvcGVydHkoZmllbGQsICJyYWRpb3NJblVuaXNvbiIsIGZhbHNlKTsKLSAgICB0ZXN0UklQcm9wZXJ0eShmaWVsZCwgInN0eWxlIiwgImNoZWNrIik7CisgICAgdGVzdFJJUHJvcGVydHkoZmllbGQsICJzdHlsZSIsICJjaXJjbGUiKTsKICAgICB0ZXN0Uk9Qcm9wZXJ0eShmaWVsZCwgInR5cGUiLCAicmFkaW9idXR0b24iKTsKICAgICB0ZXN0UklQcm9wZXJ0eShmaWVsZCwgInZhbHVlIiwgIk9mZiIpOwogICAgIHRlc3RST1Byb3BlcnR5KGZpZWxkLCAidmFsdWVBc1N0cmluZyIsICJPZmYiKTsKQEAgLTExOSw3ICsxMjksNyBAQAogCiBmdW5jdGlvbiB0ZXN0Q2hlY2tCb3hQcm9wZXJ0aWVzQ2FzZShmaWVsZCkgewogICB0cnkgewotICAgIHRlc3RST1Byb3BlcnR5KGZpZWxkLCAiZXhwb3J0VmFsdWVzIiwgIk4iKTsKKyAgICB0ZXN0Uk9Qcm9wZXJ0eShmaWVsZCwgImV4cG9ydFZhbHVlcyIsICJZZXMiKTsKICAgICB0ZXN0UklQcm9wZXJ0eShmaWVsZCwgInN0eWxlIiwgImNoZWNrIik7CiAgICAgdGVzdFJPUHJvcGVydHkoZmllbGQsICJ0eXBlIiwgImNoZWNrYm94Iik7CiAgICAgdGVzdFJJUHJvcGVydHkoZmllbGQsICJ2YWx1ZSIsICJPZmYiKTsKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZmllbGRfcHJvcGVydGllc19leHBlY3RlZC50eHQgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2ZpZWxkX3Byb3BlcnRpZXNfZXhwZWN0ZWQudHh0CmluZGV4IDNiMmU2ZjYuLjJjNTdkYWYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZmllbGRfcHJvcGVydGllc19leHBlY3RlZC50eHQKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9maWVsZF9wcm9wZXJ0aWVzX2V4cGVjdGVkLnR4dApAQCAtNTEsNyArNTEsNyBAQAogQWxlcnQ6IFBBU1M6IHByaW50ID0gdHJ1ZQogQWxlcnQ6IFBBU1M6IHByaW50ID0gZmFsc2UKIEFsZXJ0OiBQQVNTOiByZWFkb25seSA9IGZhbHNlCi1BbGVydDogUEFTUzogcmVhZG9ubHkgPSBmYWxzZQorQWxlcnQ6IFBBU1M6IHJlYWRvbmx5ID0gdHJ1ZQogQWxlcnQ6IFBBU1M6IHJlY3QgPSAyMDAsMjIxLDIyMCwyMDEKIEFsZXJ0OiBQQVNTOiByZWN0IHRocmV3IEZpZWxkLnJlY3Q6IEluY29ycmVjdCBwYXJhbWV0ZXIgdmFsdWUuCiBBbGVydDogUEFTUzogcmljaFRleHQgPSBmYWxzZQpAQCAtODQsOCArODQsOCBAQAogQWxlcnQ6IFBBU1M6IGJ1dHRvbkFsaWduWSA9IDAKIEFsZXJ0OiBQQVNTOiBidXR0b25GaXRCb3VuZHMgPSBmYWxzZQogQWxlcnQ6IFBBU1M6IGJ1dHRvbkZpdEJvdW5kcyA9IGZhbHNlCi1BbGVydDogUEFTUzogYnV0dG9uUG9zaXRpb24gPSAwCi1BbGVydDogUEFTUzogYnV0dG9uUG9zaXRpb24gPSAwCitBbGVydDogUEFTUzogYnV0dG9uUG9zaXRpb24gPSA0CitBbGVydDogUEFTUzogYnV0dG9uUG9zaXRpb24gPSA0CiBBbGVydDogUEFTUzogYnV0dG9uU2NhbGVIb3cgPSBmYWxzZQogQWxlcnQ6IFBBU1M6IGJ1dHRvblNjYWxlSG93ID0gZmFsc2UKIEFsZXJ0OiBQQVNTOiBidXR0b25TY2FsZVdoZW4gPSAwCkBAIC05NCwxOSArOTQsMjEgQEAKIEFsZXJ0OiBQQVNTOiBoaWdobGlnaHQgPSBpbnZlcnQKIEFsZXJ0OiBQQVNTOiB0eXBlID0gYnV0dG9uCiBBbGVydDogUEFTUzogdHlwZSB0aHJldyBGaWVsZC50eXBlOiBPcGVyYXRpb24gbm90IHN1cHBvcnRlZC4KLUFsZXJ0OiBQQVNTOiBleHBvcnRWYWx1ZXMgPSBOCitBbGVydDogUEFTUzogYnV0dG9uUG9zaXRpb24gPSA3CitBbGVydDogUEFTUzogYnV0dG9uUG9zaXRpb24gPSA3CitBbGVydDogUEFTUzogZXhwb3J0VmFsdWVzID0gWWVzCiBBbGVydDogUEFTUzogZXhwb3J0VmFsdWVzIHRocmV3IEZpZWxkLmV4cG9ydFZhbHVlczogT2JqZWN0IG5vIGxvbmdlciBleGlzdHMuCiBBbGVydDogUEFTUzogcmFkaW9zSW5Vbmlzb24gPSBmYWxzZQogQWxlcnQ6IFBBU1M6IHJhZGlvc0luVW5pc29uID0gZmFsc2UKLUFsZXJ0OiBQQVNTOiBzdHlsZSA9IGNoZWNrCi1BbGVydDogUEFTUzogc3R5bGUgPSBjaGVjaworQWxlcnQ6IFBBU1M6IHN0eWxlID0gY2lyY2xlCitBbGVydDogUEFTUzogc3R5bGUgPSBjaXJjbGUKIEFsZXJ0OiBQQVNTOiB0eXBlID0gcmFkaW9idXR0b24KIEFsZXJ0OiBQQVNTOiB0eXBlIHRocmV3IEZpZWxkLnR5cGU6IE9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkLgogQWxlcnQ6IFBBU1M6IHZhbHVlID0gT2ZmCiBBbGVydDogUEFTUzogdmFsdWUgPSBPZmYKIEFsZXJ0OiBQQVNTOiB2YWx1ZUFzU3RyaW5nID0gT2ZmCiBBbGVydDogUEFTUzogdmFsdWVBc1N0cmluZyB0aHJldyBGaWVsZC52YWx1ZUFzU3RyaW5nOiBPcGVyYXRpb24gbm90IHN1cHBvcnRlZC4KLUFsZXJ0OiBQQVNTOiBleHBvcnRWYWx1ZXMgPSBOCitBbGVydDogUEFTUzogZXhwb3J0VmFsdWVzID0gWWVzCiBBbGVydDogUEFTUzogZXhwb3J0VmFsdWVzIHRocmV3IEZpZWxkLmV4cG9ydFZhbHVlczogT2JqZWN0IG5vIGxvbmdlciBleGlzdHMuCiBBbGVydDogUEFTUzogc3R5bGUgPSBjaGVjawogQWxlcnQ6IFBBU1M6IHN0eWxlID0gY2hlY2sKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZm9yZWdyb3VuZF90YXNrLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9mb3JlZ3JvdW5kX3Rhc2suaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQ1NDQ0YQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZm9yZWdyb3VuZF90YXNrLmluCkBAIC0wLDAgKzEsNDMgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvT3BlbkFjdGlvbiAxMCAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbCisgICAgMyAwIFIKKyAgXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorPj4KK2VuZG9iagore3tvYmplY3QgMTAgMH19IDw8CisgIC9UeXBlIC9BY3Rpb24KKyAgL1MgL0phdmFTY3JpcHQKKyAgL0pTIDExIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTEgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3RyeSB7CisgIGdjKHt0eXBlOiAnbWFqb3InLCBleGVjdXRpb246ICdhc3luYyd9KS50aGVuKCgpID0+IHsgYXBwLmFsZXJ0KCdSZXNvbHZlZCcpIH0pOworICBhcHAuYWxlcnQoJ1Bvc3RlZCcpOworfSBjYXRjaCAoZSkgeworICBhcHAuYWxlcnQoJ0Vycm9yOiAnICsgZSk7Cit9CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9mb3JlZ3JvdW5kX3Rhc2tfZXhwZWN0ZWQudHh0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9mb3JlZ3JvdW5kX3Rhc2tfZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MGUxMDAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2ZvcmVncm91bmRfdGFza19leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitBbGVydDogUG9zdGVkCitBbGVydDogUmVzb2x2ZWQKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZ2xvYmFscy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZ2xvYmFscy5pbgppbmRleCBkZTY3MzkyLi5iYmNhODEzIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2dsb2JhbHMuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9nbG9iYWxzLmluCkBAIC0yMyw2ICsyMyw3IEBACiAgIC9Db250ZW50cyBbMjEgMCBSXQogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KK2VuZG9iagogJSBPcGVuQWN0aW9uIGFjdGlvbgoge3tvYmplY3QgMTAgMH19IDw8CiAgIC9UeXBlIC9BY3Rpb24KQEAgLTMwLDcgKzMxLDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KQEAgLTU4LDcgKzU5LDExIEBACiAKICAgLy8gVGVzdCBudWxsIGFuZCB1bmRlZmluZWQuCiAgIHsgIm5hbWUiOiAibnVsbF92YXIiLCAidmFsdWUiOiBudWxsIH0sCi0gIHsgIm5hbWUiOiAidW5kZWZpbmVkX3ZhciIsICJ2YWx1ZSI6IHVuZGVmaW5lZCB9CisgIHsgIm5hbWUiOiAidW5kZWZpbmVkX3ZhciIsICJ2YWx1ZSI6IHVuZGVmaW5lZCB9LAorCisgIC8vIFRlc3QgdG8gc2hvdyB1bmljb2RlIGN1cnJlbnRseSBoYW5kbGVkLgorICB7ICJuYW1lIjogInVuaWNvZGVfdmFyIiwgInZhbHVlIjogIlx1NDAyNVx1NDAyNl9zdHJpbmciIH0sCisgIHsgIm5hbWUiOiAiXHU0MDI1XHU0MDI2X3ZhciIsICJ2YWx1ZSI6ICJzdHJpbmciIH0sCiBdOwogCiBmdW5jdGlvbiBzZXR1cF9nbG9iYWwoKSB7CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2dsb2JhbHNfZXhwZWN0ZWQudHh0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9nbG9iYWxzX2V4cGVjdGVkLnR4dAppbmRleCBmY2ViZDcwLi45ZTgwYTYyIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2dsb2JhbHNfZXhwZWN0ZWQudHh0CisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvZ2xvYmFsc19leHBlY3RlZC50eHQKQEAgLTEwLDE3ICsxMCwyMCBAQAogQWxlcnQ6ICAgb2JqZWN0X3ZhciA9IHVuZGVmaW5lZAogQWxlcnQ6ICAgbnVsbF92YXIgPSB1bmRlZmluZWQKIEFsZXJ0OiAgIHVuZGVmaW5lZF92YXIgPSB1bmRlZmluZWQKK0FsZXJ0OiAgIHVuaWNvZGVfdmFyID0gdW5kZWZpbmVkCitBbGVydDogICDkgKXkgKZfdmFyID0gdW5kZWZpbmVkCiBBbGVydDogKioqKioqKioqKioqIEFmdGVyIFNldHVwICoqKioqKioqKioqKgogQWxlcnQ6IEVudW1lcmFibGUgR2xvYmFsczoKIEFsZXJ0OiAgIHNldFBlcnNpc3RlbnQgPSBmdW5jdGlvbiBzZXRQZXJzaXN0ZW50KCkgeyBbbmF0aXZlIGNvZGVdIH0sIG93biBwcm9wZXJ0eSA9IHRydWUKLUFsZXJ0OiAgIHRydWVfdmFyID0gdHJ1ZSwgb3duIHByb3BlcnR5ID0gdHJ1ZQogQWxlcnQ6ICAgZmFsc2VfdmFyID0gZmFsc2UsIG93biBwcm9wZXJ0eSA9IHRydWUKLUFsZXJ0OiAgIHplcm9fdmFyID0gMCwgb3duIHByb3BlcnR5ID0gdHJ1ZQotQWxlcnQ6ICAgbnVtYmVyX3ZhciA9IC0zLjkxOCwgb3duIHByb3BlcnR5ID0gdHJ1ZQotQWxlcnQ6ICAgc3RyaW5nX3ZhciA9IFRoaXMgaXMgYSBzdHJpbmcsIG93biBwcm9wZXJ0eSA9IHRydWUKLUFsZXJ0OiAgIG9iamVjdF92YXIgPSBbb2JqZWN0IE9iamVjdF0sIG93biBwcm9wZXJ0eSA9IHRydWUKIEFsZXJ0OiAgIG51bGxfdmFyID0gbnVsbCwgb3duIHByb3BlcnR5ID0gdHJ1ZQotQWxlcnQ6ICAgdW5kZWZpbmVkX3ZhciA9IHVuZGVmaW5lZCwgb3duIHByb3BlcnR5ID0gdHJ1ZQorQWxlcnQ6ICAgbnVtYmVyX3ZhciA9IC0zLjkxOCwgb3duIHByb3BlcnR5ID0gdHJ1ZQorQWxlcnQ6ICAgb2JqZWN0X3ZhciA9IFtvYmplY3QgT2JqZWN0XSwgb3duIHByb3BlcnR5ID0gdHJ1ZQorQWxlcnQ6ICAgc3RyaW5nX3ZhciA9IFRoaXMgaXMgYSBzdHJpbmcsIG93biBwcm9wZXJ0eSA9IHRydWUKK0FsZXJ0OiAgIHRydWVfdmFyID0gdHJ1ZSwgb3duIHByb3BlcnR5ID0gdHJ1ZQorQWxlcnQ6ICAgdW5pY29kZV92YXIgPSDkgKXkgKZfc3RyaW5nLCBvd24gcHJvcGVydHkgPSB0cnVlCitBbGVydDogICB6ZXJvX3ZhciA9IDAsIG93biBwcm9wZXJ0eSA9IHRydWUKK0FsZXJ0OiAgIOSApeSApl92YXIgPSBzdHJpbmcsIG93biBwcm9wZXJ0eSA9IHRydWUKIEFsZXJ0OiBFeHBlY3RlZCBHbG9iYWxzOgogQWxlcnQ6ICAgdHJ1ZV92YXIgPSB0cnVlCiBBbGVydDogICBmYWxzZV92YXIgPSBmYWxzZQpAQCAtMzMsNiArMzYsOCBAQAogQWxlcnQ6ICAgICBibHVlCiBBbGVydDogICBudWxsX3ZhciA9IG51bGwKIEFsZXJ0OiAgIHVuZGVmaW5lZF92YXIgPSB1bmRlZmluZWQKK0FsZXJ0OiAgIHVuaWNvZGVfdmFyID0g5ICl5ICmX3N0cmluZworQWxlcnQ6ICAg5ICl5ICmX3ZhciA9IHN0cmluZwogQWxlcnQ6ICoqKioqKioqKioqKiBBZnRlciBEZWxldGlvbiAqKioqKioqKioqKioKIEFsZXJ0OiBFbnVtZXJhYmxlIEdsb2JhbHM6CiBBbGVydDogICBzZXRQZXJzaXN0ZW50ID0gZnVuY3Rpb24gc2V0UGVyc2lzdGVudCgpIHsgW25hdGl2ZSBjb2RlXSB9LCBvd24gcHJvcGVydHkgPSB0cnVlCkBAIC00NSwxOCArNTAsMjEgQEAKIEFsZXJ0OiAgIG9iamVjdF92YXIgPSB1bmRlZmluZWQKIEFsZXJ0OiAgIG51bGxfdmFyID0gdW5kZWZpbmVkCiBBbGVydDogICB1bmRlZmluZWRfdmFyID0gdW5kZWZpbmVkCitBbGVydDogICB1bmljb2RlX3ZhciA9IHVuZGVmaW5lZAorQWxlcnQ6ICAg5ICl5ICmX3ZhciA9IHVuZGVmaW5lZAogQWxlcnQ6IEZvciB1bmRlZmluZWRfdmFyOiBTZXQgUGVyc2lzdGVudDogRVJST1I6IGdsb2JhbC5zZXRQZXJzaXN0ZW50OiBHbG9iYWwgdmFsdWUgbm90IGZvdW5kLgogQWxlcnQ6ICoqKioqKioqKioqKiBBZnRlciBTZXR1cCBhbmQgUGVyc2lzdCBmYWxzZSAqKioqKioqKioqKioKIEFsZXJ0OiBFbnVtZXJhYmxlIEdsb2JhbHM6CiBBbGVydDogICBzZXRQZXJzaXN0ZW50ID0gZnVuY3Rpb24gc2V0UGVyc2lzdGVudCgpIHsgW25hdGl2ZSBjb2RlXSB9LCBvd24gcHJvcGVydHkgPSB0cnVlCi1BbGVydDogICB0cnVlX3ZhciA9IHRydWUsIG93biBwcm9wZXJ0eSA9IHRydWUKIEFsZXJ0OiAgIGZhbHNlX3ZhciA9IGZhbHNlLCBvd24gcHJvcGVydHkgPSB0cnVlCi1BbGVydDogICB6ZXJvX3ZhciA9IDAsIG93biBwcm9wZXJ0eSA9IHRydWUKLUFsZXJ0OiAgIG51bWJlcl92YXIgPSAtMy45MTgsIG93biBwcm9wZXJ0eSA9IHRydWUKLUFsZXJ0OiAgIHN0cmluZ192YXIgPSBUaGlzIGlzIGEgc3RyaW5nLCBvd24gcHJvcGVydHkgPSB0cnVlCi1BbGVydDogICBvYmplY3RfdmFyID0gW29iamVjdCBPYmplY3RdLCBvd24gcHJvcGVydHkgPSB0cnVlCiBBbGVydDogICBudWxsX3ZhciA9IG51bGwsIG93biBwcm9wZXJ0eSA9IHRydWUKLUFsZXJ0OiAgIHVuZGVmaW5lZF92YXIgPSB1bmRlZmluZWQsIG93biBwcm9wZXJ0eSA9IHRydWUKK0FsZXJ0OiAgIG51bWJlcl92YXIgPSAtMy45MTgsIG93biBwcm9wZXJ0eSA9IHRydWUKK0FsZXJ0OiAgIG9iamVjdF92YXIgPSBbb2JqZWN0IE9iamVjdF0sIG93biBwcm9wZXJ0eSA9IHRydWUKK0FsZXJ0OiAgIHN0cmluZ192YXIgPSBUaGlzIGlzIGEgc3RyaW5nLCBvd24gcHJvcGVydHkgPSB0cnVlCitBbGVydDogICB0cnVlX3ZhciA9IHRydWUsIG93biBwcm9wZXJ0eSA9IHRydWUKK0FsZXJ0OiAgIHVuaWNvZGVfdmFyID0g5ICl5ICmX3N0cmluZywgb3duIHByb3BlcnR5ID0gdHJ1ZQorQWxlcnQ6ICAgemVyb192YXIgPSAwLCBvd24gcHJvcGVydHkgPSB0cnVlCitBbGVydDogICDkgKXkgKZfdmFyID0gc3RyaW5nLCBvd24gcHJvcGVydHkgPSB0cnVlCiBBbGVydDogRXhwZWN0ZWQgR2xvYmFsczoKIEFsZXJ0OiAgIHRydWVfdmFyID0gdHJ1ZQogQWxlcnQ6ICAgZmFsc2VfdmFyID0gZmFsc2UKQEAgLTY5LDYgKzc3LDggQEAKIEFsZXJ0OiAgICAgYmx1ZQogQWxlcnQ6ICAgbnVsbF92YXIgPSBudWxsCiBBbGVydDogICB1bmRlZmluZWRfdmFyID0gdW5kZWZpbmVkCitBbGVydDogICB1bmljb2RlX3ZhciA9IOSApeSApl9zdHJpbmcKK0FsZXJ0OiAgIOSApeSApl92YXIgPSBzdHJpbmcKIEFsZXJ0OiBGb3IgdHJ1ZV92YXI6IFNldCBQZXJzaXN0ZW50OiBFUlJPUjogZ2xvYmFsLnNldFBlcnNpc3RlbnQ6IEdsb2JhbCB2YWx1ZSBub3QgZm91bmQuCiBBbGVydDogRm9yIGZhbHNlX3ZhcjogU2V0IFBlcnNpc3RlbnQ6IEVSUk9SOiBnbG9iYWwuc2V0UGVyc2lzdGVudDogR2xvYmFsIHZhbHVlIG5vdCBmb3VuZC4KIEFsZXJ0OiBGb3IgemVyb192YXI6IFNldCBQZXJzaXN0ZW50OiBFUlJPUjogZ2xvYmFsLnNldFBlcnNpc3RlbnQ6IEdsb2JhbCB2YWx1ZSBub3QgZm91bmQuCkBAIC03Nyw2ICs4Nyw4IEBACiBBbGVydDogRm9yIG9iamVjdF92YXI6IFNldCBQZXJzaXN0ZW50OiBFUlJPUjogZ2xvYmFsLnNldFBlcnNpc3RlbnQ6IEdsb2JhbCB2YWx1ZSBub3QgZm91bmQuCiBBbGVydDogRm9yIG51bGxfdmFyOiBTZXQgUGVyc2lzdGVudDogRVJST1I6IGdsb2JhbC5zZXRQZXJzaXN0ZW50OiBHbG9iYWwgdmFsdWUgbm90IGZvdW5kLgogQWxlcnQ6IEZvciB1bmRlZmluZWRfdmFyOiBTZXQgUGVyc2lzdGVudDogRVJST1I6IGdsb2JhbC5zZXRQZXJzaXN0ZW50OiBHbG9iYWwgdmFsdWUgbm90IGZvdW5kLgorQWxlcnQ6IEZvciB1bmljb2RlX3ZhcjogU2V0IFBlcnNpc3RlbnQ6IEVSUk9SOiBnbG9iYWwuc2V0UGVyc2lzdGVudDogR2xvYmFsIHZhbHVlIG5vdCBmb3VuZC4KK0FsZXJ0OiBGb3Ig5ICl5ICmX3ZhcjogU2V0IFBlcnNpc3RlbnQ6IEVSUk9SOiBnbG9iYWwuc2V0UGVyc2lzdGVudDogR2xvYmFsIHZhbHVlIG5vdCBmb3VuZC4KIEFsZXJ0OiAqKioqKioqKioqKiogQWZ0ZXIgRGVsZXRlIGFuZCBQZXJzaXN0ICoqKioqKioqKioqKgogQWxlcnQ6IEVudW1lcmFibGUgR2xvYmFsczoKIEFsZXJ0OiAgIHNldFBlcnNpc3RlbnQgPSBmdW5jdGlvbiBzZXRQZXJzaXN0ZW50KCkgeyBbbmF0aXZlIGNvZGVdIH0sIG93biBwcm9wZXJ0eSA9IHRydWUKQEAgLTg5LDE4ICsxMDEsMjEgQEAKIEFsZXJ0OiAgIG9iamVjdF92YXIgPSB1bmRlZmluZWQKIEFsZXJ0OiAgIG51bGxfdmFyID0gdW5kZWZpbmVkCiBBbGVydDogICB1bmRlZmluZWRfdmFyID0gdW5kZWZpbmVkCitBbGVydDogICB1bmljb2RlX3ZhciA9IHVuZGVmaW5lZAorQWxlcnQ6ICAg5ICl5ICmX3ZhciA9IHVuZGVmaW5lZAogQWxlcnQ6IEZvciB1bmRlZmluZWRfdmFyOiBTZXQgUGVyc2lzdGVudDogRVJST1I6IGdsb2JhbC5zZXRQZXJzaXN0ZW50OiBHbG9iYWwgdmFsdWUgbm90IGZvdW5kLgogQWxlcnQ6ICoqKioqKioqKioqKiBBZnRlciBTZXR1cCBhbmQgUGVyc2lzdCB0cnVlICoqKioqKioqKioqKgogQWxlcnQ6IEVudW1lcmFibGUgR2xvYmFsczoKIEFsZXJ0OiAgIHNldFBlcnNpc3RlbnQgPSBmdW5jdGlvbiBzZXRQZXJzaXN0ZW50KCkgeyBbbmF0aXZlIGNvZGVdIH0sIG93biBwcm9wZXJ0eSA9IHRydWUKLUFsZXJ0OiAgIHRydWVfdmFyID0gdHJ1ZSwgb3duIHByb3BlcnR5ID0gdHJ1ZQogQWxlcnQ6ICAgZmFsc2VfdmFyID0gZmFsc2UsIG93biBwcm9wZXJ0eSA9IHRydWUKLUFsZXJ0OiAgIHplcm9fdmFyID0gMCwgb3duIHByb3BlcnR5ID0gdHJ1ZQotQWxlcnQ6ICAgbnVtYmVyX3ZhciA9IC0zLjkxOCwgb3duIHByb3BlcnR5ID0gdHJ1ZQotQWxlcnQ6ICAgc3RyaW5nX3ZhciA9IFRoaXMgaXMgYSBzdHJpbmcsIG93biBwcm9wZXJ0eSA9IHRydWUKLUFsZXJ0OiAgIG9iamVjdF92YXIgPSBbb2JqZWN0IE9iamVjdF0sIG93biBwcm9wZXJ0eSA9IHRydWUKIEFsZXJ0OiAgIG51bGxfdmFyID0gbnVsbCwgb3duIHByb3BlcnR5ID0gdHJ1ZQotQWxlcnQ6ICAgdW5kZWZpbmVkX3ZhciA9IHVuZGVmaW5lZCwgb3duIHByb3BlcnR5ID0gdHJ1ZQorQWxlcnQ6ICAgbnVtYmVyX3ZhciA9IC0zLjkxOCwgb3duIHByb3BlcnR5ID0gdHJ1ZQorQWxlcnQ6ICAgb2JqZWN0X3ZhciA9IFtvYmplY3QgT2JqZWN0XSwgb3duIHByb3BlcnR5ID0gdHJ1ZQorQWxlcnQ6ICAgc3RyaW5nX3ZhciA9IFRoaXMgaXMgYSBzdHJpbmcsIG93biBwcm9wZXJ0eSA9IHRydWUKK0FsZXJ0OiAgIHRydWVfdmFyID0gdHJ1ZSwgb3duIHByb3BlcnR5ID0gdHJ1ZQorQWxlcnQ6ICAgdW5pY29kZV92YXIgPSDkgKXkgKZfc3RyaW5nLCBvd24gcHJvcGVydHkgPSB0cnVlCitBbGVydDogICB6ZXJvX3ZhciA9IDAsIG93biBwcm9wZXJ0eSA9IHRydWUKK0FsZXJ0OiAgIOSApeSApl92YXIgPSBzdHJpbmcsIG93biBwcm9wZXJ0eSA9IHRydWUKIEFsZXJ0OiBFeHBlY3RlZCBHbG9iYWxzOgogQWxlcnQ6ICAgdHJ1ZV92YXIgPSB0cnVlCiBBbGVydDogICBmYWxzZV92YXIgPSBmYWxzZQpAQCAtMTEzLDMgKzEyOCw1IEBACiBBbGVydDogICAgIGJsdWUKIEFsZXJ0OiAgIG51bGxfdmFyID0gbnVsbAogQWxlcnQ6ICAgdW5kZWZpbmVkX3ZhciA9IHVuZGVmaW5lZAorQWxlcnQ6ICAgdW5pY29kZV92YXIgPSDkgKXkgKZfc3RyaW5nCitBbGVydDogICDkgKXkgKZfdmFyID0gc3RyaW5nCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2ltbXV0YWJsZV9wcm90by5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvaW1tdXRhYmxlX3Byb3RvLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxODg1YzUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2ltbXV0YWJsZV9wcm90by5pbgpAQCAtMCwwICsxLDQzIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL09wZW5BY3Rpb24gMTAgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWworICAgIDMgMCBSCisgIF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKz4+CitlbmRvYmoKKyUgT3BlbkFjdGlvbiBhY3Rpb24KK3t7b2JqZWN0IDEwIDB9fSA8PAorICAvVHlwZSAvQWN0aW9uCisgIC9TIC9KYXZhU2NyaXB0CisgIC9KUyAxMSAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDExIDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit7e2luY2x1ZGUgZXhwZWN0LmpzfX0KK2V4cGVjdCgidGhpcy5fX3Byb3RvX18iLCAiW29iamVjdCBPYmplY3RdIik7CitleHBlY3QoImFwcC5fX3Byb3RvX18iLCAiW29iamVjdCBPYmplY3RdIik7CitleHBlY3RFcnJvcigidGhpcy5fX3Byb3RvX18gPSB7fSIpOworZXhwZWN0RXJyb3IoImFwcC5fX3Byb3RvX18gPSB0aGlzIik7CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9pbW11dGFibGVfcHJvdG9fZXhwZWN0ZWQudHh0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9pbW11dGFibGVfcHJvdG9fZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlN2M2NzAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L2ltbXV0YWJsZV9wcm90b19leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitBbGVydDogUEFTUzogdGhpcy5fX3Byb3RvX18gPSBbb2JqZWN0IE9iamVjdF0KK0FsZXJ0OiBQQVNTOiBhcHAuX19wcm90b19fID0gW29iamVjdCBPYmplY3RdCitBbGVydDogUEFTUzogdGhpcy5fX3Byb3RvX18gPSB7fSB0aHJldyBUeXBlRXJyb3I6IEltbXV0YWJsZSBwcm90b3R5cGUgb2JqZWN0ICdbb2JqZWN0IGdsb2JhbF0nIGNhbm5vdCBoYXZlIHRoZWlyIHByb3RvdHlwZSBzZXQKK0FsZXJ0OiBQQVNTOiBhcHAuX19wcm90b19fID0gdGhpcyB0aHJldyBUeXBlRXJyb3I6IEltbXV0YWJsZSBwcm90b3R5cGUgb2JqZWN0ICdbb2JqZWN0IE9iamVjdF0nIGNhbm5vdCBoYXZlIHRoZWlyIHByb3RvdHlwZSBzZXQKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvbW91c2VfZXZlbnRzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9tb3VzZV9ldmVudHMuaW4KaW5kZXggNGM2OTM1ZS4uYjdiNWE2ZCAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9tb3VzZV9ldmVudHMuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9tb3VzZV9ldmVudHMuaW4KQEAgLTI0LDYgKzI0LDcgQEAKICAgL0NvbnRlbnRzIFsyMSAwIFJdCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgorZW5kb2JqCiAlIEZvcm1zCiB7e29iamVjdCA0IDB9fSA8PAogICAvRmllbGRzIFsKQEAgLTMyLDYgKzMzLDcgQEAKICAgICA3IDAgUgogICBdCiA+PgorZW5kb2JqCiAlIEZpZWxkIHdpdGggYWN0aW9uczoKICUgQ3Vyc29yIGVudGVyOiBFCiAlIEN1cnNvciBleGl0OiBYCkBAIC01NCw2ICs1Niw3IEBACiAgICAvQmwgMTUgMCBSCiAgPj4KID4+CitlbmRvYmoKIHt7b2JqZWN0IDYgMH19IDw8CiAgL1R5cGUgL0Fubm90CiAgL1N1YnR5cGUgL1dpZGdldApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9uYW1lZF9hY3Rpb24uaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L25hbWVkX2FjdGlvbi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYThkMjhiCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9uYW1lZF9hY3Rpb24uaW4KQEAgLTAsMCArMSwzMyBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9PcGVuQWN0aW9uIDEwIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFsKKyAgICAzIDAgUgorICBdCis+PgorZW5kb2JqCislIFBhZ2UgbnVtYmVyIDAuCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCis+PgorZW5kb2JqCislIE9wZW5BY3Rpb24gYWN0aW9uIC0gbm90IHJlYWxseSBKUywgYnV0IGdlbmVyYXRlcyB0ZXh0IHVuZGVyIHRlc3QgZW52Lgore3tvYmplY3QgMTAgMH19IDw8CisgIC9UeXBlIC9BY3Rpb24KKyAgL1MgL05hbWVkCisgIC9OIChQcmludCkKKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvbmFtZWRfYWN0aW9uX2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvbmFtZWRfYWN0aW9uX2V4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDk5YTdmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9uYW1lZF9hY3Rpb25fZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK0V4ZWN1dGUgbmFtZWQgYWN0aW9uOiBQcmludApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC9wcm9wZXJ0eV90ZXN0X2hlbHBlcnMuanMgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3Byb3BlcnR5X3Rlc3RfaGVscGVycy5qcwppbmRleCA0N2EyNWVmLi4wZTQwNWZjIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3Byb3BlcnR5X3Rlc3RfaGVscGVycy5qcworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3Byb3BlcnR5X3Rlc3RfaGVscGVycy5qcwpAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAyMDE5IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTkgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3B1YmxpY19tZXRob2RzX2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvcHVibGljX21ldGhvZHNfZXhwZWN0ZWQudHh0CmluZGV4IDE3YWJlZmYuLjcwY2Q4ZWUgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvcHVibGljX21ldGhvZHNfZXhwZWN0ZWQudHh0CisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvcHVibGljX21ldGhvZHNfZXhwZWN0ZWQudHh0CkBAIC0yMSwxMSArMjEsMTEgQEAKIEFsZXJ0OiAqKioqKioqKioqKioqKioqKioqKioqCiBBbGVydDogUEFTUzogQUZEYXRlX0tleXN0cm9rZUV4KCkgdGhyZXcgQUZEYXRlX0tleXN0cm9rZUV4OiBBRkRhdGVfS2V5c3Ryb2tlRXgncyBwYXJhbWV0ZXIgc2l6ZSBub3QgY29ycmVjdAogQWxlcnQ6IFBBU1M6IEFGRGF0ZV9LZXlzdHJva2VFeCgxLCAyKSB0aHJldyBBRkRhdGVfS2V5c3Ryb2tlRXg6IEFGRGF0ZV9LZXlzdHJva2VFeCdzIHBhcmFtZXRlciBzaXplIG5vdCBjb3JyZWN0Ci1baWNvbj0zLHR5cGU9MF06IFRoZSBpbnB1dCB2YWx1ZSBjYW4ndCBiZSBwYXJzZWQgYXMgYSB2YWxpZCBkYXRlL3RpbWUgKDIpLgorQUZEYXRlX0tleXN0cm9rZUV4W2ljb249Myx0eXBlPTBdOiBUaGUgaW5wdXQgdmFsdWUgY2FuJ3QgYmUgcGFyc2VkIGFzIGEgdmFsaWQgZGF0ZS90aW1lICgyKS4KIEFsZXJ0OiBQQVNTOiBBRkRhdGVfS2V5c3Ryb2tlRXgoMikgPSB4Ci1baWNvbj0zLHR5cGU9MF06IFRoZSBpbnB1dCB2YWx1ZSBjYW4ndCBiZSBwYXJzZWQgYXMgYSB2YWxpZCBkYXRlL3RpbWUgKGJsb29leSkuCitBRkRhdGVfS2V5c3Ryb2tlRXhbaWNvbj0zLHR5cGU9MF06IFRoZSBpbnB1dCB2YWx1ZSBjYW4ndCBiZSBwYXJzZWQgYXMgYSB2YWxpZCBkYXRlL3RpbWUgKGJsb29leSkuCiBBbGVydDogUEFTUzogQUZEYXRlX0tleXN0cm9rZUV4KCdibG9vZXknKSA9IHgKLVtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIGNhbid0IGJlIHBhcnNlZCBhcyBhIHZhbGlkIGRhdGUvdGltZSAobS9kKS4KK0FGRGF0ZV9LZXlzdHJva2VFeFtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIGNhbid0IGJlIHBhcnNlZCBhcyBhIHZhbGlkIGRhdGUvdGltZSAobS9kKS4KIEFsZXJ0OiBQQVNTOiBBRkRhdGVfS2V5c3Ryb2tlRXgoJ20vZCcpID0geAogQWxlcnQ6ICoqKioqKioqKioqKioqKioqKioqKioKIEFsZXJ0OiBQQVNTOiBBRkV4dHJhY3ROdW1zKCkgdGhyZXcgQUZFeHRyYWN0TnVtczogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KQEAgLTUwLDcgKzUwLDcgQEAKIEFsZXJ0OiAqKioqKioqKioqKioqKioqKioqKioqCiBBbGVydDogUEFTUzogQUZOdW1iZXJfS2V5c3Ryb2tlKCkgdGhyZXcgQUZOdW1iZXJfS2V5c3Ryb2tlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgogQWxlcnQ6IFBBU1M6IEFGTnVtYmVyX0tleXN0cm9rZSgxKSB0aHJldyBBRk51bWJlcl9LZXlzdHJva2U6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCi1baWNvbj0zLHR5cGU9MF06IFRoZSBpbnB1dCB2YWx1ZSBpcyBpbnZhbGlkLgorQUZOdW1iZXJfS2V5c3Ryb2tlW2ljb249Myx0eXBlPTBdOiBUaGUgaW5wdXQgdmFsdWUgaXMgaW52YWxpZC4KIEFsZXJ0OiBQQVNTOiBBRk51bWJlcl9LZXlzdHJva2UoMSwgMikgdGhyZXcgQUZOdW1iZXJfS2V5c3Ryb2tlOiBUaGUgaW5wdXQgdmFsdWUgaXMgaW52YWxpZC4KIEFsZXJ0OiBQQVNTOiBBRk51bWJlcl9LZXlzdHJva2UoMSwgMikgPSAxMjMKIEFsZXJ0OiBQQVNTOiBBRk51bWJlcl9LZXlzdHJva2UoMSwgMiwgMykgPSAxMjMKQEAgLTI3NywxOSArMjc3LDE5IEBACiBBbGVydDogKioqKioqKioqKioqKioqKioqKioqKgogQWxlcnQ6IFBBU1M6IEFGUGVyY2VudF9LZXlzdHJva2UoKSB0aHJldyBBRlBlcmNlbnRfS2V5c3Ryb2tlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgogQWxlcnQ6IFBBU1M6IEFGUGVyY2VudF9LZXlzdHJva2UoMSkgdGhyZXcgQUZQZXJjZW50X0tleXN0cm9rZTogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KLVtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIGlzIGludmFsaWQuCitBRk51bWJlcl9LZXlzdHJva2VbaWNvbj0zLHR5cGU9MF06IFRoZSBpbnB1dCB2YWx1ZSBpcyBpbnZhbGlkLgogQWxlcnQ6IFBBU1M6IEFGUGVyY2VudF9LZXlzdHJva2UoMSwgMCkgdGhyZXcgQUZQZXJjZW50X0tleXN0cm9rZTogVGhlIGlucHV0IHZhbHVlIGlzIGludmFsaWQuCiBBbGVydDogUEFTUzogQUZQZXJjZW50X0tleXN0cm9rZSgxLCAwKSA9IC4xMjMKIEFsZXJ0OiAqKioqKioqKioqKioqKioqKioqKioqCiBBbGVydDogUEFTUzogQUZSYW5nZV9WYWxpZGF0ZSgpIHRocmV3IEFGUmFuZ2VfVmFsaWRhdGU6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCiBBbGVydDogUEFTUzogQUZSYW5nZV9WYWxpZGF0ZSgxLCAyLCAzLCA0LCA1KSB0aHJldyBBRlJhbmdlX1ZhbGlkYXRlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgotW2ljb249Myx0eXBlPTBdOiBUaGUgaW5wdXQgdmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMiBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDQuCitBRlJhbmdlX1ZhbGlkYXRlW2ljb249Myx0eXBlPTBdOiBUaGUgaW5wdXQgdmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMiBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDQuCiBBbGVydDogUEFTUzogQUZSYW5nZV9WYWxpZGF0ZSh0cnVlLCAyLCB0cnVlLCA0KSA9IDEKLVtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDIgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byA0LgorQUZSYW5nZV9WYWxpZGF0ZVtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDIgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byA0LgogQWxlcnQ6IFBBU1M6IEFGUmFuZ2VfVmFsaWRhdGUodHJ1ZSwgMiwgdHJ1ZSwgNCkgPSA1Ci1baWNvbj0zLHR5cGU9MF06IFRoZSBpbnB1dCB2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAyLgorQUZSYW5nZV9WYWxpZGF0ZVtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDIuCiBBbGVydDogUEFTUzogQUZSYW5nZV9WYWxpZGF0ZSh0cnVlLCAyLCBmYWxzZSwgNCkgPSAxCi1baWNvbj0zLHR5cGU9MF06IFRoZSBpbnB1dCB2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA0LgorQUZSYW5nZV9WYWxpZGF0ZVtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDQuCiBBbGVydDogUEFTUzogQUZSYW5nZV9WYWxpZGF0ZShmYWxzZSwgMiwgdHJ1ZSwgNCkgPSA1CiBBbGVydDogUEFTUzogQUZSYW5nZV9WYWxpZGF0ZSh0cnVlLCAyLCB0cnVlLCA0KSA9IDMKIEFsZXJ0OiBQQVNTOiBBRlJhbmdlX1ZhbGlkYXRlKGZhbHNlLCAyLCB0cnVlLCA0KSA9IDEKQEAgLTM0NSwxMSArMzQ1LDExIEBACiBBbGVydDogKioqKioqKioqKioqKioqKioqKioqKgogQWxlcnQ6IFBBU1M6IEFGU3BlY2lhbF9LZXlzdHJva2VFeCgpIHRocmV3IEFGU3BlY2lhbF9LZXlzdHJva2VFeDogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KIEFsZXJ0OiBQQVNTOiBBRlNwZWNpYWxfS2V5c3Ryb2tlRXgoJycpID0gMTIzNDUKLVtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIGlzIGludmFsaWQuCitBRlNwZWNpYWxfS2V5c3Ryb2tlRXhbaWNvbj0zLHR5cGU9MF06IFRoZSBpbnB1dCB2YWx1ZSBpcyBpbnZhbGlkLgogQWxlcnQ6IFBBU1M6IEFGU3BlY2lhbF9LZXlzdHJva2VFeCgnOTk5OScpID0gMTIzCi1baWNvbj0zLHR5cGU9MF06IFRoZSBpbnB1dCB2YWx1ZSBpcyB0b28gbG9uZy4KK0FGU3BlY2lhbF9LZXlzdHJva2VFeFtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIGlzIHRvbyBsb25nLgogQWxlcnQ6IFBBU1M6IEFGU3BlY2lhbF9LZXlzdHJva2VFeCgnOTk5OScpID0gMTIzNDUKLVtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIGlzIGludmFsaWQuCitBRlNwZWNpYWxfS2V5c3Ryb2tlRXhbaWNvbj0zLHR5cGU9MF06IFRoZSBpbnB1dCB2YWx1ZSBpcyBpbnZhbGlkLgogQWxlcnQ6IFBBU1M6IEFGU3BlY2lhbF9LZXlzdHJva2VFeCgnOTk5OScpID0gYWJjZAogQWxlcnQ6IFBBU1M6IEFGU3BlY2lhbF9LZXlzdHJva2VFeCgnOTk5OScpID0gMTIzNAogQWxlcnQ6IFBBU1M6IEFGU3BlY2lhbF9LZXlzdHJva2VFeCgnWFhYWCcpID0gYWJjZApAQCAtMzg1LDEzICszODUsMTMgQEAKIEFsZXJ0OiBQQVNTOiBBRlNwZWNpYWxfS2V5c3Ryb2tlRXgoKSB0aHJldyBBRlNwZWNpYWxfS2V5c3Ryb2tlRXg6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCiBBbGVydDogUEFTUzogQUZTcGVjaWFsX0tleXN0cm9rZUV4KCcnKSA9IDEyMzQ1CiBBbGVydDogUEFTUzogQUZTcGVjaWFsX0tleXN0cm9rZUV4KCc5OTk5JykgPSAxMjMKLVtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIGlzIHRvbyBsb25nLgorQUZTcGVjaWFsX0tleXN0cm9rZUV4W2ljb249Myx0eXBlPTBdOiBUaGUgaW5wdXQgdmFsdWUgaXMgdG9vIGxvbmcuCiBBbGVydDogUEFTUzogQUZTcGVjaWFsX0tleXN0cm9rZUV4KCc5OTk5JykgPSAxMjM0NQotW2ljb249Myx0eXBlPTBdOiBUaGUgaW5wdXQgdmFsdWUgaXMgdG9vIGxvbmcuCitBRlNwZWNpYWxfS2V5c3Ryb2tlRXhbaWNvbj0zLHR5cGU9MF06IFRoZSBpbnB1dCB2YWx1ZSBpcyB0b28gbG9uZy4KIEFsZXJ0OiBQQVNTOiBBRlNwZWNpYWxfS2V5c3Ryb2tlRXgoJzk5OTknKSA9IGFiY2QKLVtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIGlzIHRvbyBsb25nLgorQUZTcGVjaWFsX0tleXN0cm9rZUV4W2ljb249Myx0eXBlPTBdOiBUaGUgaW5wdXQgdmFsdWUgaXMgdG9vIGxvbmcuCiBBbGVydDogUEFTUzogQUZTcGVjaWFsX0tleXN0cm9rZUV4KCc5OTk5JykgPSAxMjM0Ci1baWNvbj0zLHR5cGU9MF06IFRoZSBpbnB1dCB2YWx1ZSBpcyB0b28gbG9uZy4KK0FGU3BlY2lhbF9LZXlzdHJva2VFeFtpY29uPTMsdHlwZT0wXTogVGhlIGlucHV0IHZhbHVlIGlzIHRvbyBsb25nLgogQWxlcnQ6IFBBU1M6IEFGU3BlY2lhbF9LZXlzdHJva2VFeCgnWFhYWCcpID0gYWJjZAogQWxlcnQ6ICoqKioqKioqKioqKioqKioqKioqKioKIEFsZXJ0OiBQQVNTOiBBRk1lcmdlQ2hhbmdlKCkgdGhyZXcgQUZNZXJnZUNoYW5nZTogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvdW5zdXBwb3J0ZWQuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3Vuc3VwcG9ydGVkLmluCmluZGV4IDRkMWFkNWUuLmVjY2ZiYWIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvdW5zdXBwb3J0ZWQuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC91bnN1cHBvcnRlZC5pbgpAQCAtMTksNiArMTksNyBAQAogICAvUGFyZW50IDIgMCBSCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgorZW5kb2JqCiAlIE9wZW5BY3Rpb24gYWN0aW9uCiB7e29iamVjdCAxMCAwfX0gPDwKICAgL1R5cGUgL0FjdGlvbgpAQCAtMjYsNyArMjcsNyBAQAogICAvSlMgMTEgMCBSCiA+PgogZW5kb2JqCi0lIEpTIHByb2dyYW0gdG8gZXhleHV0ZQorJSBKUyBwcm9ncmFtIHRvIGV4ZWN1dGUKIHt7b2JqZWN0IDExIDB9fSA8PAogICB7e3N0cmVhbWxlbn19CiA+PgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC91dGlsX2J5dGV0b2NoYXIuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3V0aWxfYnl0ZXRvY2hhci5pbgppbmRleCA1MzFlNjc5Li4yM2RjNDIzIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3V0aWxfYnl0ZXRvY2hhci5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3V0aWxfYnl0ZXRvY2hhci5pbgpAQCAtMjMsNiArMjMsNyBAQAogICAvQ29udGVudHMgWzIxIDAgUl0KICAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KID4+CitlbmRvYmoKICUgT3BlbkFjdGlvbiBhY3Rpb24KIHt7b2JqZWN0IDEwIDB9fSA8PAogICAvVHlwZSAvQWN0aW9uCkBAIC0zMCw3ICszMSw3IEBACiAgIC9KUyAxMSAwIFIKID4+CiBlbmRvYmoKLSUgSlMgcHJvZ3JhbSB0byBleGV4dXRlCislIEpTIHByb2dyYW0gdG8gZXhlY3V0ZQoge3tvYmplY3QgMTEgMH19IDw8CiAgIHt7c3RyZWFtbGVufX0KID4+CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3V0aWxfcHJpbnRkLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC91dGlsX3ByaW50ZC5pbgppbmRleCBlNGM4YWZjLi5kMGQxN2I0IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3V0aWxfcHJpbnRkLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvdXRpbF9wcmludGQuaW4KQEAgLTIzLDYgKzIzLDcgQEAKICAgL0NvbnRlbnRzIFsyMSAwIFJdCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgorZW5kb2JqCiAlIE9wZW5BY3Rpb24gYWN0aW9uCiB7e29iamVjdCAxMCAwfX0gPDwKICAgL1R5cGUgL0FjdGlvbgpAQCAtMzAsNyArMzEsNyBAQAogICAvSlMgMTEgMCBSCiA+PgogZW5kb2JqCi0lIEpTIHByb2dyYW0gdG8gZXhleHV0ZQorJSBKUyBwcm9ncmFtIHRvIGV4ZWN1dGUKIHt7b2JqZWN0IDExIDB9fSA8PAogICB7e3N0cmVhbWxlbn19CiA+PgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC91dGlsX3ByaW50eC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvdXRpbF9wcmludHguaW4KaW5kZXggMzAwMjA1MS4uODRkNDg0NiAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC91dGlsX3ByaW50eC5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3V0aWxfcHJpbnR4LmluCkBAIC0yMyw2ICsyMyw3IEBACiAgIC9Db250ZW50cyBbMjEgMCBSXQogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KK2VuZG9iagogJSBPcGVuQWN0aW9uIGFjdGlvbgoge3tvYmplY3QgMTAgMH19IDw8CiAgIC9UeXBlIC9BY3Rpb24KQEAgLTMwLDcgKzMxLDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvdXRpbF9zY2FuZC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvdXRpbF9zY2FuZC5pbgppbmRleCAyNTQ2MmQwLi4zNDRhYWNkIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3V0aWxfc2NhbmQuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC91dGlsX3NjYW5kLmluCkBAIC0yNyw3ICsyNyw3IEBACiAgIC9KUyAxMSAwIFIKID4+CiBlbmRvYmoKLSUgSlMgcHJvZ3JhbSB0byBleGV4dXRlCislIEpTIHByb2dyYW0gdG8gZXhlY3V0ZQoge3tvYmplY3QgMTEgMH19IDw8CiAgIHt7c3RyZWFtbGVufX0KID4+CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3Y4X2ZlYXR1cmVzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC92OF9mZWF0dXJlcy5pbgppbmRleCAzZDkwNDczLi44YTViNmFmIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3Y4X2ZlYXR1cmVzLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQvdjhfZmVhdHVyZXMuaW4KQEAgLTE5LDYgKzE5LDcgQEAKICAgL1BhcmVudCAyIDAgUgogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KK2VuZG9iagogJSBPcGVuQWN0aW9uIGFjdGlvbgoge3tvYmplY3QgMTAgMH19IDw8CiAgIC9UeXBlIC9BY3Rpb24KQEAgLTI2LDcgKzI3LDcgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAxMSAwfX0gPDwKICAge3tzdHJlYW1sZW59fQogPj4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDA0MTA2LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwMDQxMDYuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI2YzM5YgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDA0MTA2LmluCkBAIC0wLDAgKzEsNjUgQEAKK3t7aGVhZGVyfX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY2F0YWxvZ18xXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9vYmplY3RfMl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcHJlYW1ibGVfM18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY29uZmlnXzRfMC5mcmFnbWVudH19Cit7e29iamVjdCA1IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8dGVtcGxhdGU+CisgIDxzdWJmb3JtIGxheW91dD0idGIiIG5hbWU9InN1YmZvcm0xIj4KKyAgICA8cGFnZVNldCBpZD0icGFnZSIgcmVsYXRpb249Im9yZGVyZWRPY2N1cnJlbmNlIj4KKyAgICAgIDxvY2N1ciBpbml0aWFsPSIxIiBtYXg9IjEiIG1pbj0iMSIvPgorICAgICAgPHBhZ2VBcmVhIGlkPSJQYWdlMSIgbmFtZT0iUGFnZTEiPgorICAgICAgICA8b2NjdXIgbWF4PSIxIiBtaW49IjEiLz4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjEwMG1tIiB3PSIyMDBtbSIgeD0iMC4yNWluIiB5PSIwLjI1aW4iLz4KKyAgICAgICAgPG1lZGl1bSBsb25nPSIyOTdtbSIgc2hvcnQ9IjIxMG1tIiBzdG9jaz0iYTQiLz4KKyAgICAgIDwvcGFnZUFyZWE+CisgICAgPC9wYWdlU2V0PgorICAgIDxzdWJmb3JtIGxheW91dD0idGIiIG5hbWU9InN1YmZvcm0yIj4KKyAgICAgIDx2YXJpYWJsZXMgbmFtZT0idmFyYSI+CisgICAgICA8L3ZhcmlhYmxlcz4KKyAgICAgIDxvY2N1ciBpbml0aWFsPSIxIiBtYXg9IjEwIiBtaW49IjAiIG5hbWU9Im9jY3VyMSI+CisgICAgICA8L29jY3VyPgorICAgICAgPGZpZWxkIGg9IjEwbW0iIG5hbWU9ImZpZWxkMSIgdz0iNDBtbSIgeD0iMTBtbSIgeT0iMTBtbSI+CisgICAgICAgIDxldmVudCBhY3Rpdml0eT0icmVhZHkiIHJlZj0iJGZvcm0iPgorICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICB2YXIgcmVmID0gW107CisKKyAgICAgICAgICAgIGFwcC50ZXN0ID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICB2YXIgYXJyID0gW10KKyAgICAgICAgICAgICAgdmFyIHYxID0gMTsKKyAgICAgICAgICAgICAgc3QgPSB7fTsKKyAgICAgICAgICAgICAgdmFyIHYyID0gWzAsIHN0LCAyLCAzXTsKKyAgICAgICAgICAgICAgdmFyIHYzID0gWzAsICJwb2MiLCB7fV07CisgICAgICAgICAgICAgIHN0LnRvU3RyaW5nID0gZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSAhPSA4OyBpKyspIHYzLnB1c2goe30pOworICAgICAgICAgICAgICAgIHJldHVybiAicG9jIjsKKyAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgIC8vIFRyaWdnZXIKKyAgICAgICAgICAgICAgcGZtX3J0Lk9uZW9mKDEsIHYxLCB2MiwgdjMpOworICAgICAgICAgICAgfQorICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8L2V2ZW50PgorICAgICAgPC9maWVsZD4KKyAgICAgIDxmaWVsZCBoPSIxMG1tIiBuYW1lPSJmaWVsZDIiIHc9IjQwbW0iIHg9IjEwbW0iIHk9IjEwbW0iPgorICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9InJlYWR5IiByZWY9IiRmb3JtIj4KKyAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWZvcm1jYWxjIj4KKyAgICAgICAgICAgIGFwcC50ZXN0KCk7CisgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDwvZXZlbnQ+CisgICAgICA8L2ZpZWxkPgorICAgIDwvc3ViZm9ybT4KKyAgPC9zdWJmb3JtPgorPC90ZW1wbGF0ZT4KK2VuZHN0cmVhbQorZW5kb2JqCit7e2luY2x1ZGUgLi4vLi4veGZhX2xvY2FsZV82XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wb3N0YW1ibGVfN18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcGFnZXNfOF8wLmZyYWdtZW50fX0KK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDI2OTkxLmV2dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDI2OTkxLmV2dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2Q5MDIyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwMjY5OTEuZXZ0CkBAIC0wLDAgKzEsNSBAQAorbW91c2Vtb3ZlLDAsMAorbW91c2Vkb3duLGxlZnQsMCwwCittb3VzZXVwLGxlZnQsMCwwCitjaGFyY29kZSw4MAorbW91c2Vtb3ZlLDAsMjAwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwMjY5OTEuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTAyNjk5MS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmI3NjU3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwMjY5OTEuaW4KQEAgLTAsMCArMSw2NSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9YRkEgNCAwIFIKKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8eGRwIHhtbG5zPSJodHRwOi8vbnMuYWRvYmUuY29tL3hkcC8iPgorICA8Y29uZmlnPgorICAgIDxhY3JvYmF0PgorICAgICAgPGFjcm9iYXQ3PgorICAgICAgICA8ZHluYW1pY1JlbmRlcj5yZXF1aXJlZDwvZHluYW1pY1JlbmRlcj4KKyAgICAgIDwvYWNyb2JhdDc+CisgICAgPC9hY3JvYmF0PgorICAgIDxwcmVzZW50PgorICAgICAgPHBkZj4KKyAgICAgICAgPGludGVyYWN0aXZlPjE8L2ludGVyYWN0aXZlPgorICAgICAgPC9wZGY+CisgICAgPC9wcmVzZW50PgorICA8L2NvbmZpZz4KKyAgPHRlbXBsYXRlPgorICAgIDxzdWJmb3JtPgorICAgICAgPGJvb2tlbmQgbGVhZGVyPSIkIi8+CisgICAgICA8a2VlcCBpbnRhY3Q9Im5vbmUiIHByZXZpb3VzPSJjb250ZW50QXJlYSIvPgorICAgICAgPGZpZWxkIG5hbWU9Ik4wMSIgbWluSD0iMzJpbiI+CisgICAgICAgIDx1aT4KKyAgICAgICAgICA8Y2hvaWNlTGlzdD4KKyAgICAgICAgICAgIDxtYXJnaW4gcmlnaHRJbnNldD0iOGluIi8+CisgICAgICAgICAgPC9jaG9pY2VMaXN0PgorICAgICAgICA8L3VpPgorICAgICAgPC9maWVsZD4KKyAgICAgIDxmaWVsZCBtaW5IPSIzMmluIj4KKyAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJjaGFuZ2UiPgorICAgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICAkaG9zdC5zZXRGb2N1cygiTjAxIikKKyAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPC9ldmVudD4KKyAgICAgIDwvZmllbGQ+CisgICAgPC9zdWJmb3JtPgorICA8L3RlbXBsYXRlPgorPC94ZHA+CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwMzk2MjkuZXZ0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwMzk2MjkuZXZ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2ZDM3YmUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTAzOTYyOS5ldnQKQEAgLTAsMCArMSwzIEBACittb3VzZWRvd24sbGVmdCwyOTUsMTg3Cittb3VzZXVwLGxlZnQsMjk1LDE4Nwora2V5Y29kZSw0MApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDM5NjI5LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwMzk2MjkuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkxMWRiNgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDM5NjI5LmluCkBAIC0wLDAgKzEsMTg4IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvQWNyb0Zvcm0gMyAwIFIKKyAgL1BhZ2VzIDUgMCBSCisgIC9OZWVkc1JlbmRlcmluZyB0cnVlCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvWEZBIFsKKyAgICAocHJlYW1ibGUpIDcgMCBSCisgICAgKGNvbmZpZykgOCAwIFIKKyAgICAodGVtcGxhdGUpIDkgMCBSCisgICAgKGZvcm0pIDEwIDAgUgorICAgIChwb3N0YW1ibGUpIDExIDAgUgorICBdCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWyAxMiAwIFIgXQorPj4KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzx4ZHA6eGRwIHhtbG5zOnhkcD0iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvIiB0aW1lU3RhbXA9IjIwMDctMDgtMDdUMTg6MzU6MjRaIiB1dWlkPSIzYjZjNmVhMy0zZWRmLTQwZjUtOTBmZi01MWVlMjAyZTE1YjQiPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzxjb25maWcgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGNpLzIuNi8iPgorICA8YWdlbnQgbmFtZT0iZGVzaWduZXIiPgorICAgIDxkZXN0aW5hdGlvbj5wZGY8L2Rlc3RpbmF0aW9uPgorICAgIDxwZGY+CisgICAgICA8IS0tICBbMC4ubl0gIC0tPgorICAgICAgPGZvbnRJbmZvLz4KKyAgICA8L3BkZj4KKyAgPC9hZ2VudD4KKyAgPHByZXNlbnQ+CisgICAgPCEtLSAgWzAuLm5dICAtLT4KKyAgICA8cGRmPgorICAgICAgPCEtLSAgWzAuLm5dICAtLT4KKyAgICAgIDx2ZXJzaW9uPjEuNzwvdmVyc2lvbj4KKyAgICAgIDxyZW5kZXJQb2xpY3k+Y2xpZW50PC9yZW5kZXJQb2xpY3k+CisgICAgICA8Y3JlYXRvcj5BZG9iZSBMaXZlQ3ljbGUgRGVzaWduZXIgRVMgOC4xPC9jcmVhdG9yPgorICAgICAgPHByb2R1Y2VyPkFkb2JlIExpdmVDeWNsZSBEZXNpZ25lciBFUyA4LjE8L3Byb2R1Y2VyPgorICAgICAgPHNjcmlwdE1vZGVsPlhGQTwvc2NyaXB0TW9kZWw+CisgICAgICA8aW50ZXJhY3RpdmU+MTwvaW50ZXJhY3RpdmU+CisgICAgICA8dGFnZ2VkPjE8L3RhZ2dlZD4KKyAgICAgIDxmb250SW5mbz4KKyAgICAgICAgPGVtYmVkPjE8L2VtYmVkPgorICAgICAgPC9mb250SW5mbz4KKyAgICAgIDxjb21wcmVzc2lvbj4KKyAgICAgICAgPGxldmVsPjY8L2xldmVsPgorICAgICAgICA8Y29tcHJlc3NMb2dpY2FsU3RydWN0dXJlPjE8L2NvbXByZXNzTG9naWNhbFN0cnVjdHVyZT4KKyAgICAgIDwvY29tcHJlc3Npb24+CisgICAgICA8bGluZWFyaXplZD4xPC9saW5lYXJpemVkPgorICAgICAgPHZpZXdlclByZWZlcmVuY2VzPgorICAgICAgICA8YWRkVmlld2VyUHJlZmVyZW5jZXM+MDwvYWRkVmlld2VyUHJlZmVyZW5jZXM+CisgICAgICAgIDxkdXBsZXhPcHRpb24+c2ltcGxleDwvZHVwbGV4T3B0aW9uPgorICAgICAgICA8bnVtYmVyT2ZDb3BpZXM+MDwvbnVtYmVyT2ZDb3BpZXM+CisgICAgICA8L3ZpZXdlclByZWZlcmVuY2VzPgorICAgIDwvcGRmPgorICAgIDxjYWNoZT4KKyAgICAgIDxtYWNyb0NhY2hlLz4KKyAgICAgIDxyZW5kZXJDYWNoZS8+CisgICAgPC9jYWNoZT4KKyAgICA8aW5jcmVtZW50YWxNZXJnZS8+CisgICAgPHNjcmlwdD4KKyAgICAgIDxydW5TY3JpcHRzLz4KKyAgICAgIDxleGNsdWRlLz4KKyAgICAgIDxjdXJyZW50UGFnZS8+CisgICAgPC9zY3JpcHQ+CisgICAgPGNvcGllcy8+CisgICAgPGxheW91dC8+CisgICAgPHhkcD4KKyAgICAgIDxwYWNrZXRzPio8L3BhY2tldHM+CisgICAgPC94ZHA+CisgICAgPGRlc3RpbmF0aW9uPnBkZjwvZGVzdGluYXRpb24+CisgIDwvcHJlc2VudD4KKyAgPHBzTWFwLz4KKyAgPGFjcm9iYXQ+CisgICAgPGFjcm9iYXQ3PgorICAgICAgPGR5bmFtaWNSZW5kZXI+cmVxdWlyZWQ8L2R5bmFtaWNSZW5kZXI+CisgICAgPC9hY3JvYmF0Nz4KKyAgPC9hY3JvYmF0PgorPC9jb25maWc+CitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPHRlbXBsYXRlIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS10ZW1wbGF0ZS8yLjYvIj4KKyAgPHN1YmZvcm0gbmFtZT0iZm9ybTEiPgorICAgIDxwYWdlU2V0PgorICAgICAgPHBhZ2VBcmVhIGlkPSJQYWdlMSIgbmFtZT0iUGFnZTEiPgorICAgICAgICA8Y29udGVudEFyZWEgaD0iMTAuNWluIiB3PSI4aW4iIHg9IjAuMjVpbiIgeT0iMC4yNWluIi8+CisgICAgICAgIDxtZWRpdW0gbG9uZz0iMTFpbiIgc2hvcnQ9IjguNWluIiBzdG9jaz0ibGV0dGVyIi8+CisgICAgICA8L3BhZ2VBcmVhPgorICAgIDwvcGFnZVNldD4KKyAgICA8c3ViZm9ybSBoPSIxMC41aW4iIHc9IjhpbiI+CisgICAgICA8ZmllbGQgaD0iOS4wMDAxbW0iIG5hbWU9IkNob2ljZUxpc3QiIHc9IjQ3LjYyNW1tIiB4PSI2LjM1bW0iIHk9IjkyLjA3NW1tIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDxjaG9pY2VMaXN0Lz4KKyAgICAgICAgPC91aT4KKyAgICAgICAgPGl0ZW1zPgorICAgICAgICAgIDx0ZXh0PkZvbzwvdGV4dD4KKyAgICAgICAgPC9pdGVtcz4KKyAgICAgIDwvZmllbGQ+CisgICAgICA8ZmllbGQgaD0iMTAwbW0iIG5hbWU9IkNob2ljZUxpc3QxIiB3PSIxMDBtbSIgeD0iMG1tIiB5PSIwbW0iPgorICAgICAgPHVpPgorICAgICAgICA8Y2hvaWNlTGlzdCBvcGVuPSJvbkVudHJ5Ii8+CisgICAgICA8L3VpPgorICAgICAgPGl0ZW1zPgorICAgICAgICA8dGV4dD4xMTExMTExMTExMTExPC90ZXh0PgorICAgICAgICA8dGV4dD4yMjIyMjIyMjIyMjIyMjI8L3RleHQ+CisgICAgICA8L2l0ZW1zPgorICAgICAgPGV2ZW50IGFjdGl2aXR5PSJjaGFuZ2UiPgorICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICBhICs9IDE7CisgICAgICAgIGlmIChhID09IDIpIHsKKyAgICAgICAgICAgIGxpc3QxID0geGZhLnJlc29sdmVOb2RlKCJDaG9pY2VMaXN0Iik7CisgICAgICAgICAgICB4ZmEuaG9zdC5zZXRGb2N1cyhsaXN0MSk7CisgICAgICAgICAgICB4ZmEudGVtcGxhdGUucmVtZXJnZSgpOworICAgICAgICAgICAgeGZhLmhvc3Qub3Blbkxpc3QobGlzdDEpOworICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgPC9ldmVudD4KKyAgICA8L2ZpZWxkPgorICA8L3N1YmZvcm0+CisgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSI+CisgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICBhID0gMDsKKyAgICAgIDwvc2NyaXB0PgorICAgIDwvZXZlbnQ+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTAgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzxmb3JtIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS1mb3JtLzIuNi8iPgorPC9mb3JtPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDExIDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8L3hkcDp4ZHA+CitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTIgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9Db250ZW50cyAxMyAwIFIKKyAgL0Nyb3BCb3ggWyAwLjAgMC4wIDYxMi4wIDc5Mi4wIF0KKyAgL01lZGlhQm94IFsgMC4wIDAuMCA2MTIuMCA3OTIuMCBdCisgIC9QYXJlbnQgNSAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvVDFfMCAxNCAwIFIKKyAgICA+PgorICAgIC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdCisgID4+CisgIC9Sb3RhdGUgMAorICAvU3RydWN0UGFyZW50cyAwCis+PgorZW5kb2JqCit7e29iamVjdCAxNCAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvSGVsdmV0aWNhCisgIC9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA0MDMyOS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDQwMzI5LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxMTcwODQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA0MDMyOS5pbgpAQCAtMCwwICsxLDk5IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvUGFnZXMgMiAwIFIKKyAgL05lZWRzUmVuZGVyaW5nIHRydWUKKyAgL0Fjcm9Gb3JtIDw8L1hGQSA1IDAgUj4+CisgIC9PcGVuQWN0aW9uIDMgMCBSCisgIC9UeXBlIC9DYXRhbG9nCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWyA0IDAgUiBdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvUyAvSmF2YVNjcmlwdAorICAvSlMgKAorICApCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbIDAgMCA3OTUgODQyIF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx4ZHA6eGRwIHhtbG5zOnhkcD0iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvIj4KKzx0ZW1wbGF0ZSA+CisgIDxzdWJmb3JtIGFsbG93TWFjcm89IjAiIGxheW91dD0ibHIiIG1lcmdlTW9kZT0iY29uc3VtZURhdGEiIG5hbWU9InN1YmZvcm1fMCIgPgorICAgIDxwYWdlU2V0ID4KKyAgICAgIDxvY2N1ciBpbml0aWFsPSIxIiBtYXg9IjEwIiBtaW49IjAiID48L29jY3VyPgorICAgICAgPHBhZ2VBcmVhID4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjAuNzVpbiIgdz0iMC4yNWluIiB4PSIwLjI1aW4iIHk9IjAuMjVpbiIgPjwvY29udGVudEFyZWE+CisgICAgICAgIDxzdWJmb3JtIGFsbG93TWFjcm89IjAiIGxheW91dD0icm93IiBtZXJnZU1vZGU9ImNvbnN1bWVEYXRhIiBuYW1lPSJzdWJmb3JtXzEiID4KKyAgICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9ImluaXRpYWxpemUiID4KKyAgICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgICA8L2V2ZW50PgorICAgICAgICAgIDxmaWVsZCBuYW1lPSJmaWVsZF8xIiA+CisgICAgICAgICAgICA8YmluZCBtYXRjaD0iZGF0YVJlZiIgcmVmPSJhIiA+PC9iaW5kPgorICAgICAgICAgICAgPGNhbGN1bGF0ZSA+CisgICAgICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICAgICAgdmFyIGY9eGZhLnJlc29sdmVOb2RlKCJ4ZmEuZm9ybS5zdWJmb3JtXzAiKTsKKyAgICAgICAgICAgICAgICB4ZmEuaG9zdC5zZXRGb2N1cyhmKTsKKyAgICAgICAgICAgICAgICBmLm1hcmsgPSJzcXVhcmUiOworICAgICAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgICAgIDwvY2FsY3VsYXRlPgorICAgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSIgPgorICAgICAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgICAgIHhmYS5ob3N0LnJlc2V0RGF0YSh0aGlzKTsKKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2V2ZW50PgorICAgICAgICAgIDwvZmllbGQ+CisgICAgICAgIDwvc3ViZm9ybT4KKyAgICAgIDwvcGFnZUFyZWE+CisgICAgPC9wYWdlU2V0PgorICAgIDxmaWVsZCBuYW1lPSJmaWVsZF8yIiA+CisgICAgICA8YmluZCBtYXRjaD0iZGF0YVJlZiIgcmVmPSJhIiA+PC9iaW5kPgorICAgICAgPGNhbGN1bGF0ZSA+CisgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgeGZhLmhvc3Quc2V0Rm9jdXModGhpcyk7CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgPC9jYWxjdWxhdGU+CisgICAgICA8aXRlbXMgcHJlc2VuY2U9ImhpZGRlbiIgc2F2ZT0iMCIgPgorICAgICAgICA8dGV4dCA+YTwvdGV4dD4KKyAgICAgICAgPHRleHQgPmI8L3RleHQ+CisgICAgICAgIDx0ZXh0ID5jPC90ZXh0PgorICAgICAgPC9pdGVtcz4KKyAgICAgIDx1aSA+CisgICAgICAgIDxjaG9pY2VMaXN0IGNvbW1pdE9uPSJleGl0IiBvcGVuPSJvbkVudHJ5IiB0ZXh0RW50cnk9IjEiID48L2Nob2ljZUxpc3Q+CisgICAgICA8L3VpPgorICAgICAgPHZhbHVlIG92ZXJyaWRlPSIwIiA+CisgICAgICAgIDx0ZXh0ID5hPC90ZXh0PgorICAgICAgPC92YWx1ZT4KKyAgICAgIDxldmVudCBhY3Rpdml0eT0iaW5pdGlhbGl6ZSIgPgorICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICA8L3NjcmlwdD4KKyAgICAgIDwvZXZlbnQ+CisgICAgICA8ZXZlbnQgYWN0aXZpdHk9ImNoYW5nZSIgPgorICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgIHhmYS5mb3JtLnJlbWVyZ2UoKTsKKyAgICAgICAgICB4ZmEuaG9zdC5vcGVuTGlzdCh0aGlzKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICA8L2V2ZW50PgorICAgIDwvZmllbGQ+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+Cis8L3hkcDp4ZHA+CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNDI5MTUuZXZ0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNDI5MTUuZXZ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwY2VhODkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA0MjkxNS5ldnQKQEAgLTAsMCArMSw4IEBACittb3VzZWRvd24sbGVmdCwwLDAKK21vdXNldXAsbGVmdCwwLDAKK2tleWNvZGUsOQora2V5Y29kZSw5Cittb3VzZWRvd24sbGVmdCwwLDAKK21vdXNldXAsbGVmdCwwLDAKK21vdXNlZG93bixsZWZ0LDAsMAorbW91c2V1cCxsZWZ0LDAsMApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDQyOTE1LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDQyOTE1LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmEyYzhiCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNDI5MTUucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDQyOTE1X2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDQyOTE1X2V4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNDI5MTVfZXhwZWN0ZWQudHh0CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA0MzUwOC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDQzNTA4LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhZmUxMjkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA0MzUwOC5pbgpAQCAtMCwwICsxLDYyIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDw8CisgICAgL1hGQSA0IDAgUgorICA+PgorICAvTmVlZHNSZW5kZXJpbmcgdHJ1ZQorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgMyAzXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPHhkcCB4bWxucz0iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvIj4KKzxjb25maWc+CisgIDxhY3JvYmF0PgorICAgIDxhY3JvYmF0Nz4KKyAgICAgIDxkeW5hbWljUmVuZGVyPnJlcXVpcmVkPC9keW5hbWljUmVuZGVyPgorICAgIDwvYWNyb2JhdDc+CisgIDwvYWNyb2JhdD4KKzwvY29uZmlnPgorPHRlbXBsYXRlPgorICA8c3ViZm9ybT4KKyAgICA8YnJlYWtCZWZvcmU+CisgICAgICA8c2NyaXB0PgorICAgICAgICAkLiNmaWVsZFsxXT0yCisgICAgICA8L3NjcmlwdD4KKyAgICA8L2JyZWFrQmVmb3JlPgorICAgIDxmaWVsZD4KKyAgICAgIDx1aT4KKyAgICAgICAgPGNob2ljZUxpc3Qgb3Blbj0ibXVsdGlTZWxlY3QiPjwvY2hvaWNlTGlzdD4KKyAgICAgIDwvdWk+CisgICAgPC9maWVsZD4KKyAgICA8ZmllbGQ+CisgICAgICA8ZXZlbnQgYWN0aXZpdHk9ImNoYW5nZSI+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgJGhvc3Qub3Blbkxpc3QoJnF1b3Q7JGZvcm0uI2ZpZWxkWzBdJnF1b3Q7KQorICAgICAgICA8L3NjcmlwdD4KKyAgICAgIDwvZXZlbnQ+CisgICAgPC9maWVsZD4KKyAgPC9zdWJmb3JtPgorPC90ZW1wbGF0ZT4KKzwveGRwPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA0MzUxMC5ldnQgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA0MzUxMC5ldnQKaW5kZXggODkxYTQ5ZC4uMDhlOThjZiAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNDM1MTAuZXZ0CisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDQzNTEwLmV2dApAQCAtMSArMSBAQAotbW91c2Vkb3VibGVjbGljayxsZWZ0LDAsMApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK21vdXNlZG91YmxlY2xpY2ssbGVmdCwwLDAKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDQ3OTE0LmV2dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDQ3OTE0LmV2dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWI5NDhkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNDc5MTQuZXZ0CkBAIC0wLDAgKzEsNCBAQAorbW91c2Vkb3duLGxlZnQsMCwyCittb3VzZXVwLGxlZnQsMCwyCittb3VzZWRvd24sbGVmdCwwLDIKK21vdXNldXAsbGVmdCwwLDIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA0NzkxNC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDQ3OTE0LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2OWQ3YTAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA0NzkxNC5pbgpAQCAtMCwwICsxLDQ3IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvQWNyb0Zvcm0gPDwKKyAgICAvWEZBIDIgMCBSCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8eGRwIHhtbG5zPSJodHRwOi8vbnMuYWRvYmUuY29tL3hkcC8iPgorICA8Y29uZmlnPgorICAgIDxhY3JvYmF0PgorICAgICAgPGFjcm9iYXQ3PgorICAgICAgICA8ZHluYW1pY1JlbmRlcj5yZXF1aXJlZDwvZHluYW1pY1JlbmRlcj4KKyAgICAgIDwvYWNyb2JhdDc+CisgICAgPC9hY3JvYmF0PgorICAgIDxwcmVzZW50PgorICAgICAgPHBkZj4KKyAgICAgICAgPGludGVyYWN0aXZlPjE8L2ludGVyYWN0aXZlPgorICAgICAgPC9wZGY+CisgICAgPC9wcmVzZW50PgorICA8L2NvbmZpZz4KKyAgPHRlbXBsYXRlPgorICAgIDxzdWJmb3JtPgorICAgICAgPGJvb2tlbmQgbGVhZGVyPSIkIj48L2Jvb2tlbmQ+CisgICAgICA8a2VlcCBwcmV2aW91cz0icGFnZUFyZWEiPjwva2VlcD4KKyAgICAgIDxmaWVsZCBhbmNob3JUeXBlPSJtaWRkbGVDZW50ZXIiPgorICAgICAgICA8dWk+CisgICAgICAgICAgPGNob2ljZUxpc3Qgb3Blbj0ibXVsdGlTZWxlY3QiPgorICAgICAgICAgICAgPGJvcmRlcj48ZWRnZSBzdHJva2U9InJhaXNlZCI+PC9lZGdlPjwvYm9yZGVyPgorICAgICAgICAgICAgPG1hcmdpbj48L21hcmdpbj4KKyAgICAgICAgICA8L2Nob2ljZUxpc3Q+CisgICAgICAgIDwvdWk+CisgICAgICAgIDxpdGVtcyBzYXZlPSIxIj48ZmxvYXQ+NDEuMDwvZmxvYXQ+PC9pdGVtcz4KKyAgICAgICAgPGl0ZW1zPjxmbG9hdD40My4wPC9mbG9hdD48aW50ZWdlcj40NDwvaW50ZWdlcj48L2l0ZW1zPgorICAgICAgPC9maWVsZD4KKyAgICA8L3N1YmZvcm0+CisgIDwvdGVtcGxhdGU+Cis8L3hkcD4KK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNTI2NTEuZXZ0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNTI2NTEuZXZ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4OGVmMDYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA1MjY1MS5ldnQKQEAgLTAsMCArMSw0IEBACittb3VzZW1vdmUsMTAwLDEwMAorbW91c2Vkb3duLGxlZnQsMTAwLDEwMAorbW91c2V1cCxsZWZ0LDEwMCwxMDAKK2NoYXJjb2RlLDk2CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA1MjY1MS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDUyNjUxLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyNjMxMmQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA1MjY1MS5pbgpAQCAtMCwwICsxLDE2OCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL0Fjcm9Gb3JtIDMgMCBSCisgIC9QYWdlcyA1IDAgUgorICAvTmVlZHNSZW5kZXJpbmcgdHJ1ZQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL0RBICgvSGVsdiAwIFRmIDAgZyApCisgIC9EUiA8PAorICAgIC9Gb250IDw8CisgICAgICAvSGVsdiA5IDAgUgorICAgID4+CisgID4+CisgIC9YRkEgWworICAgIChwcmVhbWJsZSkgMTAgMCBSCisgICAgKGNvbmZpZykgMTEgMCBSCisgICAgKHRlbXBsYXRlKSAxMiAwIFIKKyAgICAoZm9ybSkgMTMgMCBSCisgICAgKHBvc3RhbWJsZSkgMTQgMCBSCisgIF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19ICA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzYgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL0Nyb3BCb3ggWzAuMCAwLjAgNjEyLjAgNzkyLjBdCisgIC9NZWRpYUJveCBbMC4wIDAuMCA2MTIuMCA3OTIuMF0KKyAgL1BhcmVudCA1IDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL1RleHRdCisgID4+CisgIC9Sb3RhdGUgMAorICAvU3RydWN0UGFyZW50cyAwCis+PgorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKyAgL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDkgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorICAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZworPj4KK2VuZG9iagore3tvYmplY3QgMTAgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8eGRwOnhkcCB4bWxuczp4ZHA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGRwLyI+CitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTEgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzxjb25maWcgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGNpLzIuNi8iPgorICA8YWdlbnQgbmFtZT0iZGVzaWduZXIiPgorICAgIDxkZXN0aW5hdGlvbj5wZGY8L2Rlc3RpbmF0aW9uPgorICAgIDxwZGY+CisgICAgICA8Zm9udEluZm8vPgorICAgIDwvcGRmPgorICA8L2FnZW50PgorICA8cHJlc2VudD4KKyAgICA8cGRmPgorICAgICAgPHZlcnNpb24+MS43PC92ZXJzaW9uPgorICAgICAgPHJlbmRlclBvbGljeT5jbGllbnQ8L3JlbmRlclBvbGljeT4KKyAgICAgIDxzY3JpcHRNb2RlbD5YRkE8L3NjcmlwdE1vZGVsPgorICAgICAgPGludGVyYWN0aXZlPjE8L2ludGVyYWN0aXZlPgorICAgIDwvcGRmPgorICAgIDx4ZHA+CisgICAgICA8cGFja2V0cz4qPC9wYWNrZXRzPgorICAgIDwveGRwPgorICAgIDxkZXN0aW5hdGlvbj5wZGY8L2Rlc3RpbmF0aW9uPgorICA8L3ByZXNlbnQ+CisgIDxhY3JvYmF0PgorICAgIDxhY3JvYmF0Nz4KKyAgICAgIDxkeW5hbWljUmVuZGVyPnJlcXVpcmVkPC9keW5hbWljUmVuZGVyPgorICAgIDwvYWNyb2JhdDc+CisgIDwvYWNyb2JhdD4KKzwvY29uZmlnPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDEyIDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8dGVtcGxhdGUgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLXRlbXBsYXRlLzIuNi8iPgorICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBsb2NhbGU9ImVuX1VTIiBuYW1lPSJmb3JtMSIgcmVzdG9yZVN0YXRlPSJhdXRvIj4KKyAgICA8cGFnZVNldD4KKyAgICAgIDxwYWdlQXJlYSBpZD0iUGFnZTEiIG5hbWU9IlBhZ2UxIj4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjEwLjVpbiIgdz0iOGluIiB4PSIwLjI1aW4iIHk9IjAuMjVpbiIvPgorICAgICAgICA8bWVkaXVtIGxvbmc9IjExaW4iIHNob3J0PSI4LjVpbiIgc3RvY2s9ImxldHRlciIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPHN1YmZvcm0gaD0iMTAuNWluIiB3PSI4aW4iIG5hbWU9InN1YmZvcm0yIj4KKyAgICAgIDxmaWVsZCBoPSI5LjAwMDFtbSIgbmFtZT0iZmllbGQxIiB3PSI0Ny42MjVtbSIgeD0iNi4zNW1tIiB5PSI5Mi4wNzVtbSI+CisgICAgICAgIDx1aT4KKyAgICAgICAgICA8Y2hvaWNlTGlzdC8+CisgICAgICAgIDwvdWk+CisgICAgICAgIDxpdGVtcyBzYXZlPSIxIj4KKyAgICAgICAgICA8dGV4dD5TaW5nbGU8L3RleHQ+CisgICAgICAgICAgPHRleHQ+TWFycmllZDwvdGV4dD4KKyAgICAgICAgICA8dGV4dD5PdGhlcjwvdGV4dD4KKyAgICAgICAgPC9pdGVtcz4KKyAgICAgIDwvZmllbGQ+CisgICAgICA8ZmllbGQgbmFtZT0iZmllbGQyIiBoPSIyMDBtbSIgdz0iMjAwbW0iIHg9IjFtbSIgeT0iMW1tIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDx0ZXh0RWRpdC8+CisgICAgICAgIDwvdWk+CisgICAgICAgIDx2YWx1ZT4KKyAgICAgICAgICA8dGV4dD5wZGZpdW08L3RleHQ+CisgICAgICAgIDwvdmFsdWU+CisgICAgICAgIDxldmVudCBhY3Rpdml0eT0iY2hhbmdlIj4KKyAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgZjJfY2hhbmdlID0gZjJfY2hhbmdlICsgMTsKKyAgICAgICAgICAgIGlmIChmMl9jaGFuZ2UgPT0gMikgeworICAgICAgICAgICAgICAgIHhmYS5ldmVudC5jYW5jZWxBY3Rpb24gPSB0cnVlOworICAgICAgICAgICAgICAgIGYxID0geGZhLnJlc29sdmVOb2RlKCJ4ZmEuZm9ybS4uZmllbGQxIik7CisgICAgICAgICAgICAgICAgeGZhLmhvc3Quc2V0Rm9jdXMoZjEpOworICAgICAgICAgICAgICAgIHhmYS50ZW1wbGF0ZS5yZW1lcmdlKCk7CisgICAgICAgICAgICAgICAgeGZhLmhvc3Qub3Blbkxpc3QoZjEpOworICAgICAgICAgICAgfQorICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8L2V2ZW50PgorICAgICAgPC9maWVsZD4KKyAgICA8L3N1YmZvcm0+CisgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSI+CisgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICBmMl9jaGFuZ2UgPSAwOworICAgICAgICBmMiA9IHhmYS5yZXNvbHZlTm9kZSgieGZhLmZvcm0uLmZpZWxkMiIpOworICAgICAgICB4ZmEuaG9zdC5zZXRGb2N1cyhmMik7CisgICAgIDwvc2NyaXB0PgorICAgIDwvZXZlbnQ+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTMgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzxmb3JtIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS1mb3JtLzIuNi8iPjwvZm9ybT4KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxNCAwfX0gPDwKKyB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8L3hkcDp4ZHA+CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNTI3ODYuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA1Mjc4Ni5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWRkNWU5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNTI3ODYuaW4KQEAgLTAsMCArMSwxNjggQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9BY3JvRm9ybSAzIDAgUgorICAvUGFnZXMgNSAwIFIKKyAgL05lZWRzUmVuZGVyaW5nIHRydWUKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9EQSAoL0hlbHYgMCBUZiAwIGcgKQorICAvRFIgPDwKKyAgICAvRm9udCA8PAorICAgICAgL0hlbHYgOSAwIFIKKyAgICA+PgorICA+PgorICAvWEZBIFsKKyAgICAocHJlYW1ibGUpIDEwIDAgUgorICAgIChjb25maWcpIDExIDAgUgorICAgICh0ZW1wbGF0ZSkgMTIgMCBSCisgICAgKGZvcm0pIDEzIDAgUgorICAgIChwb3N0YW1ibGUpIDE0IDAgUgorICBdCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzYgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL0Nyb3BCb3ggWzAuMCAwLjAgNjEyLjAgNzkyLjBdCisgIC9NZWRpYUJveCBbMC4wIDAuMCA2MTIuMCA3OTIuMF0KKyAgL1BhcmVudCA1IDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL1RleHRdCisgID4+CisgIC9Sb3RhdGUgMAorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvSGVsdmV0aWNhCisgIC9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCis+PgorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKyAgL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEwIDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHhkcDp4ZHAgeG1sbnM6eGRwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hkcC8iPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDExIDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8Y29uZmlnIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hjaS8yLjYvIj4KKyAgPGFnZW50IG5hbWU9ImRlc2lnbmVyIj4KKyAgICA8ZGVzdGluYXRpb24+cGRmPC9kZXN0aW5hdGlvbj4KKyAgICA8cGRmPgorICAgICAgPGZvbnRJbmZvLz4KKyAgICA8L3BkZj4KKyAgPC9hZ2VudD4KKyAgPHByZXNlbnQ+CisgICAgPHBkZj4KKyAgICAgIDx2ZXJzaW9uPjEuNzwvdmVyc2lvbj4KKyAgICAgIDxyZW5kZXJQb2xpY3k+Y2xpZW50PC9yZW5kZXJQb2xpY3k+CisgICAgICA8c2NyaXB0TW9kZWw+WEZBPC9zY3JpcHRNb2RlbD4KKyAgICAgIDxpbnRlcmFjdGl2ZT4xPC9pbnRlcmFjdGl2ZT4KKyAgICA8L3BkZj4KKyAgICA8eGRwPgorICAgICAgPHBhY2tldHM+KjwvcGFja2V0cz4KKyAgICA8L3hkcD4KKyAgICA8ZGVzdGluYXRpb24+cGRmPC9kZXN0aW5hdGlvbj4KKyAgPC9wcmVzZW50PgorICA8cHNNYXAvPgorICA8YWNyb2JhdD4KKyAgICA8YWNyb2JhdDc+CisgICAgICA8ZHluYW1pY1JlbmRlcj5yZXF1aXJlZDwvZHluYW1pY1JlbmRlcj4KKyAgICA8L2Fjcm9iYXQ3PgorICA8L2Fjcm9iYXQ+Cis8L2NvbmZpZz4KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxMiAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPHRlbXBsYXRlIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS10ZW1wbGF0ZS8yLjYvIj4KKyAgPHN1YmZvcm0gbGF5b3V0PSJ0YiIgbG9jYWxlPSJlbl9VUyIgbmFtZT0iZm9ybTEiIHJlc3RvcmVTdGF0ZT0iYXV0byI+CisgICAgPHBhZ2VTZXQ+CisgICAgICA8cGFnZUFyZWEgaWQ9IlBhZ2UxIiBuYW1lPSJQYWdlMSI+CisgICAgICAgIDxjb250ZW50QXJlYSBoPSIxMC41aW4iIHc9IjhpbiIgeD0iMC4yNWluIiB5PSIwLjI1aW4iLz4KKyAgICAgICAgPG1lZGl1bSBsb25nPSIxMWluIiBzaG9ydD0iOC41aW4iIHN0b2NrPSJsZXR0ZXIiLz4KKyAgICAgIDwvcGFnZUFyZWE+CisgICAgPC9wYWdlU2V0PgorICAgIDxzdWJmb3JtIGg9IjEwLjVpbiIgdz0iOGluIiBuYW1lPSJzdWJmb3JtMiI+CisgICAgICA8ZmllbGQgaD0iOS4wMDAxbW0iIG5hbWU9ImNob2ljZUxpc3QwIiB3PSI0Ny42MjVtbSIgeD0iNi4zNW1tIiB5PSI5Mi4wNzVtbSI+CisgICAgICAgIDx1aT4KKyAgICAgICAgICA8Y2hvaWNlTGlzdC8+CisgICAgICAgIDwvdWk+CisgICAgICAgIDxpdGVtcyBzYXZlPSIxIj4KKyAgICAgICAgICA8dGV4dD5TaW5nbGU8L3RleHQ+CisgICAgICAgICAgPHRleHQ+TWFycmllZDwvdGV4dD4KKyAgICAgICAgICA8dGV4dD5PdGhlcjwvdGV4dD4KKyAgICAgICAgPC9pdGVtcz4KKyAgICAgIDwvZmllbGQ+CisgICAgICA8ZmllbGQgbmFtZT0iY2hvaWNlTGlzdDEiIGg9IjEwbW0iIHc9IjFtbSIgeD0iNW1tIiB5PSI1MG1tIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDx0ZXh0RWRpdCBoU2Nyb2xsUG9saWN5PSJvZmYiIHZTY3JvbGxQb2xpY3k9Im9mZiIgbXVsdGlMaW5lPSIwIi8+CisgICAgICAgIDwvdWk+CisgICAgICA8dmFsdWU+CisgICAgICAgIDx0ZXh0IG1heENoYXJzPSI2Ij5wZGZpdW08L3RleHQ+CisgICAgICA8L3ZhbHVlPgorICAgICAgPGV2ZW50IGFjdGl2aXR5PSJmdWxsIj4KKyAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICBmdWxsX2NvdW50ICs9IDE7CisgICAgICAgICAgaWYgKGZ1bGxfY291bnQgPT0gMikgeworICAgICAgICAgICAgZjEgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5jaG9pY2VMaXN0MCIpOworICAgICAgICAgICAgeGZhLmhvc3Quc2V0Rm9jdXMoZjEpOworICAgICAgICAgICAgeGZhLnRlbXBsYXRlLnJlbWVyZ2UoKTsKKyAgICAgICAgICAgIHhmYS5ob3N0Lm9wZW5MaXN0KGYxKTsKKyAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgICAgPC9ldmVudD4KKyAgICA8L2ZpZWxkPgorICA8L3N1YmZvcm0+CisgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSI+CisgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICBmdWxsX2NvdW50ID0gMDsKKyAgICAgICAgY2hvaWNlTGlzdDEgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5jaG9pY2VMaXN0MSIpOworICAgICAgICBjaG9pY2VMaXN0MS5yYXdWYWx1ZSA9ICIxMjM0NTg4ODg4ODg4ODg4ODg4OCI7CisgICAgICAgIHhmYS5ob3N0LnNldEZvY3VzKGNob2ljZUxpc3QxKTsKKyAgICAgIDwvc2NyaXB0PgorICAgIDwvZXZlbnQ+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTMgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzxmb3JtIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS1mb3JtLzIuNi8iPjwvZm9ybT4KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPC94ZHA6eGRwPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDUzNjE3LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNTM2MTcuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU5OGJkYwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDUzNjE3LmluCkBAIC0wLDAgKzEsMTU1IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvQWNyb0Zvcm0gMiAwIFIKKyAgL1BhZ2VzIDMgMCBSCisgIC9FeHRlbnNpb25zIDw8CisgICAgL0FEQkUgPDwKKyAgICAgIC9CYXNlVmVyc2lvbiAvMS43CisgICAgICAvRXh0ZW5zaW9uTGV2ZWwgOAorICAgID4+CisgID4+CisgIC9OZWVkc1JlbmRlcmluZyB0cnVlCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvWEZBIFsKKyAgICAocHJlYW1ibGUpIDUgMCBSCisgICAgKGNvbmZpZykgNiAwIFIKKyAgICAodGVtcGxhdGUpIDcgMCBSCisgICAgKHBvc3RhbWJsZSkgOSAwIFIKKyAgXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFs0IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx4ZHA6eGRwIHhtbG5zOnhkcD0iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvIj4KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8Y29uZmlnIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hjaS8zLjAvIj4KKzxhZ2VudCBuYW1lPSJkZXNpZ25lciI+CisgIDxkZXN0aW5hdGlvbj5wZGY8L2Rlc3RpbmF0aW9uPgorICA8cGRmPgorICAgIDxmb250SW5mby8+CisgIDwvcGRmPgorPC9hZ2VudD4KKzxwcmVzZW50PgorICA8cGRmPgorICAgIDx2ZXJzaW9uPjEuNzwvdmVyc2lvbj4KKyAgICA8YWRvYmVFeHRlbnNpb25MZXZlbD44PC9hZG9iZUV4dGVuc2lvbkxldmVsPgorICAgIDxyZW5kZXJQb2xpY3k+Y2xpZW50PC9yZW5kZXJQb2xpY3k+CisgICAgPHNjcmlwdE1vZGVsPlhGQTwvc2NyaXB0TW9kZWw+CisgICAgPGludGVyYWN0aXZlPjE8L2ludGVyYWN0aXZlPgorICA8L3BkZj4KKyAgPHhkcD4KKyAgICA8cGFja2V0cz4qPC9wYWNrZXRzPgorICA8L3hkcD4KKyAgPGRlc3RpbmF0aW9uPnBkZjwvZGVzdGluYXRpb24+CisgIDxzY3JpcHQ+CisgICAgPHJ1blNjcmlwdHM+c2VydmVyPC9ydW5TY3JpcHRzPgorICA8L3NjcmlwdD4KKzwvcHJlc2VudD4KKzxhY3JvYmF0PgorICA8YWNyb2JhdDc+CisgICAgPGR5bmFtaWNSZW5kZXI+cmVxdWlyZWQ8L2R5bmFtaWNSZW5kZXI+CisgIDwvYWNyb2JhdDc+CisgIDx2YWxpZGF0ZT5wcmVTdWJtaXQ8L3ZhbGlkYXRlPgorPC9hY3JvYmF0PgorPC9jb25maWc+CitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPHRlbXBsYXRlIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS10ZW1wbGF0ZS8yLjYvIj4KKyAgPHN1YmZvcm0gbmFtZT0iZm9ybTEiPgorICAgIDxwYWdlU2V0PgorICAgICAgPHBhZ2VBcmVhIGlkPSJQYWdlMSIgbmFtZT0iUGFnZTEiPgorICAgICAgICA8Y29udGVudEFyZWEgaD0iMTAuNWluIiB3PSI4aW4iIHg9IjAuMjVpbiIgeT0iMC4yNWluIi8+CisgICAgICAgIDxtZWRpdW0gbG9uZz0iMTFpbiIgc2hvcnQ9IjguNWluIiBzdG9jaz0ibGV0dGVyIi8+CisgICAgICA8L3BhZ2VBcmVhPgorICAgIDwvcGFnZVNldD4KKyAgICA8c3ViZm9ybSBoPSIxMC41aW4iIHc9IjhpbiIgbmFtZT0ic3ViZm9ybTIiPgorICAgICAgPGZpZWxkIG5hbWU9ImYxIiBoPSIxMG1tIiB3PSIxMG1tIiB4PSIyMG1tIiB5PSIyMG1tIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDxjaG9pY2VMaXN0Lz4KKyAgICAgICAgPC91aT4KKyAgICAgICAgPGl0ZW1zIHNhdmU9IjEiPgorICAgICAgICAgIDx0ZXh0PlNpbmdsZTwvdGV4dD4KKyAgICAgICAgPC9pdGVtcz4KKyAgICAgIDwvZmllbGQ+CisgICAgICA8c3ViZm9ybSBuYW1lPSJmNCIgeD0iNW1tIiB5PSI1bW0iPgorICAgICAgICAgIDxvY2N1ciBtYXg9Ii0xIi8+CisgICAgICAgICAgPGZpZWxkIG5hbWU9ImYyIiBoPSIxMG1tIiB3PSIxMG1tIiB4PSIxbW0iIHk9IjFtbSI+CisgICAgICAgICAgICA8dWk+CisgICAgICAgICAgICAgIDxkYXRlVGltZUVkaXQvPgorICAgICAgICAgICAgPC91aT4KKyAgICAgICAgICAgIDx2YWx1ZT4KKyAgICAgICAgICAgICAgPGRhdGUvPgorICAgICAgICAgICAgPC92YWx1ZT4KKyAgICAgICAgICAgIDxmb3JtYXQ+CisgICAgICAgICAgICAgIDxwaWN0dXJlPmRhdGV7TU0vREQvWVl9PC9waWN0dXJlPgorICAgICAgICAgICAgPC9mb3JtYXQ+CisgICAgICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9ImluaXRpYWxpemUiPgorICAgICAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgICAgIHRoaXMucmF3VmFsdWUgPSAiMjAyMCIgKyAiLSIgKyAiMTIiICsgIi0iICsgIjEwIjsKKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2V2ZW50PgorICAgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJjaGFuZ2UiPgorICAgICAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgICAgIGEgPSBhICsgMTsKKyAgICAgICAgICAgICAgICBpZiAoYSA9PSAyKSB7CisgICAgICAgICAgICAgICAgICB4ZmEuZXZlbnQuY2FuY2VsQWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgIGMgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5mMSIpOworICAgICAgICAgICAgICAgICAgeGZhLmhvc3Quc2V0Rm9jdXMoYyk7CisgICAgICAgICAgICAgICAgICBkID0geGZhLnJlc29sdmVOb2RlKCJ4ZmEuZm9ybS4uZjQiKTsKKyAgICAgICAgICAgICAgICAgIGQuaW5zdGFuY2VNYW5hZ2VyLmFkZEluc3RhbmNlKDEpOworICAgICAgICAgICAgICAgICAgZC5pbnN0YW5jZU1hbmFnZXIucmVtb3ZlSW5zdGFuY2UoMCk7CisgICAgICAgICAgICAgICAgICB4ZmEuaG9zdC5vcGVuTGlzdChjKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgICAgPC9ldmVudD4KKyAgICAgICAgICA8L2ZpZWxkPgorICAgICAgPC9zdWJmb3JtPgorICAgIDwvc3ViZm9ybT4KKyAgICA8ZXZlbnQgYWN0aXZpdHk9ImRvY1JlYWR5Ij4KKyAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgIGEgPSAwOworICAgICAgICBiID0geGZhLnJlc29sdmVOb2RlKCJ4ZmEuZm9ybS4uZjIiKTsKKyAgICAgICAgeGZhLmhvc3Quc2V0Rm9jdXMoYik7CisgICAgICA8L3NjcmlwdD4KKyAgICA8L2V2ZW50PgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDkgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzwveGRwOnhkcD4KK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA1NDQyOS5ldnQgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA1NDQyOS5ldnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODZlMDkwNQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDU0NDI5LmV2dApAQCAtMCwwICsxLDIgQEAKK21vdXNlZG93bixsZWZ0LDYxLDUxCitrZXljb2RlLDQ2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNTQ0MjkuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA1NDQyOS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Mjk1ZTVmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNTQ0MjkuaW4KQEAgLTAsMCArMSwxNDcgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9BY3JvRm9ybSAyIDAgUgorICAvUGFnZXMgMyAwIFIKKyAgL0V4dGVuc2lvbnMgPDwKKyAgICAvQURCRSA8PAorICAgICAgL0Jhc2VWZXJzaW9uIC8xLjcKKyAgICAgIC9FeHRlbnNpb25MZXZlbCA4CisgICAgPj4KKyAgPj4KKyAgL05lZWRzUmVuZGVyaW5nIHRydWUKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9YRkEgWworICAgIChwcmVhbWJsZSkgNSAwIFIKKyAgICAoY29uZmlnKSA2IDAgUgorICAgICh0ZW1wbGF0ZSkgNyAwIFIKKyAgICAocG9zdGFtYmxlKSA5IDAgUgorICBdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzQgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAvVHlwZSAvUGFnZQorIC9QYXJlbnQgMiAwIFIKKyAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPHhkcDp4ZHAgeG1sbnM6eGRwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hkcC8iPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzxjb25maWcgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGNpLzMuMC8iPgorPGFnZW50IG5hbWU9ImRlc2lnbmVyIj4KKyAgPGRlc3RpbmF0aW9uPnBkZjwvZGVzdGluYXRpb24+CisgIDxwZGY+CisgICAgPGZvbnRJbmZvLz4KKyAgPC9wZGY+Cis8L2FnZW50PgorPHByZXNlbnQ+CisgIDxwZGY+CisgICAgPHZlcnNpb24+MS43PC92ZXJzaW9uPgorICAgIDxhZG9iZUV4dGVuc2lvbkxldmVsPjg8L2Fkb2JlRXh0ZW5zaW9uTGV2ZWw+CisgICAgPHJlbmRlclBvbGljeT5jbGllbnQ8L3JlbmRlclBvbGljeT4KKyAgICA8c2NyaXB0TW9kZWw+WEZBPC9zY3JpcHRNb2RlbD4KKyAgICA8aW50ZXJhY3RpdmU+MTwvaW50ZXJhY3RpdmU+CisgIDwvcGRmPgorICA8eGRwPgorICAgIDxwYWNrZXRzPio8L3BhY2tldHM+CisgIDwveGRwPgorICA8ZGVzdGluYXRpb24+cGRmPC9kZXN0aW5hdGlvbj4KKyAgPHNjcmlwdD4KKyAgICA8cnVuU2NyaXB0cz5zZXJ2ZXI8L3J1blNjcmlwdHM+CisgIDwvc2NyaXB0PgorPC9wcmVzZW50PgorPGFjcm9iYXQ+CisgIDxhY3JvYmF0Nz4KKyAgICA8ZHluYW1pY1JlbmRlcj5yZXF1aXJlZDwvZHluYW1pY1JlbmRlcj4KKyAgPC9hY3JvYmF0Nz4KKyAgPHZhbGlkYXRlPnByZVN1Ym1pdDwvdmFsaWRhdGU+Cis8L2Fjcm9iYXQ+Cis8L2NvbmZpZz4KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8dGVtcGxhdGUgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLXRlbXBsYXRlLzIuNi8iPgorICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBsb2NhbGU9ImVuX1VTIiBuYW1lPSJmb3JtMSIgcmVzdG9yZVN0YXRlPSJhdXRvIj4KKyAgICA8cGFnZVNldD4KKyAgICAgIDxwYWdlQXJlYSBpZD0iUGFnZTEiIG5hbWU9IlBhZ2UxIj4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjEwLjVpbiIgdz0iOGluIiB4PSIwLjI1aW4iIHk9IjAuMjVpbiIvPgorICAgICAgICA8bWVkaXVtIGxvbmc9IjExaW4iIHNob3J0PSI4LjVpbiIgc3RvY2s9ImxldHRlciIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPHN1YmZvcm0gaD0iMTAuNWluIiB3PSI4aW4iIG5hbWU9InN1YmZvcm0yIj4KKyAgICAgIDxmaWVsZCBoPSIxMG1tIiBuYW1lPSJmMSIgdz0iNDBtbSIgeD0iNW1tIiB5PSI5MG1tIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDxjaG9pY2VMaXN0Lz4KKyAgICAgICAgPC91aT4KKyAgICAgICAgPGl0ZW1zIHNhdmU9IjEiPgorICAgICAgICAgIDx0ZXh0PlNpbmdsZTwvdGV4dD4KKyAgICAgICAgPC9pdGVtcz4KKyAgICAgIDwvZmllbGQ+CisgICAgICA8c3ViZm9ybSBuYW1lPSJmNCIgeD0iNW1tIiB5PSI1bW0iPgorICAgICAgICAgIDxvY2N1ciBtYXg9Ii0xIi8+CisgICAgICAgICAgPGZpZWxkIG5hbWU9ImYyIiBoPSIzMDBtbSIgdz0iMzAwbW0iIHg9IjFtbSIgeT0iMW1tIj4KKyAgICAgICAgICAgIDx1aT4KKyAgICAgICAgICAgICAgPHRleHRFZGl0Lz4KKyAgICAgICAgICAgIDwvdWk+CisgICAgICAgICAgICA8dmFsdWU+CisgICAgICAgICAgICAgIDx0ZXh0PnBkZml1bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tPC90ZXh0PgorICAgICAgICAgICAgPC92YWx1ZT4KKyAgICAgICAgICAgIDxldmVudCBhY3Rpdml0eT0iY2hhbmdlIj4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgICBhID0gYSArIDE7CisgICAgICAgICAgICAgICAgaWYgKGEgPT0gMikgIHsKKyAgICAgICAgICAgICAgICAgICAgeGZhLmV2ZW50LmNhbmNlbEFjdGlvbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGIgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5mMSIpOworICAgICAgICAgICAgICAgICAgICB4ZmEuaG9zdC5zZXRGb2N1cyhiKTsKKyAgICAgICAgICAgICAgICAgICAgZCA9IHhmYS5yZXNvbHZlTm9kZSgieGZhLmZvcm0uLmY0Iik7CisgICAgICAgICAgICAgICAgICAgIGQuaW5zdGFuY2VNYW5hZ2VyLmFkZEluc3RhbmNlKDEpOworICAgICAgICAgICAgICAgICAgICBkLmluc3RhbmNlTWFuYWdlci5yZW1vdmVJbnN0YW5jZSgwKTsKKyAgICAgICAgICAgICAgICAgICAgeGZhLmhvc3Qub3Blbkxpc3QoYik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgICAgIDwvZXZlbnQ+CisgICAgICAgICAgPC9maWVsZD4KKyAgICAgIDwvc3ViZm9ybT4KKyAgICA8L3N1YmZvcm0+CisgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSI+CisgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICBhID0gMDsKKyAgICAgICAgYyA9IHhmYS5yZXNvbHZlTm9kZSgieGZhLmZvcm0uLmYyIik7CisgICAgICAgIHhmYS5ob3N0LnNldEZvY3VzKGMpOworICAgICAgPC9zY3JpcHQ+CisgICAgPC9ldmVudD4KKyAgPC9zdWJmb3JtPgorPC90ZW1wbGF0ZT4KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8L3hkcDp4ZHA+CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNjA1NDkuZXZ0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNjA1NDkuZXZ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlZTc1ZTIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA2MDU0OS5ldnQKQEAgLTAsMCArMSwzIEBACittb3VzZWRvd24sbGVmdCw4MiwxMzAKK21vdXNlZG93bixsZWZ0LDgyLDEzMAora2V5Y29kZSwwOQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDYwNTQ5LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNjA1NDkuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY1MjU0OAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDYwNTQ5LmluCkBAIC0wLDAgKzEsNTkgQEAKK3t7aGVhZGVyfX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY2F0YWxvZ18xXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9vYmplY3RfMl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcHJlYW1ibGVfM18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY29uZmlnXzRfMC5mcmFnbWVudH19Cit7e29iamVjdCA1IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8dGVtcGxhdGUgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLXRlbXBsYXRlLzIuNi8iPgorICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBsb2NhbGU9ImVuX1VTIiBuYW1lPSJmb3JtMSIgcmVzdG9yZVN0YXRlPSJhdXRvIj4KKyAgICA8c3ViZm9ybSBoPSIxMC41aW4iIHc9IjhpbiIgbmFtZT0ic3ViZm9ybTIiPgorICAgICAgPGZpZWxkIGg9IjEwbW0iIG5hbWU9ImZpZWxkMSIgdz0iMTBtbSIgeD0iMG1tIiB5PSIyMG1tIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDxjaG9pY2VMaXN0Lz4KKyAgICAgICAgPC91aT4KKyAgICAgICAgPGl0ZW1zPgorICAgICAgICAgIDx0ZXh0PmFhYWFhYWFhYWFhYWFhYWFhYWFhYTwvdGV4dD4KKyAgICAgICAgPC9pdGVtcz4KKyAgICAgIDwvZmllbGQ+CisgICAgICA8ZmllbGQgbmFtZT0iZmllbGQyIiBoPSIyMG1tIiB3PSI1MG1tIiB4PSIwbW0iIHk9IjMwbW0iPgorICAgICAgICA8dWk+CisgICAgICAgICAgICA8dGV4dEVkaXQ+CisgICAgICAgICAgICA8L3RleHRFZGl0PgorICAgICAgICA8L3VpPgorICAgICAgPC9maWVsZD4KKyAgICAgIDxzdWJmb3JtIG5hbWU9InN1YmZvcm0zIiB4PSIwbW0iIHk9IjVtbSI+CisgICAgICAgIDxvY2N1ciBtYXg9Ii0xIi8+CisgICAgICAgICAgPHRyYXZlcnNhbD4KKyAgICAgICAgICAgICAgPHRyYXZlcnNlIG9wZXJhdGlvbj0ibmV4dCIgcmVmPSIkeGZhLihldmFsKCdpZiAoYWEgPT0gMSkge2FhPTI7eGZhLmhvc3Quc2V0Rm9jdXMoY2MpO2JiKCk7eGZhLmhvc3Qub3Blbkxpc3QoY2MpO30nKSA9PSAwKSIvPgorICAgICAgICAgIDwvdHJhdmVyc2FsPgorICAgICAgPC9zdWJmb3JtPgorICAgIDwvc3ViZm9ybT4KKyAgICA8ZXZlbnQgYWN0aXZpdHk9ImluaXRpYWxpemUiPgorICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgYWEgPSAxOworICAgICAgPC9zY3JpcHQ+CisgICAgPC9ldmVudD4KKyAgICA8ZXZlbnQgYWN0aXZpdHk9ImRvY1JlYWR5Ij4KKyAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgIGJiID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkZCA9IHhmYS5yZXNvbHZlTm9kZSgieGZhLmZvcm0uLnN1YmZvcm0zIik7CisgICAgICAgICAgICBkZC5pbnN0YW5jZU1hbmFnZXIuYWRkSW5zdGFuY2UoMSk7CisgICAgICAgICAgICBkZC5pbnN0YW5jZU1hbmFnZXIucmVtb3ZlSW5zdGFuY2UoMCk7CisgICAgICAgIH0KKyAgICAgICAgY2MgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5maWVsZDEiKTsKKyAgICAgIDwvc2NyaXB0PgorICAgIDwvZXZlbnQ+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tpbmNsdWRlIC4uLy4uL3hmYV9sb2NhbGVfNl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcG9zdGFtYmxlXzdfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3BhZ2VzXzhfMC5mcmFnbWVudH19Cit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA2OTcwMC5ldnQgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA2OTcwMC5ldnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY5ZjcxMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDY5NzAwLmV2dApAQCAtMCwwICsxLDMgQEAKK21vdXNlZG93bixsZWZ0LDIwMCwyMDAKK21vdXNldXAsbGVmdCwyMDAsMjAwCitrZXljb2RlLDksc2hpZnQKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDY5NzAwLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNjk3MDAuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWRkNmJhOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDY5NzAwLmluCkBAIC0wLDAgKzEsNzMgQEAKK3t7aGVhZGVyfX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY2F0YWxvZ18xXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9vYmplY3RfMl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcHJlYW1ibGVfM18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY29uZmlnXzRfMC5mcmFnbWVudH19Cit7e29iamVjdCA1IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8dGVtcGxhdGUgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLXRlbXBsYXRlLzIuNi8iPgorICA8c3ViZm9ybSBuYW1lPSJmb3JtMSI+CisgICAgPHBhZ2VTZXQ+CisgICAgICA8cGFnZUFyZWEgaWQ9IlBhZ2UxIiBuYW1lPSJQYWdlMSI+CisgICAgICAgIDxjb250ZW50QXJlYSBoPSIxMC41aW4iIHc9IjhpbiIgeD0iMC4yNWluIiB5PSIwLjI1aW4iLz4KKyAgICAgICAgPG1lZGl1bSBsb25nPSIxMWluIiBzaG9ydD0iOC41aW4iIHN0b2NrPSJsZXR0ZXIiLz4KKyAgICAgIDwvcGFnZUFyZWE+CisgICAgPC9wYWdlU2V0PgorICAgIDxzdWJmb3JtIGg9IjEwLjVpbiIgdz0iOGluIiBuYW1lPSJzdWJmb3JtMiI+CisgICAgICA8ZmllbGQgaD0iMTBtbSIgbmFtZT0iRHJvcERvd25MaXN0MSIgdz0iMTBtbSIgeD0iMG1tIiB5PSIyMG1tIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDxjaG9pY2VMaXN0Lz4KKyAgICAgICAgPC91aT4KKyAgICAgICAgPGl0ZW1zIHNhdmU9IjEiPgorICAgICAgICAgIDx0ZXh0PlNpbmdsZTwvdGV4dD4KKyAgICAgICAgICA8dGV4dD5NYXJyaWVkPC90ZXh0PgorICAgICAgICAgIDx0ZXh0Pk90aGVyPC90ZXh0PgorICAgICAgICA8L2l0ZW1zPgorICAgICAgPC9maWVsZD4KKyAgICAgIDxmaWVsZCBoPSIyMDBtbSIgbmFtZT0iRHJvcERvd25MaXN0MiIgdz0iMm1tIiB4PSIwbW0iIHk9IjMwbW0iPgorICAgICAgICA8dWk+CisgICAgICAgICAgPHRleHRFZGl0Lz4KKyAgICAgICA8L3VpPgorICAgICAgPC9maWVsZD4KKyAgICAgIDxzdWJmb3JtIG5hbWU9InN1YmZvcm0zIiB4PSIwbW0iIHk9IjVtbSI+CisgICAgICAgIDxvY2N1ciBtYXg9Ii0xIi8+CisgICAgICAgIDx0cmF2ZXJzYWw+CisgICAgICAgICAgPHRyYXZlcnNlIG9wZXJhdGlvbj0ibmV4dCIgcmVmPSIkeGZhLihldmFsKCd0cnkgeyBpZiAoYWFhYSA9PSAxKSB7YmIoKTt9IH0gY2F0Y2goZSl7fScpID09IDApIi8+CisgICAgICAgIDwvdHJhdmVyc2FsPgorICAgICAgPC9zdWJmb3JtPgorICAgICAgPGJvb2tlbmQgbGVhZGVyPSIkIi8+CisgICAgICA8a2VlcCBpbnRhY3Q9Im5vbmUiIHByZXZpb3VzPSJjb250ZW50QXJlYSIvPgorICAgIDwvc3ViZm9ybT4KKyAgICA8c3ViZm9ybSBuYW1lPSJzdWJmb3JtNCIgeD0iMG1tIj4KKyAgICAgIDxvY2N1ciBtYXg9Ii0xIi8+CisgICAgICA8ZmllbGQgbmFtZT0iY2hvaWNlTGlzdDMiIG1pbkg9IjMyaW4iPgorICAgICAgICA8dWk+CisgICAgICAgICAgPGNob2ljZUxpc3QvPgorICAgICAgICA8L3VpPgorICAgICAgPC9maWVsZD4KKyAgICA8L3N1YmZvcm0+CisgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSI+CisgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICBhYWFhID0gMTsKKyAgICAgICAgYmIgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICB4ZmEuaG9zdC5zZXRGb2N1cyhmMSk7CisgICAgICAgICAgZCA9IHhmYS5yZXNvbHZlTm9kZSgieGZhLmZvcm0uLnN1YmZvcm00Iik7CisgICAgICAgICAgZC5pbnN0YW5jZU1hbmFnZXIuYWRkSW5zdGFuY2UoMSk7CisgICAgICAgICAgeGZhLmhvc3Qub3Blbkxpc3QoZjEpOworICAgICAgICB9CisgICAgICAgIGYxID0geGZhLnJlc29sdmVOb2RlKCJ4ZmEuZm9ybS4uRHJvcERvd25MaXN0MSIpOworICAgICAgPC9zY3JpcHQ+CisgICAgPC9ldmVudD4KKyAgPC9zdWJmb3JtPgorPC90ZW1wbGF0ZT4KK2VuZHN0cmVhbQorZW5kb2JqCit7e2luY2x1ZGUgLi4vLi4veGZhX2xvY2FsZV82XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wb3N0YW1ibGVfN18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcGFnZXNfOF8wLmZyYWdtZW50fX0KK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDY5Nzg5LmV2dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDY5Nzg5LmV2dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjhmNmE5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNjk3ODkuZXZ0CkBAIC0wLDAgKzEgQEAKK21vdXNlZG93bixyaWdodCwyMDAsMjAwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNjk3ODkuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA2OTc4OS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2IwOWRiCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEwNjk3ODkuaW4KQEAgLTAsMCArMSw1MSBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZSB4bWxucz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvMi42LyI+CisgIDxzdWJmb3JtIG5hbWU9ImZvcm0xIj4KKyAgICA8cGFnZVNldD4KKyAgICAgIDxwYWdlQXJlYSBpZD0iUGFnZTEiIG5hbWU9IlBhZ2UxIj4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjEwLjVpbiIgdz0iOGluIiB4PSIwLjI1aW4iIHk9IjAuMjVpbiIvPgorICAgICAgICA8bWVkaXVtIGxvbmc9IjExaW4iIHNob3J0PSI4LjVpbiIgc3RvY2s9ImxldHRlciIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPHN1YmZvcm0gaD0iMTAuNWluIiB3PSI4aW4iIG5hbWU9InN1YmZvcm0yIj4KKyAgICAgIDxmaWVsZCBoPSIxMG1tIiBuYW1lPSJEcm9wRG93bkxpc3QxIiB3PSIxMG1tIiB4PSIwbW0iIHk9IjIwbW0iPgorICAgICAgICA8dWk+CisgICAgICAgICAgPGNob2ljZUxpc3QvPgorICAgICAgICA8L3VpPgorICAgICAgICA8aXRlbXM+CisgICAgICAgICAgPHRleHQ+U2luZ2xlPC90ZXh0PgorICAgICAgICA8L2l0ZW1zPgorICAgICAgPC9maWVsZD4KKyAgICAgIDxmaWVsZCBoPSIyMDBtbSIgbmFtZT0iRHJvcERvd25MaXN0MiIgdz0iMjAwbW0iIHg9IjBtbSIgeT0iMzBtbSI+CisgICAgICAgIDx1aT4KKyAgICAgICAgICA8dGV4dEVkaXQvPgorICAgICAgICA8L3VpPgorICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9ImVudGVyIj4KKyAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgZjEgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5Ecm9wRG93bkxpc3QxIik7CisgICAgICAgICAgICB4ZmEuaG9zdC5zZXRGb2N1cyhmMSk7CisgICAgICAgICAgICB4ZmEudGVtcGxhdGUucmVtZXJnZSgpOworICAgICAgICAgICAgeGZhLmhvc3Qub3Blbkxpc3QoZjEpOworICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICA8L2V2ZW50PgorICAgICAgPC9maWVsZD4KKyAgICA8L3N1YmZvcm0+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tpbmNsdWRlIC4uLy4uL3hmYV9sb2NhbGVfNl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcG9zdGFtYmxlXzdfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3BhZ2VzXzhfMC5mcmFnbWVudH19Cit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA4MjU5Ny5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDgyNTk3LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxYTBlZjAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA4MjU5Ny5pbgpAQCAtMCwwICsxLDE1MCBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFubGVufX0KKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZT4KKyA8c3ViZm9ybSBsYXlvdXQ9InRiIiBuYW1lPSJteV9kb2MiPgorICA8cGFnZVNldCBpZD0icGFnZSIgcmVsYXRpb249Im9yZGVyZWRPY2N1cnJlbmNlIj4KKyAgIDxvY2N1ciBpbml0aWFsPSIxIiBtYXg9IjQiIG1pbj0iMSIvPgorICAgPHBhZ2VBcmVhIGlkPSJQYWdlMSIgbmFtZT0iUGFnZTEiPgorICAgIDxvY2N1ciBtYXg9IjEiIG1pbj0iMSIvPgorICAgIDxjb250ZW50QXJlYSBoPSIxMDBtbSIgdz0iMjAwbW0iIHg9IjAuMjVpbiIgeT0iMC4yNWluIi8+CisgICAgPG1lZGl1bSBsb25nPSIyOTdtbSIgc2hvcnQ9IjIxMG1tIiBzdG9jaz0iYTQiLz4KKyAgIDwvcGFnZUFyZWE+CisgICA8cGFnZUFyZWEgaWQ9IlBhZ2UyIiBuYW1lPSJQYWdlMiI+CisgICAgPG9jY3VyIG1heD0iMSIgbWluPSIxIi8+CisgICAgPGNvbnRlbnRBcmVhIGg9IjEwMG1tIiB3PSIyMDBtbSIgeD0iMC4yNWluIiB5PSIwLjI1aW4iLz4KKyAgICA8bWVkaXVtIGxvbmc9IjI5N21tIiBzaG9ydD0iMjEwbW0iIHN0b2NrPSJhNCIvPgorICAgPC9wYWdlQXJlYT4KKyAgPC9wYWdlU2V0PgorICA8ZXZlbnQgYWN0aXZpdHk9ImRvY1JlYWR5IiByZWY9IiRob3N0Ij4KKyAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgeGZhLmV2ZW50LmVtaXQoKTsKKyAgICB2YXIgZj14ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLm15X2RvYy5wYWdlMV9mb3JtLmNvbWJveCIpOworICAgIHhmYS5yZWNvcmQubm9kZXMuYXBwZW5kKHRoaXMpOworICAgIHhmYS5mb3JtLnJlbWVyZ2UoKTsKKyAgICB4ZmEuaG9zdC5zZXRGb2N1cyhmKTsKKyAgICBhcHAuYWxlcnQoJ0RvbmUnKTsKKyAgIDwvc2NyaXB0PgorICA8L2V2ZW50PgorICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBuYW1lPSJzdWJmb3JtX3B1c2hfYnV0dG9uXzEiPgorICAgPG9jY3VyIGluaXRpYWw9IjEiIG1heD0iMTAiIG1pbj0iMCIgbmFtZT0ib2NjdXJfc3ViZm9ybV9wdXNoX2J1dHRvbl8xIi8+CisgICA8ZmllbGQgaD0iMTBtbSIgbmFtZT0icHVzaF9idXR0b24iIHc9IjQwbW0iIHg9IjMwbW0iIHk9IjUwMG1tIj4KKyAgICA8dWk+CisgICAgIDxidXR0b24gaGlnaGxpZ2h0PSJwdXNoIi8+CisgICAgPC91aT4KKyAgICA8Y2FwdGlvbj4KKyAgICAgPHZhbHVlPgorICAgICAgPHRleHQ+QnV0dG9uPC90ZXh0PgorICAgICA8L3ZhbHVlPgorICAgIDwvY2FwdGlvbj4KKyAgICA8aXRlbXM+CisgICAgIDx0ZXh0IG5hbWU9ImRvd24iPkRvd24gVGV4dDwvdGV4dD4KKyAgICAgPHRleHQgbmFtZT0icm9sbG92ZXIiPlJvbGxvdmVyIFRleHQ8L3RleHQ+CisgICAgPC9pdGVtcz4KKyAgIDwvZmllbGQ+CisgIDwvc3ViZm9ybT4KKyAgPHN1YmZvcm0gbGF5b3V0PSJ0YiIgbmFtZT0ic3ViZm9ybV9jaGVja2J1dHRvbl9ncm91cF8wIj4KKyAgIDxvY2N1ciBpbml0aWFsPSIxIiBtYXg9IjEwIiBtaW49IjAiIG5hbWU9Im9jY3VyX3N1YmZvcm1fY2hlY2tidXR0b25fZ3JvdXBfMCIvPgorICAgPGV4Y2xHcm91cCBsYXlvdXQ9InRiIiBuYW1lPSJjaGVja2J1dHRvbl9ncm91cCI+CisgICAgPGZpZWxkIGg9IjEwbW0iIG5hbWU9ImNoZWNrYnV0dG9uX2NoZWNrMSIgdz0iNDBtbSIgeD0iMzBtbSIgeT0iNjAwbW0iPgorICAgICA8dWk+CisgICAgICA8Y2hlY2tCdXR0b24gc2hhcGU9InJvdW5kIj4KKyAgICAgICA8Ym9yZGVyPgorICAgICAgICA8ZWRnZS8+CisgICAgICAgPC9ib3JkZXI+CisgICAgICA8L2NoZWNrQnV0dG9uPgorICAgICA8L3VpPgorICAgICA8aXRlbXM+CisgICAgICA8aW50ZWdlcj4xPC9pbnRlZ2VyPgorICAgICA8L2l0ZW1zPgorICAgICA8dmFsdWU+CisgICAgICA8dGV4dD5TZWxlY3QgMTwvdGV4dD4KKyAgICAgPC92YWx1ZT4KKyAgICAgPGNhcHRpb24gcGxhY2VtZW50PSJsZWZ0Ij4KKyAgICAgIDx2YWx1ZT4KKyAgICAgICA8dGV4dD5PcHRpb24gMTwvdGV4dD4KKyAgICAgIDwvdmFsdWU+CisgICAgIDwvY2FwdGlvbj4KKyAgICAgPGV2ZW50IGFjdGl2aXR5PSJyZWFkeSIgcmVmPSIkbGF5b3V0Ij4KKyAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICA8L3NjcmlwdD4KKyAgICAgPC9ldmVudD4KKyAgICA8L2ZpZWxkPgorICAgIDxmaWVsZCBoPSIxMG1tIiBuYW1lPSJjaGVja2J1dHRvbl9jaGVjazIiIHc9IjQwbW0iIHg9IjMwbW0iIHk9IjYwMG1tIj4KKyAgICAgPHVpPgorICAgICAgPGNoZWNrQnV0dG9uIHNoYXBlPSJyb3VuZCI+CisgICAgICAgPGJvcmRlcj4KKyAgICAgICAgPGVkZ2UvPgorICAgICAgIDwvYm9yZGVyPgorICAgICAgPC9jaGVja0J1dHRvbj4KKyAgICAgPC91aT4KKyAgICAgPGl0ZW1zPgorICAgICAgPGludGVnZXI+MjwvaW50ZWdlcj4KKyAgICAgPC9pdGVtcz4KKyAgICAgPHZhbHVlPgorICAgICAgPHRleHQ+U2VsZWN0IDI8L3RleHQ+CisgICAgIDwvdmFsdWU+CisgICAgIDxjYXB0aW9uIHBsYWNlbWVudD0ibGVmdCI+CisgICAgICA8dmFsdWU+CisgICAgICAgPHRleHQ+T3B0aW9uIDI8L3RleHQ+CisgICAgICA8L3ZhbHVlPgorICAgICA8L2NhcHRpb24+CisgICAgPC9maWVsZD4KKyAgIDwvZXhjbEdyb3VwPgorICA8L3N1YmZvcm0+CisgIDxzdWJmb3JtIGxheW91dD0idGIiIG5hbWU9InBhZ2UyX2Zvcm0iPgorICAgPG9jY3VyIGluaXRpYWw9IjEiIG1heD0iMyIgbWluPSIwIi8+CisgICA8ZmllbGQgaD0iMTBtbSIgbmFtZT0idGV4dGVkaXQiIHc9IjQwbW0iIHg9IjIwbW0iIHk9IjIwbW0iPgorICAgIDx1aT4KKyAgICAgPHRleHRFZGl0Lz4KKyAgICA8L3VpPgorICAgIDx2YWx1ZT4KKyAgICAgPHRleHQ+Q0xHVC48L3RleHQ+CisgICAgPC92YWx1ZT4KKyAgIDwvZmllbGQ+CisgIDwvc3ViZm9ybT4KKyAgPHN1YmZvcm0gbGF5b3V0PSJ0YiIgbmFtZT0icGFnZTFfZm9ybSI+CisgICA8b2NjdXIgaW5pdGlhbD0iMSIgbWF4PSIzIiBtaW49IjAiLz4KKyAgIDxmaWVsZCBoPSIxMG1tIiBuYW1lPSJjb21ib3giIHc9IjQwbW0iIHg9IjEwbW0iIHk9IjEwbW0iPgorICAgIDx1aT4KKyAgICAgPGNob2ljZUxpc3Qgb3Blbj0ib25FbnRyeSI+CisgICAgICA8Ym9yZGVyPgorICAgICAgIDxlZGdlLz4KKyAgICAgIDwvYm9yZGVyPgorICAgICA8L2Nob2ljZUxpc3Q+CisgICAgPC91aT4KKyAgICA8aXRlbXMgc2F2ZT0iMSI+CisgICAgIDx0ZXh0PmFwcGxlczwvdGV4dD4KKyAgICAgPHRleHQ+YmFuYW5hczwvdGV4dD4KKyAgICAgPHRleHQ+cGVhcnM8L3RleHQ+CisgICAgPC9pdGVtcz4KKyAgICA8dmFsdWU+CisgICAgIDx0ZXh0PgorICAgICAgYXBwbGVzCisgICAgIDwvdGV4dD4KKyAgICA8L3ZhbHVlPgorICAgIDxldmVudCBhY3Rpdml0eT0iZW50ZXIiIG5hbWU9ImV2ZW50X19lbnRlciI+CisgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICB4ZmEuaG9zdC5zZXRGb2N1cygwKTsKKyAgICAgIHhmYS5ob3N0Lm9wZW5MaXN0KHRoaXMpOworICAgICA8L3NjcmlwdD4KKyAgICA8L2V2ZW50PgorICAgPC9maWVsZD4KKyAgPC9zdWJmb3JtPgorIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tpbmNsdWRlIC4uLy4uL3hmYV9sb2NhbGVfNl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcG9zdGFtYmxlXzdfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3BhZ2VzXzhfMC5mcmFnbWVudH19Cit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA4MjU5N19leHBlY3RlZC50eHQgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTA4MjU5N19leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NiNzcyZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMDgyNTk3X2V4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK0FsZXJ0OiBEb25lCitBbGVydDogRG9uZQorQWxlcnQ6IERvbmUKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMTA5MTA4LmV2dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMTA5MTA4LmV2dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDU4OTI3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzExMDkxMDguZXZ0CkBAIC0wLDAgKzEgQEAKK2tleWNvZGUsOQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzExMDkxMDguaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTEwOTEwOC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTAxMTJlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzExMDkxMDguaW4KQEAgLTAsMCArMSw2NCBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZT4KKyAgPHN1YmZvcm0gbmFtZT0iczEiPgorICAgIDxzdWJmb3JtIG5hbWU9InM1Ij4KKyAgICAgIDxmaWVsZCBuYW1lPSJmaWVsZF8yOCI+CisgICAgICAgIDxjYWxjdWxhdGU+CisgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIHZhciBmPXhmYS5yZXNvbHZlTm9kZSgieGZhLmZvcm0uczEuczUuczYuZmllbGRfMzUiKTsKKyAgICAgICAgICAgIGYucmVsZXZhbnQgPSJwcmludCI7CisgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDwvY2FsY3VsYXRlPgorICAgICAgICA8dWk+CisgICAgICAgICAgPHRleHRFZGl0Lz4KKyAgICAgICAgPC91aT4KKyAgICAgICAgPHZhbHVlPgorICAgICAgICAgIDx0ZXh0PkNMR1QuPC90ZXh0PgorICAgICAgICA8L3ZhbHVlPgorICAgICAgPC9maWVsZD4KKyAgICAgIDxzdWJmb3JtIG5hbWU9InM2Ij4KKyAgICAgICAgPGZpZWxkIG5hbWU9ImZpZWxkXzM1Ij4KKyAgICAgICAgICA8dWk+CisgICAgICAgICAgICA8Y2hvaWNlTGlzdCBvcGVuPSJvbkVudHJ5Ij4KKyAgICAgICAgICAgICAgPGJvcmRlcj4KKyAgICAgICAgICAgICAgICA8ZWRnZS8+CisgICAgICAgICAgICAgIDwvYm9yZGVyPgorICAgICAgICAgICAgPC9jaG9pY2VMaXN0PgorICAgICAgICAgIDwvdWk+CisgICAgICAgICAgPGl0ZW1zIHNhdmU9IjEiPgorICAgICAgICAgICAgPHRleHQ+YXBwbGVzPC90ZXh0PgorICAgICAgICAgICAgPHRleHQ+YmFuYW5hczwvdGV4dD4KKyAgICAgICAgICAgIDx0ZXh0PnBlYXJzPC90ZXh0PgorICAgICAgICAgIDwvaXRlbXM+CisgICAgICAgICAgPHZhbHVlPgorICAgICAgICAgICAgPHRleHQ+YXBwbGVzPC90ZXh0PgorICAgICAgICAgIDwvdmFsdWU+CisgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJjaGFuZ2UiPgorICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgeGZhLnRlbXBsYXRlLnJlbWVyZ2UoKTsKKyAgICAgICAgICAgICAgeGZhLmhvc3Qub3Blbkxpc3QodGhpcyk7CisgICAgICAgICAgICAgIGFwcC5hbGVydCgncmVtZXJnZWQnKTsKKyAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgIDwvZXZlbnQ+CisgICAgICAgIDwvZmllbGQ+CisgICAgICA8L3N1YmZvcm0+CisgICAgPC9zdWJmb3JtPgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7aW5jbHVkZSAuLi8uLi94ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wYWdlc184XzAuZnJhZ21lbnR9fQore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzExMDkxMDhfZXhwZWN0ZWQudHh0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzExMDkxMDhfZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2YzQ4NDUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTEwOTEwOF9leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitBbGVydDogcmVtZXJnZWQKK0FsZXJ0OiByZW1lcmdlZApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzExMzc2NjguZXZ0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzExMzc2NjguZXZ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0YjY3ZDgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTEzNzY2OC5ldnQKQEAgLTAsMCArMSw5IEBACitrZXljb2RlLDksc2hpZnQKK21vdXNlZG93bixsZWZ0LDUwLDUwCitrZXljb2RlLDkKK21vdXNlbW92ZSw1MCw1MAorbW91c2Vkb3duLGxlZnQsNTAsNTAKK2tleWNvZGUsOQorbW91c2Vtb3ZlLDIwLDIwCittb3VzZWRvd24sbGVmdCwyMCwyMAorbW91c2Vkb3duLHJpZ2h0LDIwLDIwCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTEzNzY2OC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMTM3NjY4LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMDE0ZTcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTEzNzY2OC5pbgpAQCAtMCwwICsxLDMzOCBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZT4KKyAgPHN1YmZvcm0gbmFtZT0iczEiPgorICAgIDxzdWJmb3JtIG5hbWU9InM1Ij4KKyAgICAgIDxzdWJmb3JtIG5hbWU9InM2Ij4KKyAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJlbnRlciI+CisgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIHhmYS50ZW1wbGF0ZS5yZW1lcmdlKCk7CisgICAgICAgICAgICB4ZmEuZm9ybS5yZW1lcmdlKCk7CisgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDwvZXZlbnQ+CisgICAgICAgIDxmaWVsZCBuYW1lPSJmaWVsZF8zMSI+CisgICAgICAgICAgPHVpPgorICAgICAgICAgICAgPGJ1dHRvbiBoaWdobGlnaHQ9InB1c2giLz4KKyAgICAgICAgICA8L3VpPgorICAgICAgICAgIDxjYXB0aW9uPgorICAgICAgICAgICAgPHZhbHVlPgorICAgICAgICAgICAgICA8dGV4dD4KKyAgICAgICAgICAgICAgICBCdXR0b24KKyAgICAgICAgICAgICAgPC90ZXh0PgorICAgICAgICAgICAgPC92YWx1ZT4KKyAgICAgICAgICA8L2NhcHRpb24+CisgICAgICAgICAgPGl0ZW1zPgorICAgICAgICAgICAgPHRleHQgbmFtZT0iZG93biI+CisgICAgICAgICAgICAgIERvd24gVGV4dAorICAgICAgICAgICAgPC90ZXh0PgorICAgICAgICAgICAgPHRleHQgbmFtZT0icm9sbG92ZXIiPgorICAgICAgICAgICAgICBSb2xsb3ZlciBUZXh0CisgICAgICAgICAgICA8L3RleHQ+CisgICAgICAgICAgPC9pdGVtcz4KKyAgICAgICAgPC9maWVsZD4KKyAgICAgICAgPGZpZWxkIG5hbWU9ImZpZWxkXzMyIj4KKyAgICAgICAgICA8dWk+CisgICAgICAgICAgICA8YmFyY29kZS8+CisgICAgICAgICAgPC91aT4KKyAgICAgICAgICA8dmFsdWU+CisgICAgICAgICAgICA8dGV4dD4KKyAgICAgICAgICAgICAgdGVzdAorICAgICAgICAgICAgPC90ZXh0PgorICAgICAgICAgIDwvdmFsdWU+CisgICAgICAgIDwvZmllbGQ+CisgICAgICAgIDxmaWVsZCBuYW1lPSJmaWVsZF8zMyI+CisgICAgICAgICAgPHVpPgorICAgICAgICAgICAgPGNoZWNrQnV0dG9uIHNoYXBlPSJyb3VuZCI+CisgICAgICAgICAgICAgIDxib3JkZXI+CisgICAgICAgICAgICAgICAgPGVkZ2UvPgorICAgICAgICAgICAgICA8L2JvcmRlcj4KKyAgICAgICAgICAgIDwvY2hlY2tCdXR0b24+CisgICAgICAgICAgPC91aT4KKyAgICAgICAgICA8aXRlbXM+CisgICAgICAgICAgICA8aW50ZWdlcj4KKyAgICAgICAgICAgICAgMgorICAgICAgICAgICAgPC9pbnRlZ2VyPgorICAgICAgICAgIDwvaXRlbXM+CisgICAgICAgICAgPHZhbHVlPgorICAgICAgICAgICAgPHRleHQ+CisgICAgICAgICAgICAgIFNlbGVjdCAyCisgICAgICAgICAgICA8L3RleHQ+CisgICAgICAgICAgPC92YWx1ZT4KKyAgICAgICAgICA8Y2FwdGlvbiBwbGFjZW1lbnQ9ImxlZnQiPgorICAgICAgICAgICAgPHZhbHVlPgorICAgICAgICAgICAgICA8dGV4dD4KKyAgICAgICAgICAgICAgICBPcHRpb24gMgorICAgICAgICAgICAgICA8L3RleHQ+CisgICAgICAgICAgICA8L3ZhbHVlPgorICAgICAgICAgIDwvY2FwdGlvbj4KKyAgICAgICAgPC9maWVsZD4KKyAgICAgICAgPGZpZWxkIG5hbWU9ImZpZWxkXzM0Ij4KKyAgICAgICAgICA8dWk+CisgICAgICAgICAgICA8dGV4dEVkaXQvPgorICAgICAgICAgIDwvdWk+CisgICAgICAgICAgPHZhbHVlPgorICAgICAgICAgICAgPHRleHQ+CisgICAgICAgICAgICAgIENMR1QuCisgICAgICAgICAgICA8L3RleHQ+CisgICAgICAgICAgPC92YWx1ZT4KKyAgICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9InJlYWR5Ij4KKyAgICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgICA8L2V2ZW50PgorICAgICAgICAgIDxldmVudCBhY3Rpdml0eT0iZW50ZXIiPgorICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgIDwvZXZlbnQ+CisgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJpbml0aWFsaXplIj4KKyAgICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgICA8L2V2ZW50PgorICAgICAgICA8L2ZpZWxkPgorICAgICAgICA8ZmllbGQgbmFtZT0iZmllbGRfMzUiPgorICAgICAgICAgIDx2YWxpZGF0ZT4KKyAgICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgICA8L3ZhbGlkYXRlPgorICAgICAgICAgIDxjYWxjdWxhdGU+CisgICAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgPC9jYWxjdWxhdGU+CisgICAgICAgICAgPHVpPgorICAgICAgICAgICAgPGNob2ljZUxpc3Qgb3Blbj0ib25FbnRyeSI+CisgICAgICAgICAgICAgIDxib3JkZXI+PGVkZ2UvPjwvYm9yZGVyPgorICAgICAgICAgICAgPC9jaG9pY2VMaXN0PgorICAgICAgICAgIDwvdWk+CisgICAgICAgICAgPGl0ZW1zIHNhdmU9IjEiPgorICAgICAgICAgICAgPHRleHQ+YXBwbGVzPC90ZXh0PgorICAgICAgICAgICAgPHRleHQ+YmFuYW5hczwvdGV4dD4KKyAgICAgICAgICAgIDx0ZXh0PnBlYXJzPC90ZXh0PgorICAgICAgICAgIDwvaXRlbXM+CisgICAgICAgICAgPHZhbHVlPgorICAgICAgICAgICAgPHRleHQ+YXBwbGVzPC90ZXh0PgorICAgICAgICAgIDwvdmFsdWU+CisgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NDbG9zZSI+CisgICAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgPC9ldmVudD4KKyAgICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9ImluaXRpYWxpemUiPgorICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgIDwvZXZlbnQ+CisgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJjaGFuZ2UiPgorICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgIDwvZXZlbnQ+CisgICAgICAgIDwvZmllbGQ+CisgICAgICAgIDxzdWJmb3JtIG5hbWU9InM3Ij4KKyAgICAgICAgICA8ZmllbGQgbmFtZT0iZmllbGRfMzYiPgorICAgICAgICAgICAgPHVpPgorICAgICAgICAgICAgICA8ZGF0ZVRpbWVFZGl0PgorICAgICAgICAgICAgICAgIDxjb21iIG51bWJlck9mQ2VsbHM9IjgiLz4KKyAgICAgICAgICAgICAgICA8Ym9yZGVyIGhhbmQ9InJpZ2h0Ij4KKyAgICAgICAgICAgICAgICAgIDxlZGdlLz4KKyAgICAgICAgICAgICAgICA8L2JvcmRlcj4KKyAgICAgICAgICAgICAgPC9kYXRlVGltZUVkaXQ+CisgICAgICAgICAgICA8L3VpPgorICAgICAgICAgIDwvZmllbGQ+CisgICAgICAgICAgPGZpZWxkIG5hbWU9ImZpZWxkXzM3Ij4KKyAgICAgICAgICAgIDx2YWxpZGF0ZT4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L3ZhbGlkYXRlPgorICAgICAgICAgICAgPGNhbGN1bGF0ZT4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2NhbGN1bGF0ZT4KKyAgICAgICAgICAgIDx1aT4KKyAgICAgICAgICAgICAgPGJ1dHRvbiBoaWdobGlnaHQ9InB1c2giLz4KKyAgICAgICAgICAgIDwvdWk+CisgICAgICAgICAgICA8Y2FwdGlvbj4KKyAgICAgICAgICAgICAgPHZhbHVlPgorICAgICAgICAgICAgICAgIDx0ZXh0PgorICAgICAgICAgICAgICAgICAgQnV0dG9uCisgICAgICAgICAgICAgICAgPC90ZXh0PgorICAgICAgICAgICAgICA8L3ZhbHVlPgorICAgICAgICAgICAgPC9jYXB0aW9uPgorICAgICAgICAgICAgPGl0ZW1zPgorICAgICAgICAgICAgICA8dGV4dCBuYW1lPSJkb3duIj4KKyAgICAgICAgICAgICAgICBEb3duIFRleHQKKyAgICAgICAgICAgICAgPC90ZXh0PgorICAgICAgICAgICAgICA8dGV4dCBuYW1lPSJyb2xsb3ZlciI+CisgICAgICAgICAgICAgICAgUm9sbG92ZXIgVGV4dAorICAgICAgICAgICAgICA8L3RleHQ+CisgICAgICAgICAgICA8L2l0ZW1zPgorICAgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NDbG9zZSI+CisgICAgICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgICAgPC9ldmVudD4KKyAgICAgICAgICAgIDxldmVudCBhY3Rpdml0eT0iY2hhbmdlIj4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2V2ZW50PgorICAgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJleGl0Ij4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2V2ZW50PgorICAgICAgICAgIDwvZmllbGQ+CisgICAgICAgICAgPGZpZWxkIG5hbWU9ImZpZWxkXzM4Ij4KKyAgICAgICAgICAgIDx2YWxpZGF0ZT4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L3ZhbGlkYXRlPgorICAgICAgICAgICAgPGNhbGN1bGF0ZT4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2NhbGN1bGF0ZT4KKyAgICAgICAgICAgIDx1aT4KKyAgICAgICAgICAgICAgPGJhcmNvZGUvPgorICAgICAgICAgICAgPC91aT4KKyAgICAgICAgICAgIDx2YWx1ZT4KKyAgICAgICAgICAgICAgPHRleHQ+CisgICAgICAgICAgICAgICAgdGVzdAorICAgICAgICAgICAgICA8L3RleHQ+CisgICAgICAgICAgICA8L3ZhbHVlPgorICAgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJpbml0aWFsaXplIj4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2V2ZW50PgorICAgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJjaGFuZ2UiPgorICAgICAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgICAgIDwvZXZlbnQ+CisgICAgICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9InJlYWR5Ij4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2V2ZW50PgorICAgICAgICAgIDwvZmllbGQ+CisgICAgICAgICAgPGZpZWxkIG5hbWU9ImZpZWxkXzM5Ij4KKyAgICAgICAgICAgIDx2YWxpZGF0ZT4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L3ZhbGlkYXRlPgorICAgICAgICAgICAgPGNhbGN1bGF0ZT4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2NhbGN1bGF0ZT4KKyAgICAgICAgICAgIDx1aT4KKyAgICAgICAgICAgICAgPGNoZWNrQnV0dG9uIHNoYXBlPSJyb3VuZCI+CisgICAgICAgICAgICAgICAgPGJvcmRlcj4KKyAgICAgICAgICAgICAgICAgIDxlZGdlLz4KKyAgICAgICAgICAgICAgICA8L2JvcmRlcj4KKyAgICAgICAgICAgICAgPC9jaGVja0J1dHRvbj4KKyAgICAgICAgICAgIDwvdWk+CisgICAgICAgICAgICA8aXRlbXM+CisgICAgICAgICAgICAgIDxpbnRlZ2VyPgorICAgICAgICAgICAgICAgIDIKKyAgICAgICAgICAgICAgPC9pbnRlZ2VyPgorICAgICAgICAgICAgPC9pdGVtcz4KKyAgICAgICAgICAgIDx2YWx1ZT4KKyAgICAgICAgICAgICAgPHRleHQ+CisgICAgICAgICAgICAgICAgU2VsZWN0IDIKKyAgICAgICAgICAgICAgPC90ZXh0PgorICAgICAgICAgICAgPC92YWx1ZT4KKyAgICAgICAgICAgIDxjYXB0aW9uIHBsYWNlbWVudD0ibGVmdCI+CisgICAgICAgICAgICAgIDx2YWx1ZT4KKyAgICAgICAgICAgICAgICA8dGV4dD4KKyAgICAgICAgICAgICAgICAgIE9wdGlvbiAyCisgICAgICAgICAgICAgICAgPC90ZXh0PgorICAgICAgICAgICAgICA8L3ZhbHVlPgorICAgICAgICAgICAgPC9jYXB0aW9uPgorICAgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJlbnRlciI+CisgICAgICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgICAgPC9ldmVudD4KKyAgICAgICAgICAgIDxldmVudCBhY3Rpdml0eT0icmVhZHkiPgorICAgICAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgICAgIDwvZXZlbnQ+CisgICAgICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9ImNoYW5nZSI+CisgICAgICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgICAgPC9ldmVudD4KKyAgICAgICAgICA8L2ZpZWxkPgorICAgICAgICAgIDxmaWVsZCBuYW1lPSJmaWVsZF80MCI+CisgICAgICAgICAgICA8dmFsaWRhdGU+CisgICAgICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgICAgPC92YWxpZGF0ZT4KKyAgICAgICAgICAgIDxjYWxjdWxhdGU+CisgICAgICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgICAgPC9jYWxjdWxhdGU+CisgICAgICAgICAgICA8dWk+CisgICAgICAgICAgICAgIDx0ZXh0RWRpdC8+CisgICAgICAgICAgICA8L3VpPgorICAgICAgICAgICAgPHZhbHVlPgorICAgICAgICAgICAgICA8dGV4dD4KKyAgICAgICAgICAgICAgICBDTEdULgorICAgICAgICAgICAgICA8L3RleHQ+CisgICAgICAgICAgICA8L3ZhbHVlPgorICAgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJyZWFkeSI+CisgICAgICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgICAgPC9ldmVudD4KKyAgICAgICAgICAgIDxldmVudCBhY3Rpdml0eT0iZG9jQ2xvc2UiPgorICAgICAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgICAgIDwvZXZlbnQ+CisgICAgICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9ImV4aXQiPgorICAgICAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgICAgIDwvZXZlbnQ+CisgICAgICAgICAgPC9maWVsZD4KKyAgICAgICAgICA8ZmllbGQgbmFtZT0iZmllbGRfNDEiPgorICAgICAgICAgICAgPHZhbGlkYXRlPgorICAgICAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgICAgIDwvdmFsaWRhdGU+CisgICAgICAgICAgICA8Y2FsY3VsYXRlPgorICAgICAgICAgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgICAgIDwvY2FsY3VsYXRlPgorICAgICAgICAgICAgPHVpPgorICAgICAgICAgICAgICA8Y2hvaWNlTGlzdCBvcGVuPSJvbkVudHJ5Ij4KKyAgICAgICAgICAgICAgICA8Ym9yZGVyPjxlZGdlLz48L2JvcmRlcj4KKyAgICAgICAgICAgICAgPC9jaG9pY2VMaXN0PgorICAgICAgICAgICAgPC91aT4KKyAgICAgICAgICAgIDxpdGVtcyBzYXZlPSIxIj4KKyAgICAgICAgICAgICAgPHRleHQ+YXBwbGVzPC90ZXh0PgorICAgICAgICAgICAgICA8dGV4dD5iYW5hbmFzPC90ZXh0PgorICAgICAgICAgICAgICA8dGV4dD5wZWFyczwvdGV4dD4KKyAgICAgICAgICAgIDwvaXRlbXM+CisgICAgICAgICAgICA8dmFsdWU+CisgICAgICAgICAgICAgIDx0ZXh0PmFwcGxlczwvdGV4dD4KKyAgICAgICAgICAgIDwvdmFsdWU+CisgICAgICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9ImRvY0Nsb3NlIj4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2V2ZW50PgorICAgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJpbml0aWFsaXplIj4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2V2ZW50PgorICAgICAgICAgICAgPGV2ZW50IGFjdGl2aXR5PSJpbml0aWFsaXplIj4KKyAgICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICA8L2V2ZW50PgorICAgICAgICAgIDwvZmllbGQ+CisgICAgICAgIDwvc3ViZm9ybT4KKyAgICAgIDwvc3ViZm9ybT4KKyAgICA8L3N1YmZvcm0+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tpbmNsdWRlIC4uLy4uL3hmYV9sb2NhbGVfNl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcG9zdGFtYmxlXzdfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3BhZ2VzXzhfMC5mcmFnbWVudH19Cit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTE2NDE1OC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMTY0MTU4LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4YjdlZmYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTE2NDE1OC5pbgpAQCAtMCwwICsxLDM3IEBACit7e2hlYWRlcn19Cit7e2luY2x1ZGUgLi4vLi4veGZhX2NhdGFsb2dfMV8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfb2JqZWN0XzJfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3ByZWFtYmxlXzNfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX2NvbmZpZ180XzAuZnJhZ21lbnR9fQore3tvYmplY3QgNSAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPHRlbXBsYXRlIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS10ZW1wbGF0ZS8zLjMvIj4KKyAgPHN1YmZvcm0+CisgICAgPHBhZ2VTZXQgcmVsYXRpb249InNpbXBsZXhQYWdpbmF0ZWQiPgorICAgICAgPHBhZ2VBcmVhIHBhZ2VQb3NpdGlvbj0ibGFzdCI+CisgICAgICAgIDxzdWJmb3JtPgorICAgICAgICAgIDxzdWJmb3JtIGxheW91dD0idGFibGUiPgorICAgICAgICAgICAgPHN1YmZvcm0gbGF5b3V0PSJyb3ciPgorICAgICAgICAgICAgICA8ZmllbGQgLz4KKyAgICAgICAgICAgICAgPGZpZWxkIGNvbFNwYW49IjQyOTQ5NjcyOTUiIHByZXNlbmNlPSJpbmFjdGl2ZSIgLz4KKyAgICAgICAgICAgIDwvc3ViZm9ybT4KKyAgICAgICAgICA8L3N1YmZvcm0+CisgICAgICAgIDwvc3ViZm9ybT4KKyAgICAgIDwvcGFnZUFyZWE+CisgICAgICA8cGFnZUFyZWE+CisgICAgICAgIDxjb250ZW50QXJlYSAvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tpbmNsdWRlIC4uLy4uL3hmYV9sb2NhbGVfNl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcG9zdGFtYmxlXzdfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3BhZ2VzXzhfMC5mcmFnbWVudH19Cit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTI0ODkwMS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMjQ4OTAxLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlMjYzOGEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTI0ODkwMS5pbgpAQCAtMCwwICsxLDQ3IEBACit7e2hlYWRlcn19Cit7e2luY2x1ZGUgLi4vLi4veGZhX2NhdGFsb2dfMV8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfb2JqZWN0XzJfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3ByZWFtYmxlXzNfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX2NvbmZpZ180XzAuZnJhZ21lbnR9fQore3tvYmplY3QgNSAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorc3RyZWFtCis8dGVtcGxhdGUgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLXRlbXBsYXRlLzIuNi8iPgorICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBsb2NhbGU9ImVuX1VTIiBuYW1lPSJmb3JtMSIgcmVzdG9yZVN0YXRlPSJhdXRvIj4KKyAgICA8cGFnZVNldD4KKyAgICAgIDxwYWdlQXJlYSBpZD0iUGFnZTEiIG5hbWU9IlBhZ2UxIj4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjEwLjVpbiIgdz0iOGluIiB4PSIwLjI1aW4iIHk9IjAuMjVpbiIvPgorICAgICAgICA8bWVkaXVtIGxvbmc9IjExaW4iIHNob3J0PSI4LjVpbiIgc3RvY2s9ImxldHRlciIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPHN1YmZvcm0gaD0iMTAuNWluIiB3PSI4aW4iIG5hbWU9InN1YmZvcm0yIj4KKyAgICAgIDxmaWVsZCBoPSI5LjAwMDFtbSIgbmFtZT0iZmllbGQxIiB3PSI0Ny42MjVtbSIgeD0iNi4zNW1tIiB5PSI5Mi4wNzVtbSI+CisgICAgICAgIDx1aT4KKyAgICAgICAgICA8Y2hvaWNlTGlzdC8+CisgICAgICAgIDwvdWk+CisgICAgICA8L2ZpZWxkPgorICAgIDwvc3ViZm9ybT4KKyAgICA8ZXZlbnQgYWN0aXZpdHk9ImRvY1JlYWR5IiByZWY9IiRob3N0Ij4KKyAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgIHRyeSB7CisgICAgICAgICAgdmFyIGZvcm0xID0geGZhLnJlc29sdmVOb2RlKCJ4ZmEuZm9ybS5mb3JtMSIpOworICAgICAgICAgIHZhciB0bXAgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5maWVsZDEiKTsKKyAgICAgICAgICB0bXAubm9kZXMuYXBwZW5kKHRoaXMpOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgYXBwLmFsZXJ0KCJQQVNTOiBDYXVnaHQ6ICIgKyBlKTsKKyAgICAgICAgfQorICAgICA8L3NjcmlwdD4KKyAgICA8L2V2ZW50PgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7aW5jbHVkZSAuLi8uLi94ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wYWdlc184XzAuZnJhZ21lbnR9fQore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEyNDg5MDFfZXhwZWN0ZWQudHh0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEyNDg5MDFfZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZjgyOGMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTI0ODkwMV9leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorQWxlcnQ6IFBBU1M6IENhdWdodDogWEZBT2JqZWN0LmFwcGVuZDogT3BlcmF0aW9uIHdvdWxkIGNyZWF0ZSBhIGN5Y2xlLgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEzMTI3MzYuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTMxMjczNi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzg4ODEwCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEzMTI3MzYuaW4KQEAgLTAsMCArMSw0MCBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tvYmplY3QgMyAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPHhkcDp4ZHAgeG1sbnM6eGRwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hkcC8iPgorPHRlbXBsYXRlIHg9IiI+CisgIDxzdWJmb3JtPgorICAgIDxwYWdlU2V0PgorICAgICAgPHBhZ2VBcmVhPgorICAgICAgICA8Y29udGVudEFyZWEvPgorICAgICAgICA8ZXhjbEdyb3VwIG5hbWU9IjAiPgorICAgICAgICAgIDxmaWVsZD4KKyAgICAgICAgICAgIDx1aT48Y2hlY2tCdXR0b24vPjwvdWk+CisgICAgICAgICAgICA8aXRlbXM+PHRleHRFZGl0Lz48L2l0ZW1zPgorICAgICAgICAgIDwvZmllbGQ+CisgICAgICAgIDwvZXhjbEdyb3VwPgorICAgICAgICA8c3ViZm9ybSBuYW1lPSJTaG8wIj4KKyAgICAgICAgICA8ZXZlbnQgYWN0aXZpdHk9ImluaXRpYWxpemUiPgorICAgICAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgICAgU2hvMC5wcmVzZW5jZT0wOworICAgICAgICAgICAgICBhcHAuYWxlcnQoImRvbmUiKTsKKyAgICAgICAgICAgIDwvc2NyaXB0PgorICAgICAgICAgIDwvZXZlbnQ+CisgICAgICAgIDwvc3ViZm9ybT4KKyAgICAgIDwvcGFnZUFyZWE+CisgICAgPC9wYWdlU2V0PgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDggMH0gPDwKKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMzEyNzM2X2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xMzEyNzM2X2V4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWExZWNhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzEzMTI3MzZfZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK0FsZXJ0OiBkb25lCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTQ0NDIzOC5ldnQgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfMTQ0NDIzOC5ldnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWRjYTM1YQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xNDQ0MjM4LmV2dApAQCAtMCwwICsxLDMgQEAKK21vdXNlZG93bixsZWZ0LDkxLDUzOQorbW91c2V1cCxsZWZ0LDkxLDUzOQorY2hhcmNvZGUsMzIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xNDQ0MjM4LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzE0NDQyMzguaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc1MTc4YwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z18xNDQ0MjM4LmluCkBAIC0wLDAgKzEsMTQ5IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDQgMCBSCisgIC9PcGVuQWN0aW9uIDQwIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAyCisgIC9LaWRzIFsKKyAgICAzMiAwIFIKKyAgICAzNCAwIFIKKyAgXQorPj4KK2VuZG9iagorJSBGb3Jtcwore3tvYmplY3QgNCAwfX0gPDwKKyAgL1hGQSA0MyAwIFIKKyAgL0ZpZWxkcyBbCisgICAgMTAgMCBSCisgICAgMTEgMCBSCisgIF0KKz4+CitlbmRvYmoKKyUgRmllbGRzCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9UeAorICAvVCAoTXlGaWVsZDUpCisgIC9WIChteWZpZWxkXzUpCisgIC9SZWN0IFswIDUwMCA2MDAgNjAwXQorPj4KKyUgRmllbGRzCit7e29iamVjdCAxMSAwfX0gPDwKKyAgL1QgKE15RmllbGQzKQorICAvUGFyZW50IDQgMCBSCisgIC9LaWRzIFsxMiAwIFJdCisgIC9PcHQgWyhhKSAoYikgKGMpIChkKV0KKyAgL1YgWyhhKSAoYikgKGMpXQorPj4KK2VuZG9iagorJSBGaWVsZHMKK3t7b2JqZWN0IDEyIDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL0NoCisgIC9GZiAxMzEwNzIKKyAgL1BhcmVudCAxMSAwIFIKKyAgL0tpZHMgWzEzIDAgUl0KKz4+CitlbmRvYmoKKyUgRmllbGRzCit7e29iamVjdCAxMyAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL1BhcmVudCAxMiAwIFIKKyAgL1JlY3QgWzAgNDAwIDYwMCA2MDBdCis+PgorZW5kb2JqCislIEZpZWxkcwore3tvYmplY3QgMTQgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9QYXJlbnQgMTIgMCBSCisgIC9SZWN0IFsxMDAgNDAwIDUwMCA1MDBdCis+PgorZW5kb2JqCislIFBhZ2UgbnVtYmVyIDIuCit7e29iamVjdCAzMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvQW5ub3RzIFsxMyAwIFJdCisKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDM0IDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9Bbm5vdHMgWzEwIDAgUl0KKz4+CitlbmRvYmoKKyUgRG9jdW1lbnQgSlMgQWN0aW9uCit7e29iamVjdCA0MCAwfX0gPDwKKyAgL1R5cGUgL0FjdGlvbgorICAvUyAvSmF2YVNjcmlwdAorICAvSlMgNDEgMCBSCis+PgorZW5kb2JqCislIEpTIHByb2dyYW0gdG8gZXhleHV0ZQore3tvYmplY3QgNDEgMH19IDw8Cis+Pgorc3RyZWFtCit2YXIgZjUgPSB0aGlzLmdldEZpZWxkKCJNeUZpZWxkNSIpOwordmFyIGYzID0gdGhpcy5nZXRGaWVsZCgiTXlGaWVsZDMiKTsKK2YzLnNldEZvY3VzKCk7Cit0aGlzLl9fZGVmaW5lR2V0dGVyX18oInBhZ2VOdW0iLGZ1bmN0aW9uIG8oKXtmNS5zZXRGb2N1cygpOyBmMy5ib3JkZXJTdHlsZT0iZGFzaGVkIjsgZjMuc2V0Rm9jdXMoKTt9KTsKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA0MyAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzx4ZHA6eGRwIHhtbG5zOnhkcD0iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvIj4KKzxjb25maWc+PC9jb25maWc+Cis8dGVtcGxhdGUgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLXRlbXBsYXRlLzIuOC8iPgorICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBsb2NhbGU9ImVuX1VTIj4KKyAgICA8cGFnZVNldD4KKyAgICAgIDxwYWdlQXJlYSBpZD0iUGFnZTEiIG5hbWU9IlBhZ2UxIj4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjI2OC45MzltbSIgdz0iMjAzLjJtbSIgeD0iNi4zNW1tIiB5PSI2LjM1bW0iLz4KKyAgICAgICAgPG1lZGl1bSBsb25nPSI3OTJwdCIgc2hvcnQ9IjYxMnB0IiBzdG9jaz0iZGVmYXVsdCIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPGZpZWxkIGg9IjkuMDAwMW1tIiBuYW1lPSJNeUZpZWxkMyIgdz0iNDcuNjI1bW0iIHg9IjEyMG1tIiB5PSIxMjBtbSI+CisgICAgICA8dWk+CisgICAgICAgIDxjaG9pY2VMaXN0IG9wZW49Im9uRW50cnkiPgorICAgICAgICAgIDxib3JkZXI+CisgICAgICAgICAgICA8ZWRnZS8+CisgICAgICAgICAgPC9ib3JkZXI+CisgICAgICAgIDwvY2hvaWNlTGlzdD4KKyAgICAgIDwvdWk+CisgICAgICA8aXRlbXMgc2F2ZT0iMSI+CisgICAgICAgIDx0ZXh0PmFwcGxlczwvdGV4dD4KKyAgICAgICAgPHRleHQ+YmFuYW5hczwvdGV4dD4KKyAgICAgICAgPHRleHQ+cGVhcnM8L3RleHQ+CisgICAgICA8L2l0ZW1zPgorICAgICAgPHZhbHVlPgorICAgICAgICA8dGV4dD5hcHBsZXM8L3RleHQ+CisgICAgICA8L3ZhbHVlPgorICAgICAgPGV2ZW50IGFjdGl2aXR5PSJwcmVPcGVuIj4KKyAgICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgICAgIHZhciBhYSA9IHRoaXMucGFnZU51bTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICA8L2V2ZW50PgorICAgIDwvZmllbGQ+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+Cis8L3hkcDp4ZHA+CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzk4MDExNi5ldnQgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfOTgwMTE2LmV2dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTAyNWZhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzk4MDExNi5ldnQKQEAgLTAsMCArMSw0IEBACittb3VzZW1vdmUsNTAsNTAKK21vdXNlZG93bixsZWZ0LDUwLDUwCittb3VzZXVwLGxlZnQsNTAsNTAKK2tleWNvZGUsOQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzk4MDExNi5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z185ODAxMTYuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFiY2JmMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z185ODAxMTYuaW4KQEAgLTAsMCArMSw1OCBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZSB4bWxucz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvMi42LyI+CisgIDxzdWJmb3JtIGxheW91dD0idGIiIGxvY2FsZT0iZW5fVVMiIG5hbWU9ImZvcm0xIiByZXN0b3JlU3RhdGU9ImF1dG8iPgorICAgIDxwYWdlU2V0PgorICAgICAgPHBhZ2VBcmVhIGlkPSJQYWdlMSIgbmFtZT0iUGFnZTEiPgorICAgICAgICA8Y29udGVudEFyZWEgaD0iMTAuNWluIiB3PSI4aW4iIHg9IjAuMjVpbiIgeT0iMC4yNWluIi8+CisgICAgICAgIDxtZWRpdW0gbG9uZz0iMTFpbiIgc2hvcnQ9IjguNWluIiBzdG9jaz0ibGV0dGVyIi8+CisgICAgICA8L3BhZ2VBcmVhPgorICAgIDwvcGFnZVNldD4KKyAgICA8c3ViZm9ybSBoPSIxMC41aW4iIHc9IjhpbiI+CisgICAgICA8ZmllbGQgaD0iM21tIiBuYW1lPSJEcm9wRG93bkxpc3QxIiB3PSIzbW0iIHg9IjBtbSIgeT0iMW1tIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDxjaG9pY2VMaXN0Lz4KKyAgICAgICAgPC91aT4KKyAgICAgICAgPGl0ZW1zIHNhdmU9IjEiPgorICAgICAgICAgIDx0ZXh0PlNpbmdsZTwvdGV4dD4KKyAgICAgICAgICA8dGV4dD5NYXJyaWVkPC90ZXh0PgorICAgICAgICAgIDx0ZXh0Pk90aGVyPC90ZXh0PgorICAgICAgICA8L2l0ZW1zPgorICAgICAgPC9maWVsZD4KKyAgICAgIDxmaWVsZCBoPSI1MDAuMDAwMW1tIiBuYW1lPSJEcm9wRG93bkxpc3QyIiB3PSI1MDAuNjI1bW0iIHg9IjBtbSIgeT0iMG1tIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDx0ZXh0RWRpdD48L3RleHRFZGl0PgorICAgICAgICA8L3VpPgorICAgICAgICA8dmFsdWU+CisgICAgICAgICAgPHRleHQ+RW1wbG95ZWU8L3RleHQ+CisgICAgICAgIDwvdmFsdWU+CisgICAgICA8L2ZpZWxkPgorICAgIDwvc3ViZm9ybT4KKyAgICA8dHJhdmVyc2FsPgorICAgICAgICA8dHJhdmVyc2Ugb3BlcmF0aW9uPSJmaXJzdCIgcmVmPSIkeGZhLihldmFsKCd4ZmEuaG9zdC5zZXRGb2N1cyhmaWVsZF9Ecm9wRG93bkxpc3QxKTsgeGZhLnRlbXBsYXRlLnJlbWVyZ2UoKTsgeGZhLmhvc3Qub3Blbkxpc3QoZmllbGRfRHJvcERvd25MaXN0MSk7JykgPT0gMCkiLz4KKyAgICA8L3RyYXZlcnNhbD4KKyAgICA8ZXZlbnQgYWN0aXZpdHk9ImRvY1JlYWR5Ij4KKyAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+CisgICAgICAgIGZpZWxkX0Ryb3BEb3duTGlzdDEgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5Ecm9wRG93bkxpc3QxIik7CisgICAgICAgIGZpZWxkX0Ryb3BEb3duTGlzdDIgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5Ecm9wRG93bkxpc3QyIik7CisgICAgICAgIHhmYS5ob3N0LnNldEZvY3VzKGZpZWxkX0Ryb3BEb3duTGlzdDIpOworICAgICAgPC9zY3JpcHQ+CisgICAgPC9ldmVudD4KKyAgPC9zdWJmb3JtPgorPC90ZW1wbGF0ZT4KK2VuZHN0cmVhbQorZW5kb2JqCit7e2luY2x1ZGUgLi4vLi4veGZhX2xvY2FsZV82XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wb3N0YW1ibGVfN18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcGFnZXNfOF8wLmZyYWdtZW50fX0KK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z185ODAxNjEuZXZ0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvYnVnXzk4MDE2MS5ldnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUwMjVmYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z185ODAxNjEuZXZ0CkBAIC0wLDAgKzEsNCBAQAorbW91c2Vtb3ZlLDUwLDUwCittb3VzZWRvd24sbGVmdCw1MCw1MAorbW91c2V1cCxsZWZ0LDUwLDUwCitrZXljb2RlLDkKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2J1Z185ODAxNjEuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfOTgwMTYxLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1ODQ0NGQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9idWdfOTgwMTYxLmluCkBAIC0wLDAgKzEsNTUgQEAKK3t7aGVhZGVyfX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY2F0YWxvZ18xXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9vYmplY3RfMl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcHJlYW1ibGVfM18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY29uZmlnXzRfMC5mcmFnbWVudH19Cit7e29iamVjdCA1IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8dGVtcGxhdGUgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLXRlbXBsYXRlLzIuNi8iPgorICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBsb2NhbGU9ImVuX1VTIiBuYW1lPSJmb3JtMSIgcmVzdG9yZVN0YXRlPSJhdXRvIj4KKyAgICA8cGFnZVNldD4KKyAgICAgIDxwYWdlQXJlYSBpZD0iUGFnZTEiIG5hbWU9IlBhZ2UxIj4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjEwLjVpbiIgdz0iOGluIiB4PSIwLjI1aW4iIHk9IjAuMjVpbiIvPgorICAgICAgICA8bWVkaXVtIGxvbmc9IjExaW4iIHNob3J0PSI4LjVpbiIgc3RvY2s9ImxldHRlciIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPHN1YmZvcm0gaD0iMTAuNWluIiB3PSI4aW4iPgorICAgICAgPGZpZWxkIGg9IjNtbSIgbmFtZT0iRHJvcERvd25MaXN0MSIgdz0iM21tIiB4PSIwbW0iIHk9IjFtbSI+CisgICAgICAgIDx1aT4KKyAgICAgICAgICA8Y2hvaWNlTGlzdC8+CisgICAgICAgIDwvdWk+CisgICAgICAgIDxpdGVtcyBzYXZlPSIxIj4KKyAgICAgICAgICA8dGV4dD5TaW5nbGU8L3RleHQ+CisgICAgICAgICAgPHRleHQ+TWFycmllZDwvdGV4dD4KKyAgICAgICAgICA8dGV4dD5PdGhlcjwvdGV4dD4KKyAgICAgICAgPC9pdGVtcz4KKyAgICAgIDwvZmllbGQ+CisgICAgICA8ZmllbGQgaD0iNTAwLjAwMDFtbSIgbmFtZT0iRHJvcERvd25MaXN0MiIgdz0iNTAwLjYyNW1tIiB4PSIwbW0iIHk9IjBtbSI+CisgICAgICAgIDx1aT4KKyAgICAgICAgICA8dGV4dEVkaXQ+PC90ZXh0RWRpdD4KKyAgICAgICAgPC91aT4KKyAgICAgICAgPHRyYXZlcnNhbD4KKyAgICAgICAgICA8dHJhdmVyc2Ugb3BlcmF0aW9uPSJuZXh0IiByZWY9IiR4ZmEuKGV2YWwoJ3hmYS5ob3N0LnNldEZvY3VzKGZpZWxkX0Ryb3BEb3duTGlzdDEpOyB4ZmEudGVtcGxhdGUucmVtZXJnZSgpOyB4ZmEuaG9zdC5vcGVuTGlzdChmaWVsZF9Ecm9wRG93bkxpc3QxKTsnKSA9PSAwKSIvPgorICAgICAgICA8L3RyYXZlcnNhbD4KKyAgICAgIDwvZmllbGQ+CisgICAgPC9zdWJmb3JtPgorICAgIDxldmVudCBhY3Rpdml0eT0iZG9jUmVhZHkiPgorICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij4KKyAgICAgICAgZmllbGRfRHJvcERvd25MaXN0MSA9IHhmYS5yZXNvbHZlTm9kZSgieGZhLmZvcm0uLkRyb3BEb3duTGlzdDEiKTsKKyAgICAgICAgZmllbGRfRHJvcERvd25MaXN0MiA9IHhmYS5yZXNvbHZlTm9kZSgieGZhLmZvcm0uLkRyb3BEb3duTGlzdDIiKTsKKyAgICAgICAgeGZhLmhvc3Quc2V0Rm9jdXMoZmllbGRfRHJvcERvd25MaXN0Mik7CisgICAgICA8L3NjcmlwdD4KKyAgICA8L2V2ZW50PgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7aW5jbHVkZSAuLi8uLi94ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wYWdlc184XzAuZnJhZ21lbnR9fQore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvY3Jvc3NfZW5naW5lX2FwcGx5LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvY3Jvc3NfZW5naW5lX2FwcGx5LmluCmluZGV4IGNkYWFkMmEuLjNhNDE3MDggMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2Nyb3NzX2VuZ2luZV9hcHBseS5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9jcm9zc19lbmdpbmVfYXBwbHkuaW4KQEAgLTQ2LDYgKzQ2LDcgQEAKIGVuZG9iagoge3tpbmNsdWRlIC4uLy4uL3hmYV9sb2NhbGVfNl8wLmZyYWdtZW50fX0KIHt7aW5jbHVkZSAuLi8uLi94ZmFfcG9zdGFtYmxlXzdfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3BhZ2VzXzhfMC5mcmFnbWVudH19CiB7e3hyZWZ9fQoge3t0cmFpbGVyfX0KIHt7c3RhcnR4cmVmfX0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2R1bXBfdHJlZS5qcyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2R1bXBfdHJlZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzFjNzJhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvZHVtcF90cmVlLmpzCkBAIC0wLDAgKzEsMjIgQEAKKy8vIENvcHlyaWdodCAyMDIwIFRoZSBQREZpdW0gQXV0aG9ycworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworLy8gTm90ZTogQmUgc3VyZSB0aGF0IHRoaXMgZmlsZSBpcyBvbmx5IGluY2x1ZGVkIGluc2lkZSBhIENEQVRBIGJsb2NrLAorLy8gb3RoZXJ3aXNlIHRoZSBsZXNzLXRoYW4gY29tcGFyaXNpb24gYmVsb3cgd2lsbCBicmVhayB0aGUgWE1MIHBhcnNlLgorCitmdW5jdGlvbiBkdW1wVHJlZShub2RlLCBsZXZlbCkgeworICBsZXZlbCA9IGxldmVsIHx8IDA7CisgIHZhciBpbmRlbnRhdGlvbiA9ICJ8ICIucmVwZWF0KGxldmVsKTsKKyAgdHJ5IHsKKyAgICBhcHAuYWxlcnQoaW5kZW50YXRpb24gKyBub2RlLmNsYXNzTmFtZSk7CisgICAgdmFyIGNoaWxkcmVuID0gbm9kZS5ub2RlczsKKyAgICBpZiAoY2hpbGRyZW4pIHsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgZHVtcFRyZWUoY2hpbGRyZW4uaXRlbShpKSwgbGV2ZWwgKyAxKTsKKyAgICAgIH0KKyAgICB9CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBhcHAuYWxlcnQoaW5kZW50YXRpb24gKyAiRXJyb3I6ICIgKyBlKTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvaW5zdGFuY2VfbWFuYWdlci5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2luc3RhbmNlX21hbmFnZXIuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUzZDc3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL2luc3RhbmNlX21hbmFnZXIuaW4KQEAgLTAsMCArMSw5OSBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZSB4bWxucz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvMi42LyI+CisgIDxzdWJmb3JtIGxheW91dD0idGIiIGxvY2FsZT0iZW5fVVMiIG5hbWU9ImZvcm0xIiByZXN0b3JlU3RhdGU9ImF1dG8iPgorICAgIDxwYWdlU2V0PgorICAgICAgPHBhZ2VBcmVhIGlkPSJQYWdlMSIgbmFtZT0iUGFnZTEiPgorICAgICAgICA8Y29udGVudEFyZWEgaD0iMTAuNWluIiB3PSI4aW4iIHg9IjAuMjVpbiIgeT0iMC4yNWluIi8+CisgICAgICAgIDxtZWRpdW0gbG9uZz0iMTFpbiIgc2hvcnQ9IjguNWluIiBzdG9jaz0ibGV0dGVyIi8+CisgICAgICA8L3BhZ2VBcmVhPgorICAgIDwvcGFnZVNldD4KKyAgICA8c3ViZm9ybSBoPSIxMC41aW4iIHc9IjhpbiIgbmFtZT0ic3ViZm9ybTIiPgorICAgICAgPGZpZWxkIGg9IjkuMDAwMW1tIiBuYW1lPSJmaWVsZDEiIHc9IjQ3LjYyNW1tIiB4PSI2LjM1bW0iIHk9IjkyLjA3NW1tIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDxjaG9pY2VMaXN0Lz4KKyAgICAgICAgPC91aT4KKyAgICAgICAgPGl0ZW1zIHNhdmU9IjEiPgorICAgICAgICAgIDx0ZXh0PlNpbmdsZTwvdGV4dD4KKyAgICAgICAgICA8dGV4dD5NYXJyaWVkPC90ZXh0PgorICAgICAgICAgIDx0ZXh0Pk90aGVyPC90ZXh0PgorICAgICAgICA8L2l0ZW1zPgorICAgICAgPC9maWVsZD4KKyAgICAgIDxmaWVsZCBuYW1lPSJmaWVsZDMiIGg9IjEwLjYyNW1tIiB3PSIzMC42MjVtbSIgeD0iNW1tIiB5PSI1MG1tIj4KKyAgICAgIDwvZmllbGQ+CisgICAgICA8c3ViZm9ybSBuYW1lPSJmaWVsZDQiIHg9IjVtbSIgeT0iNW1tIj4KKyAgICAgICAgPG9jY3VyIG1heD0iLTEiLz4KKyAgICAgICAgPGZpZWxkIG5hbWU9ImZpZWxkNSIgdz0iNjQuNzdtbSIgaD0iNi4zNW1tIj4KKyAgICAgICAgPC9maWVsZD4KKyAgICAgIDwvc3ViZm9ybT4KKyAgICA8L3N1YmZvcm0+CisgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSI+CisgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPjwhW0NEQVRBWworICAgICAgICB7e2luY2x1ZGUgLi4vZXhwZWN0LmpzfX0KKyAgICAgICAge3tpbmNsdWRlIC4uL3Byb3BlcnR5X3Rlc3RfaGVscGVycy5qc319CisgICAgICAgIHt7aW5jbHVkZSBkdW1wX3RyZWUuanN9fQorCisgICAgICAgIHZhciBtZ3IgPSB4ZmEucmVzb2x2ZU5vZGUoInhmYS5mb3JtLi5maWVsZDQiKS5pbnN0YW5jZU1hbmFnZXI7CisgICAgICAgIGR1bXBUcmVlKG1ncik7CisKKyAgICAgICAgdGVzdFJXUHJvcGVydHkobWdyLCAiY291bnQiLCAxLCAxMik7CisgICAgICAgIHRlc3RST1Byb3BlcnR5KG1nciwgIm1pbiIsIDEpOworICAgICAgICB0ZXN0Uk9Qcm9wZXJ0eShtZ3IsICJtYXgiLCAtMSk7CisKKyAgICAgICAgZXhwZWN0RXJyb3IoIm1nci5zZXRJbnN0YW5jZXMoKSIpOworICAgICAgICBleHBlY3RFcnJvcigibWdyLnNldEluc3RhbmNlcygtMTApIik7CisgICAgICAgIGV4cGVjdEVycm9yKCJtZ3Iuc2V0SW5zdGFuY2VzKCdjbGFtcycpIik7CisgICAgICAgIGV4cGVjdEVycm9yKCJtZ3Iuc2V0SW5zdGFuY2VzKFsxLCAyLCAzXSkiKTsKKyAgICAgICAgLy8gc2V0SW5zdGFuY2VzKDEwMDAwMDAwKSB3aWxsIGhhbmcgb3IgaGl0IE9PTS4KKyAgICAgICAgZXhwZWN0KCJtZ3Iuc2V0SW5zdGFuY2VzKDQpIiwgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0KCJtZ3IuY291bnQiLCA0KTsKKyAgICAgICAgZXhwZWN0KCJtZ3Iuc2V0SW5zdGFuY2VzKDIpIiwgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0KCJtZ3IuY291bnQiLCAyKTsKKworICAgICAgICBleHBlY3RFcnJvcigibWdyLm1vdmVJbnN0YW5jZSgpIik7CisgICAgICAgIGV4cGVjdEVycm9yKCJtZ3IubW92ZUluc3RhbmNlKDApIik7CisgICAgICAgIGV4cGVjdEVycm9yKCJtZ3IubW92ZUluc3RhbmNlKCdjbGFtcycpIik7CisgICAgICAgIGV4cGVjdEVycm9yKCJtZ3IubW92ZUluc3RhbmNlKFsxLCAyLCAzXSkiKTsKKyAgICAgICAgZXhwZWN0KCJtZ3IubW92ZUluc3RhbmNlKDAsIDEpIiwgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0KCJtZ3IuY291bnQiLCAyKTsKKworICAgICAgICBleHBlY3RFcnJvcigibWdyLmFkZEluc3RhbmNlKDEsIDIsIDMpIik7CisgICAgICAgIGV4cGVjdCgibWdyLmFkZEluc3RhbmNlKCkuY2xhc3NOYW1lIiwgInN1YmZvcm0iKTsKKyAgICAgICAgZXhwZWN0KCJtZ3IuYWRkSW5zdGFuY2UodHJ1ZSkuY2xhc3NOYW1lIiwgInN1YmZvcm0iKTsKKyAgICAgICAgZXhwZWN0KCJtZ3IuY291bnQiLCA0KTsKKworICAgICAgICBleHBlY3RFcnJvcigibWdyLmluc2VydEluc3RhbmNlKCkiKTsKKyAgICAgICAgZXhwZWN0RXJyb3IoIm1nci5pbnNlcnRJbnN0YW5jZSgxLCAyLCAzKSIpOworICAgICAgICBleHBlY3QoIm1nci5pbnNlcnRJbnN0YW5jZSgxLCB0cnVlKS5jbGFzc05hbWUiLCAic3ViZm9ybSIpOworICAgICAgICBleHBlY3QoIm1nci5jb3VudCIsIDUpOworCisgICAgICAgIGV4cGVjdEVycm9yKCJtZ3IucmVtb3ZlSW5zdGFuY2UoKSIpOworICAgICAgICBleHBlY3RFcnJvcigibWdyLnJlbW92ZUluc3RhbmNlKDEsIDIpIik7CisgICAgICAgIGV4cGVjdCgibWdyLnJlbW92ZUluc3RhbmNlKDApIiwgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0KCJtZ3IucmVtb3ZlSW5zdGFuY2UoMCkiLCB1bmRlZmluZWQpOworICAgICAgICBleHBlY3QoIm1nci5yZW1vdmVJbnN0YW5jZSgwKSIsIHVuZGVmaW5lZCk7CisgICAgICAgIGV4cGVjdCgibWdyLnJlbW92ZUluc3RhbmNlKDApIiwgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0KCJtZ3IuY291bnQiLCAxKTsKKworICAgICAgICBleHBlY3RFcnJvcigibWdyLnJlbW92ZUluc3RhbmNlKDApIik7CisgICAgICAgIGV4cGVjdCgibWdyLmNvdW50IiwgMSk7CisgICAgICBdXT48L3NjcmlwdD4KKyAgICA8L2V2ZW50PgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7aW5jbHVkZSAuLi8uLi94ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wYWdlc184XzAuZnJhZ21lbnR9fQore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvaW5zdGFuY2VfbWFuYWdlcl9leHBlY3RlZC50eHQgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9pbnN0YW5jZV9tYW5hZ2VyX2V4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzk2NTdmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvaW5zdGFuY2VfbWFuYWdlcl9leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOSBAQAorQWxlcnQ6IGluc3RhbmNlTWFuYWdlcgorQWxlcnQ6IHwgb2NjdXIKK0FsZXJ0OiBQQVNTOiBjb3VudCA9IDEKK0FsZXJ0OiBQQVNTOiBjb3VudCA9IDEyCitBbGVydDogUEFTUzogbWluID0gMQorQWxlcnQ6IFBBU1M6IG1pbiB0aHJldyBFcnJvcjogSW52YWxpZCBwcm9wZXJ0eSBzZXQgb3BlcmF0aW9uLgorQWxlcnQ6IFBBU1M6IG1heCA9IC0xCitBbGVydDogUEFTUzogbWF4IHRocmV3IEVycm9yOiBJbnZhbGlkIHByb3BlcnR5IHNldCBvcGVyYXRpb24uCitBbGVydDogUEFTUzogbWdyLnNldEluc3RhbmNlcygpIHRocmV3IFhGQU9iamVjdC5zZXRJbnN0YW5jZXM6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogbWdyLnNldEluc3RhbmNlcygtMTApIHRocmV3IEVycm9yOiBUaGUgZWxlbWVudCBbbWluXSBoYXMgdmlvbGF0ZWQgaXRzIGFsbG93YWJsZSBudW1iZXIgb2Ygb2NjdXJyZW5jZXMuCitBbGVydDogUEFTUzogbWdyLnNldEluc3RhbmNlcygnY2xhbXMnKSB0aHJldyBFcnJvcjogVGhlIGVsZW1lbnQgW21pbl0gaGFzIHZpb2xhdGVkIGl0cyBhbGxvd2FibGUgbnVtYmVyIG9mIG9jY3VycmVuY2VzLgorQWxlcnQ6IFBBU1M6IG1nci5zZXRJbnN0YW5jZXMoWzEsIDIsIDNdKSB0aHJldyBFcnJvcjogVGhlIGVsZW1lbnQgW21pbl0gaGFzIHZpb2xhdGVkIGl0cyBhbGxvd2FibGUgbnVtYmVyIG9mIG9jY3VycmVuY2VzLgorQWxlcnQ6IFBBU1M6IG1nci5zZXRJbnN0YW5jZXMoNCkgPSB1bmRlZmluZWQKK0FsZXJ0OiBQQVNTOiBtZ3IuY291bnQgPSA0CitBbGVydDogUEFTUzogbWdyLnNldEluc3RhbmNlcygyKSA9IHVuZGVmaW5lZAorQWxlcnQ6IFBBU1M6IG1nci5jb3VudCA9IDIKK0FsZXJ0OiBQQVNTOiBtZ3IubW92ZUluc3RhbmNlKCkgdGhyZXcgWEZBT2JqZWN0Lm1vdmVJbnN0YW5jZTogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KK0FsZXJ0OiBQQVNTOiBtZ3IubW92ZUluc3RhbmNlKDApIHRocmV3IFhGQU9iamVjdC5tb3ZlSW5zdGFuY2U6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogbWdyLm1vdmVJbnN0YW5jZSgnY2xhbXMnKSB0aHJldyBYRkFPYmplY3QubW92ZUluc3RhbmNlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IG1nci5tb3ZlSW5zdGFuY2UoWzEsIDIsIDNdKSB0aHJldyBYRkFPYmplY3QubW92ZUluc3RhbmNlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IG1nci5tb3ZlSW5zdGFuY2UoMCwgMSkgPSB1bmRlZmluZWQKK0FsZXJ0OiBQQVNTOiBtZ3IuY291bnQgPSAyCitBbGVydDogUEFTUzogbWdyLmFkZEluc3RhbmNlKDEsIDIsIDMpIHRocmV3IFhGQU9iamVjdC5hZGRJbnN0YW5jZTogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KK0FsZXJ0OiBQQVNTOiBtZ3IuYWRkSW5zdGFuY2UoKS5jbGFzc05hbWUgPSBzdWJmb3JtCitBbGVydDogUEFTUzogbWdyLmFkZEluc3RhbmNlKHRydWUpLmNsYXNzTmFtZSA9IHN1YmZvcm0KK0FsZXJ0OiBQQVNTOiBtZ3IuY291bnQgPSA0CitBbGVydDogUEFTUzogbWdyLmluc2VydEluc3RhbmNlKCkgdGhyZXcgWEZBT2JqZWN0Lmluc2VydEluc3RhbmNlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IG1nci5pbnNlcnRJbnN0YW5jZSgxLCAyLCAzKSB0aHJldyBYRkFPYmplY3QuaW5zZXJ0SW5zdGFuY2U6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogbWdyLmluc2VydEluc3RhbmNlKDEsIHRydWUpLmNsYXNzTmFtZSA9IHN1YmZvcm0KK0FsZXJ0OiBQQVNTOiBtZ3IuY291bnQgPSA1CitBbGVydDogUEFTUzogbWdyLnJlbW92ZUluc3RhbmNlKCkgdGhyZXcgWEZBT2JqZWN0LnJlbW92ZUluc3RhbmNlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IG1nci5yZW1vdmVJbnN0YW5jZSgxLCAyKSB0aHJldyBYRkFPYmplY3QucmVtb3ZlSW5zdGFuY2U6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogbWdyLnJlbW92ZUluc3RhbmNlKDApID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogbWdyLnJlbW92ZUluc3RhbmNlKDApID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogbWdyLnJlbW92ZUluc3RhbmNlKDApID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogbWdyLnJlbW92ZUluc3RhbmNlKDApID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogbWdyLmNvdW50ID0gMQorQWxlcnQ6IFBBU1M6IG1nci5yZW1vdmVJbnN0YW5jZSgwKSB0aHJldyBYRkFPYmplY3QucmVtb3ZlSW5zdGFuY2U6IFRvbyBtYW55IG9jY3VycmVuY2VzLgorQWxlcnQ6IFBBU1M6IG1nci5jb3VudCA9IDEKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL21peGVkX3dpZGdldHMuZXZ0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvbWl4ZWRfd2lkZ2V0cy5ldnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRlZTA3ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL21peGVkX3dpZGdldHMuZXZ0CkBAIC0wLDAgKzEsNSBAQAorbW91c2Vtb3ZlLDMwMiwzMDIKK21vdXNlZG93bixsZWZ0LDMwMiwzMDIKK21vdXNldXAsbGVmdCwzMDIsMzAyCitjaGFyY29kZSw2NQorY2hhcmNvZGUsNjYKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL21peGVkX3dpZGdldHMuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9taXhlZF93aWRnZXRzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5NzQxMTIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9taXhlZF93aWRnZXRzLmluCkBAIC0wLDAgKzEsNDggQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvTmVlZHNSZW5kZXJpbmcgdHJ1ZQorICAvQWNyb0Zvcm0gPDwKKyAgICAvRmllbGRzIFs2IDAgUl0KKyAgICAvWEZBIDUgMCBSCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzQgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA1MTIgNTEyXQorICAvQW5ub3RzIFs2IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx4ZHAgeG1sbnM9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGRwLyI+CisgIDx0ZW1wbGF0ZT4KKyAgICA8c3ViZm9ybSB4PSIwcHQiIHk9IjBwdCIgdz0iMTk4cHQiIGg9IjE5OHB0Ij4KKyAgICAgIDxmaWVsZCBuYW1lPSJNeUJveCIvPgorICAgIDwvc3ViZm9ybT4KKyAgPC90ZW1wbGF0ZT4KKzwveGRwPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvVHgKKyAgL1JlY3QgWzIwMCAyMDAgNTEyIDUxMl0KKyAgL1QgKE15Qm94KQorPj4KK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3BvcHVwX21lbnUuZXZ0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMvcG9wdXBfbWVudS5ldnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgyMDQyNgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3BvcHVwX21lbnUuZXZ0CkBAIC0wLDAgKzEsNSBAQAorbW91c2Vtb3ZlLDIwLDIwCittb3VzZWRvd24sbGVmdCwyMCwyMAorbW91c2V1cCxsZWZ0LDIwLDIwCittb3VzZWRvd24scmlnaHQsMjAsMjAKK21vdXNldXAscmlnaHQsMjAsMjAKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3BvcHVwX21lbnUuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9wb3B1cF9tZW51LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyZjdhNDUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9wb3B1cF9tZW51LmluCkBAIC0wLDAgKzEsNDAgQEAKK3t7aGVhZGVyfX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY2F0YWxvZ18xXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9vYmplY3RfMl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcHJlYW1ibGVfM18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY29uZmlnXzRfMC5mcmFnbWVudH19Cit7e29iamVjdCA1IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8dGVtcGxhdGUgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLXRlbXBsYXRlLzMuMy8iPgorICA8c3ViZm9ybSBuYW1lPSJmb3JtMSIgbGF5b3V0PSJ0YiIgbG9jYWxlPSJlbl9VUyIgcmVzdG9yZVN0YXRlPSJhdXRvIj4KKyAgICA8cGFnZVNldD4KKyAgICAgIDxwYWdlQXJlYSBuYW1lPSJQYWdlMSIgaWQ9IlBhZ2UxIj4KKyAgICAgICAgPGNvbnRlbnRBcmVhIHg9IjE4cHQiIHk9IjE4cHQiIHc9IjYxMnB0IiBoPSI3OTJwdCIvPgorICAgICAgICA8bWVkaXVtIHN0b2NrPSJkZWZhdWx0IiBzaG9ydD0iNjEycHQiIGxvbmc9Ijc5MnB0Ii8+CisgICAgICA8L3BhZ2VBcmVhPgorICAgIDwvcGFnZVNldD4KKyAgICA8c3ViZm9ybSB3PSI1NzZwdCIgaD0iNzU2cHQiIG5hbWU9IlBhZ2UxIj4KKyAgICAgIDxmaWVsZCBuYW1lPSJJbWFnZUZpZWxkMSIgeT0iMHB0IiB4PSIwcHQiIHc9IjQyNXB0IiBoPSI4MHB0Ij4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDxjaG9pY2VMaXN0IG9wZW49InVzZXJDb250cm9sIi8+CisgICAgICAgIDwvdWk+CisgICAgICAgIDxpdGVtcyBzYXZlPSIxIj4KKyAgICAgICAgICA8dGV4dD5jbGFtczwvdGV4dD4KKyAgICAgICAgICA8dGV4dD5veXN0ZXJzPC90ZXh0PgorICAgICAgICAgIDx0ZXh0PmNyYWJzPC90ZXh0PgorICAgICAgICA8L2l0ZW1zPgorICAgICAgPC9maWVsZD4KKyAgICA8L3N1YmZvcm0+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tpbmNsdWRlIC4uLy4uL3hmYV9sb2NhbGVfNl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcG9zdGFtYmxlXzdfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3BhZ2VzXzhfMC5mcmFnbWVudH19Cit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9wb3B1cF9tZW51X2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3BvcHVwX21lbnVfZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjODU2ZTkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy9wb3B1cF9tZW51X2V4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQb3B1cDogeD0yMC4wLCB5PTIwLjAsIGZsYWdzPTB4MApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX2V4Y2xncm91cC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9leGNsZ3JvdXAuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWEyOTM1MgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9leGNsZ3JvdXAuaW4KQEAgLTAsMCArMSw4NiBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZT4KKyAgPHN1YmZvcm0gbGF5b3V0PSJ0YiI+CisgICAgPGV4Y2xHcm91cCBuYW1lPSJSYWRpb0J1dHRvbkxpc3QiIGxheW91dD0ibHItdGIiPgorICAgICAgPGZpZWxkIHc9IjMwbW0iIGg9IjZtbSIgbmFtZT0ieWVzIj4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDxjaGVja0J1dHRvbiBzaGFwZT0icm91bmQiPgorICAgICAgICAgIDwvY2hlY2tCdXR0b24+CisgICAgICAgIDwvdWk+CisgICAgICAgIDxpdGVtcz4KKyAgICAgICAgICA8dGV4dD5BZ3JlZTwvdGV4dD4KKyAgICAgICAgPC9pdGVtcz4KKyAgICAgIDwvZmllbGQ+CisgICAgICA8ZmllbGQgdz0iMzBtbSIgaD0iNm1tIiBuYW1lPSJubyI+CisgICAgICAgIDx1aT4KKyAgICAgICAgICA8Y2hlY2tCdXR0b24gc2hhcGU9InJvdW5kIj4KKyAgICAgICAgICA8L2NoZWNrQnV0dG9uPgorICAgICAgICA8L3VpPgorICAgICAgICA8aXRlbXM+CisgICAgICAgICAgPHRleHQ+RGlzYWdyZWU8L3RleHQ+CisgICAgICAgIDwvaXRlbXM+CisgICAgICA8L2ZpZWxkPgorICAgICAgPHZhbGlkYXRlIG51bGxUZXN0PSJlcnJvciIvPgorICAgIDwvZXhjbEdyb3VwPgorICAgIDxldmVudCBhY3Rpdml0eT0iaW5pdGlhbGl6ZSI+CisgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPjwhW0NEQVRBWworICAgICAgICB7e2luY2x1ZGUgLi4vZXhwZWN0LmpzfX0KKyAgICAgICAgZXhwZWN0KCJSYWRpb0J1dHRvbkxpc3QuY2xhc3NOYW1lIiwgImV4Y2xHcm91cCIpOworCisgICAgICAgIGV4cGVjdEVycm9yKCJSYWRpb0J1dHRvbkxpc3QuZXhlY0V2ZW50KCkiKTsKKyAgICAgICAgZXhwZWN0RXJyb3IoIlJhZGlvQnV0dG9uTGlzdC5leGVjRXZlbnQoMSwgMikiKTsKKyAgICAgICAgZXhwZWN0KCJSYWRpb0J1dHRvbkxpc3QuZXhlY0V2ZW50KCdub25lc3VjaCcpIiwgbnVsbCk7CisgICAgICAgIGV4cGVjdCgiUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgnY2FsY3VsYXRlJykiLCBudWxsKTsKKyAgICAgICAgZXhwZWN0KCJSYWRpb0J1dHRvbkxpc3QuZXhlY0V2ZW50KCdjaGFuZ2UnKSIsIG51bGwpOworICAgICAgICBleHBlY3QoIlJhZGlvQnV0dG9uTGlzdC5leGVjRXZlbnQoJ2NsaWNrJykiLCBudWxsKTsKKyAgICAgICAgZXhwZWN0KCJSYWRpb0J1dHRvbkxpc3QuZXhlY0V2ZW50KCdlbnRlcicpIiwgbnVsbCk7CisgICAgICAgIGV4cGVjdCgiUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgnZXhpdCcpIiwgbnVsbCk7CisgICAgICAgIGV4cGVjdCgiUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgnZnVsbCcpIiwgbnVsbCk7CisgICAgICAgIGV4cGVjdCgiUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgnaW5kZXhDaGFuZ2UnKSIsIG51bGwpOworICAgICAgICBleHBlY3QoIlJhZGlvQnV0dG9uTGlzdC5leGVjRXZlbnQoJ2luaXRpYWxpemUnKSIsIG51bGwpOworICAgICAgICBleHBlY3QoIlJhZGlvQnV0dG9uTGlzdC5leGVjRXZlbnQoJ21vdXNlRG93bicpIiwgbnVsbCk7CisgICAgICAgIGV4cGVjdCgiUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgnbW91c2VFbnRlcicpIiwgbnVsbCk7CisgICAgICAgIGV4cGVjdCgiUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgnbW91c2VFeGl0JykiLCBudWxsKTsKKyAgICAgICAgZXhwZWN0KCJSYWRpb0J1dHRvbkxpc3QuZXhlY0V2ZW50KCdtb3VzZVVwJykiLCBudWxsKTsKKyAgICAgICAgZXhwZWN0KCJSYWRpb0J1dHRvbkxpc3QuZXhlY0V2ZW50KCdwb3N0T3BlbicpIiwgbnVsbCk7CisgICAgICAgIGV4cGVjdCgiUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgncHJlT3BlbicpIiwgbnVsbCk7CisgICAgICAgIGV4cGVjdCgiUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgncHJlU2lnbicpIiwgbnVsbCk7CisgICAgICAgIGV4cGVjdCgiUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgndmFsaWRhdGUnKSIsIG51bGwpOworCisgICAgICAgIGV4cGVjdEVycm9yKCJSYWRpb0J1dHRvbkxpc3QuZXhlY0luaXRpYWxpemUoJ2JhZGFyZycpIik7CisgICAgICAgIGV4cGVjdCgiUmFkaW9CdXR0b25MaXN0LmV4ZWNJbml0aWFsaXplKCkiLCBudWxsKTsKKworICAgICAgICBleHBlY3RFcnJvcigiUmFkaW9CdXR0b25MaXN0LmV4ZWNDYWxjdWxhdGUoJ2JhZGFyZycpIik7CisgICAgICAgIGV4cGVjdCgiUmFkaW9CdXR0b25MaXN0LmV4ZWNDYWxjdWxhdGUoKSIsIG51bGwpOworCisgICAgICAgIGV4cGVjdEVycm9yKCJSYWRpb0J1dHRvbkxpc3QuZXhlY1ZhbGlkYXRlKCdiYWRhcmcnKSIpOworICAgICAgICBleHBlY3QoIlJhZGlvQnV0dG9uTGlzdC5leGVjVmFsaWRhdGUoKSIsIHRydWUpOworCisgICAgICAgIGV4cGVjdEVycm9yKCJSYWRpb0J1dHRvbkxpc3Quc2VsZWN0ZWRNZW1iZXIoJ2JhZGFyZycpIik7CisgICAgICAgIGV4cGVjdCgiUmFkaW9CdXR0b25MaXN0LnNlbGVjdGVkTWVtYmVyKCkiLCBudWxsKTsKKworICAgICAgICBleHBlY3QoIlJhZGlvQnV0dG9uTGlzdC5kZWZhdWx0VmFsdWUiLCAgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0KCJSYWRpb0J1dHRvbkxpc3QucmF3VmFsdWUiLCBudWxsKTsKKyAgICAgICAgZXhwZWN0KCJSYWRpb0J1dHRvbkxpc3QudHJhbnNpZW50IiwgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0KCJSYWRpb0J1dHRvbkxpc3QuZXJyb3JUZXh0IiwgdW5kZWZpbmVkKTsKKyAgICAgIF1dPjwvc2NyaXB0PgorICAgIDwvZXZlbnQ+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tpbmNsdWRlIC4uLy4uL3hmYV9sb2NhbGVfNl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcG9zdGFtYmxlXzdfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3BhZ2VzXzhfMC5mcmFnbWVudH19Cit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfZXhjbGdyb3VwX2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9leGNsZ3JvdXBfZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjYTVhNzgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfZXhjbGdyb3VwX2V4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyIEBACitBbGVydDogUEFTUzogUmFkaW9CdXR0b25MaXN0LmNsYXNzTmFtZSA9IGV4Y2xHcm91cAorQWxlcnQ6IFBBU1M6IFJhZGlvQnV0dG9uTGlzdC5leGVjRXZlbnQoKSB0aHJldyBYRkFPYmplY3QuZXhlY0V2ZW50OiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IFJhZGlvQnV0dG9uTGlzdC5leGVjRXZlbnQoMSwgMikgdGhyZXcgWEZBT2JqZWN0LmV4ZWNFdmVudDogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KK0FsZXJ0OiBQQVNTOiBSYWRpb0J1dHRvbkxpc3QuZXhlY0V2ZW50KCdub25lc3VjaCcpID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgnY2FsY3VsYXRlJykgPSB1bmRlZmluZWQKK0FsZXJ0OiBQQVNTOiBSYWRpb0J1dHRvbkxpc3QuZXhlY0V2ZW50KCdjaGFuZ2UnKSA9IHVuZGVmaW5lZAorQWxlcnQ6IFBBU1M6IFJhZGlvQnV0dG9uTGlzdC5leGVjRXZlbnQoJ2NsaWNrJykgPSB1bmRlZmluZWQKK0FsZXJ0OiBQQVNTOiBSYWRpb0J1dHRvbkxpc3QuZXhlY0V2ZW50KCdlbnRlcicpID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgnZXhpdCcpID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgnZnVsbCcpID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgnaW5kZXhDaGFuZ2UnKSA9IHVuZGVmaW5lZAorQWxlcnQ6IFBBU1M6IFJhZGlvQnV0dG9uTGlzdC5leGVjRXZlbnQoJ2luaXRpYWxpemUnKSA9IHVuZGVmaW5lZAorQWxlcnQ6IFBBU1M6IFJhZGlvQnV0dG9uTGlzdC5leGVjRXZlbnQoJ21vdXNlRG93bicpID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgnbW91c2VFbnRlcicpID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgnbW91c2VFeGl0JykgPSB1bmRlZmluZWQKK0FsZXJ0OiBQQVNTOiBSYWRpb0J1dHRvbkxpc3QuZXhlY0V2ZW50KCdtb3VzZVVwJykgPSB1bmRlZmluZWQKK0FsZXJ0OiBQQVNTOiBSYWRpb0J1dHRvbkxpc3QuZXhlY0V2ZW50KCdwb3N0T3BlbicpID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgncHJlT3BlbicpID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgncHJlU2lnbicpID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogUmFkaW9CdXR0b25MaXN0LmV4ZWNFdmVudCgndmFsaWRhdGUnKSA9IHVuZGVmaW5lZAorQWxlcnQ6IFBBU1M6IFJhZGlvQnV0dG9uTGlzdC5leGVjSW5pdGlhbGl6ZSgnYmFkYXJnJykgdGhyZXcgWEZBT2JqZWN0LmV4ZWNJbml0aWFsaXplOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IFJhZGlvQnV0dG9uTGlzdC5leGVjSW5pdGlhbGl6ZSgpID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogUmFkaW9CdXR0b25MaXN0LmV4ZWNDYWxjdWxhdGUoJ2JhZGFyZycpIHRocmV3IFhGQU9iamVjdC5leGVjQ2FsY3VsYXRlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IFJhZGlvQnV0dG9uTGlzdC5leGVjQ2FsY3VsYXRlKCkgPSB1bmRlZmluZWQKK0FsZXJ0OiBQQVNTOiBSYWRpb0J1dHRvbkxpc3QuZXhlY1ZhbGlkYXRlKCdiYWRhcmcnKSB0aHJldyBYRkFPYmplY3QuZXhlY1ZhbGlkYXRlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IFJhZGlvQnV0dG9uTGlzdC5leGVjVmFsaWRhdGUoKSA9IHRydWUKK0FsZXJ0OiBQQVNTOiBSYWRpb0J1dHRvbkxpc3Quc2VsZWN0ZWRNZW1iZXIoJ2JhZGFyZycpIHRocmV3IFhGQU9iamVjdC5zZWxlY3RlZE1lbWJlcjogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KK0FsZXJ0OiBQQVNTOiBSYWRpb0J1dHRvbkxpc3Quc2VsZWN0ZWRNZW1iZXIoKSA9IG51bGwKK0FsZXJ0OiBQQVNTOiBSYWRpb0J1dHRvbkxpc3QuZGVmYXVsdFZhbHVlID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogUmFkaW9CdXR0b25MaXN0LnJhd1ZhbHVlID0gbnVsbAorQWxlcnQ6IFBBU1M6IFJhZGlvQnV0dG9uTGlzdC50cmFuc2llbnQgPSB1bmRlZmluZWQKK0FsZXJ0OiBQQVNTOiBSYWRpb0J1dHRvbkxpc3QuZXJyb3JUZXh0ID0gdW5kZWZpbmVkCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfZmllbGQuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfZmllbGQuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM1ODkyMQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9maWVsZC5pbgpAQCAtMCwwICsxLDkyIEBACit7e2hlYWRlcn19Cit7e2luY2x1ZGUgLi4vLi4veGZhX2NhdGFsb2dfMV8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfb2JqZWN0XzJfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3ByZWFtYmxlXzNfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX2NvbmZpZ180XzAuZnJhZ21lbnR9fQore3tvYmplY3QgNSAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPHRlbXBsYXRlPgorICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBuYW1lPSJzdWJmb3JtMSI+CisgICAgPHBhZ2VTZXQgaWQ9InBhZ2UiIHJlbGF0aW9uPSJvcmRlcmVkT2NjdXJyZW5jZSI+CisgICAgICA8b2NjdXIgaW5pdGlhbD0iMSIgbWF4PSIxIiBtaW49IjEiLz4KKyAgICAgIDxwYWdlQXJlYSBpZD0iUGFnZTEiIG5hbWU9IlBhZ2UxIj4KKyAgICAgICAgPG9jY3VyIG1heD0iMSIgbWluPSIxIi8+CisgICAgICAgIDxjb250ZW50QXJlYSBoPSIxMDBtbSIgdz0iMjAwbW0iIHg9IjAuMjVpbiIgeT0iMC4yNWluIi8+CisgICAgICAgIDxtZWRpdW0gbG9uZz0iMjk3bW0iIHNob3J0PSIyMTBtbSIgc3RvY2s9ImE0Ii8+CisgICAgICA8L3BhZ2VBcmVhPgorICAgIDwvcGFnZVNldD4KKyAgICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBuYW1lPSJzdWJmb3JtMiI+CisgICAgICA8b2NjdXIgaW5pdGlhbD0iMSIgbWF4PSIxMCIgbWluPSIwIiBuYW1lPSJvY2N1cjEiPgorICAgICAgPC9vY2N1cj4KKyAgICAgIDxmaWVsZCBuYW1lPSJmaWVsZDEiIGg9IjEwbW0iICB3PSI0MG1tIiB4PSIxMG1tIiB5PSIxMm1tIiBib3JkZXI9InNvbGlkIj4KKyAgICAgICAgPGl0ZW1zPgorICAgICAgICAgIDx0ZXh0PmFuZCBhIG9uZTwvdGV4dD4KKyAgICAgICAgICA8dGV4dD5hbmQgYSB0d288L3RleHQ+CisgICAgICAgIDwvaXRlbXM+CisgICAgICAgIDxldmVudCBhY3Rpdml0eT0icmVhZHkiIHJlZj0iJGZvcm0iPgorICAgICAgICAgIDxzY3JpcHQgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICAgICAgICAgICB7e2luY2x1ZGUgLi4vZXhwZWN0LmpzfX0KKyAgICAgICAgICAgIHt7aW5jbHVkZSAuLi9wcm9wZXJ0eV90ZXN0X2hlbHBlcnMuanN9fQorICAgICAgICAgICAgdmFyIGZpZWxkID0geGZhLnJlc29sdmVOb2RlKCJmaWVsZDEiKTsKKyAgICAgICAgICAgIHRlc3RSV1Byb3BlcnR5KGZpZWxkLCAieCIsICIxMG1tIiwgIjExbW0iKTsKKyAgICAgICAgICAgIHRlc3RSV1Byb3BlcnR5KGZpZWxkLCAieSIsICIxMm1tIiwgIjEzbW0iKTsKKyAgICAgICAgICAgIHRlc3RSV1Byb3BlcnR5KGZpZWxkLCAiaCIsICIxMG1tIiwgIjJpbiIpOworICAgICAgICAgICAgdGVzdFJXUHJvcGVydHkoZmllbGQsICJ3IiwgIjQwbW0iLCAiM2luIik7CisgICAgICAgICAgICB0ZXN0UldQcm9wZXJ0eShmaWVsZCwgImZvbnRDb2xvciIsICIwLDAsMCIsICI0Miw2Miw0Iik7CisgICAgICAgICAgICB0ZXN0UldQcm9wZXJ0eShmaWVsZCwgImZpbGxDb2xvciIsICIyNTUsMjU1LDI1NSIsICI0MSw2MSwxMSIpOworICAgICAgICAgICAgdGVzdFJXUHJvcGVydHkoZmllbGQsICJib3JkZXJDb2xvciIsICIwLDAsMCIsICIyNDEsMTYxLDExIik7CisgICAgICAgICAgICAvLyBUT0RPKHRzZXBleik6IGZpbmQgYSB3YXkgdG8gbWFrZSB0aGlzIGJlIGRlZmluZWQuCisgICAgICAgICAgICAvLyB0ZXN0UldQcm9wZXJ0eShmaWVsZCwgImJvcmRlcldpZHRoIiwgIjEiLCAiNCIpOworICAgICAgICAgICAgdGVzdFJXUHJvcGVydHkoZmllbGQsICJtYW5kYXRvcnkiLCAiZGlzYWJsZWQiLCAic29saWQiKTsKKyAgICAgICAgICAgIHRlc3RSV1Byb3BlcnR5KGZpZWxkLCAibWFuZGF0b3J5TWVzc2FnZSIsICIiLCAia2VlcCBvdXQiKTsKKyAgICAgICAgICAgIHRlc3RST1Byb3BlcnR5KGZpZWxkLCAiZGF0YU5vZGUiLCAiW29iamVjdCBYRkFPYmplY3RdIik7CisgICAgICAgICAgICB0ZXN0Uk9Qcm9wZXJ0eShmaWVsZCwgImxlbmd0aCIsIDIpOworCisgICAgICAgICAgICBleHBlY3RFcnJvcigiZmllbGQuZXhlY0luaXRpYWxpemUoJ3Bob29leScpIik7CisgICAgICAgICAgICBleHBlY3QoImZpZWxkLmV4ZWNJbml0aWFsaXplKCkiLCB1bmRlZmluZWQpOworCisgICAgICAgICAgICBleHBlY3RFcnJvcigiZmllbGQuZXhlY0V2ZW50KCkiKTsKKyAgICAgICAgICAgIGV4cGVjdEVycm9yKCJmaWVsZC5leGVjRXZlbnQoMSwgMikiKTsKKyAgICAgICAgICAgIGV4cGVjdCgiZmllbGQuZXhlY0V2ZW50KCd2YWxpZGF0ZScpIiwgdHJ1ZSk7CisKKyAgICAgICAgICAgIGV4cGVjdEVycm9yKCJmaWVsZC5kZWxldGVJdGVtKCkiKTsKKyAgICAgICAgICAgIGV4cGVjdEVycm9yKCJmaWVsZC5kZWxldGVJdGVtKDEsIDIpIik7CisgICAgICAgICAgICBleHBlY3QoImZpZWxkLmRlbGV0ZUl0ZW0oMSkiLCB0cnVlKTsKKyAgICAgICAgICAgIGV4cGVjdCgiZmllbGQuZGVsZXRlSXRlbSgxMzcpIiwgdHJ1ZSk7ICAvLyBzaWxlbnRseSBpZ25vcmVkPworCisgICAgICAgICAgICBleHBlY3RFcnJvcigiZmllbGQuZ2V0U2F2ZUl0ZW0oKSIpOworICAgICAgICAgICAgZXhwZWN0RXJyb3IoImZpZWxkLmdldFNhdmVJdGVtKDEsIDIpIik7CisgICAgICAgICAgICBleHBlY3QoImZpZWxkLmdldFNhdmVJdGVtKDApIiwgImFuZCBhIG9uZSIpOworICAgICAgICAgICAgZXhwZWN0KCJmaWVsZC5nZXRTYXZlSXRlbSgxMzcpIiwgbnVsbCk7CisKKyAgICAgICAgICAgIGV4cGVjdEVycm9yKCJmaWVsZC5nZXRJdGVtU3RhdGUoKSIpOworICAgICAgICAgICAgZXhwZWN0RXJyb3IoImZpZWxkLmdldEl0ZW1TdGF0ZSgxLCAyKSIpOworICAgICAgICAgICAgZXhwZWN0KCJmaWVsZC5nZXRJdGVtU3RhdGUoMCkiLCBmYWxzZSk7CisgICAgICAgICAgICBleHBlY3QoImZpZWxkLmdldEl0ZW1TdGF0ZSgxKSIsIGZhbHNlKTsKKyAgICAgICAgICAgIGV4cGVjdCgiZmllbGQuZ2V0SXRlbVN0YXRlKDEzNykiLCBmYWxzZSk7CisgICAgICAgICAgICBleHBlY3QoImZpZWxkLmdldEl0ZW1TdGF0ZSgtMTM3KSIsIGZhbHNlKTsKKworICAgICAgICAgICAgZXhwZWN0RXJyb3IoImZpZWxkLnNldEl0ZW1TdGF0ZSgpIik7CisgICAgICAgICAgICBleHBlY3RFcnJvcigiZmllbGQuc2V0SXRlbVN0YXRlKDEsIDIsIDMpIik7CisgICAgICAgICAgICBleHBlY3QoImZpZWxkLnNldEl0ZW1TdGF0ZSgwLCAxKSIsIHVuZGVmaW5lZCk7CisgICAgICAgICAgICBleHBlY3QoImZpZWxkLmdldEl0ZW1TdGF0ZSgwKSIsIHRydWUpOworICAgICAgICAgICAgZXhwZWN0KCJmaWVsZC5zZXRJdGVtU3RhdGUoMCwgMCkiLCB1bmRlZmluZWQpOworICAgICAgICAgICAgZXhwZWN0KCJmaWVsZC5nZXRJdGVtU3RhdGUoMCkiLCBmYWxzZSk7CisKKyAgICAgICAgICBdXT48L3NjcmlwdD4KKyAgICAgICAgPC9ldmVudD4KKyAgICAgIDwvZmllbGQ+CisgICAgPC9zdWJmb3JtPgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7aW5jbHVkZSAuLi8uLi94ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wYWdlc184XzAuZnJhZ21lbnR9fQore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX2ZpZWxkX2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9maWVsZF9leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ1NTE4YQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9maWVsZF9leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NyBAQAorQWxlcnQ6IFBBU1M6IHggPSAxMG1tCitBbGVydDogUEFTUzogeCA9IDExbW0KK0FsZXJ0OiBQQVNTOiB5ID0gMTJtbQorQWxlcnQ6IFBBU1M6IHkgPSAxM21tCitBbGVydDogUEFTUzogaCA9IDEwbW0KK0FsZXJ0OiBQQVNTOiBoID0gMmluCitBbGVydDogUEFTUzogdyA9IDQwbW0KK0FsZXJ0OiBQQVNTOiB3ID0gM2luCitBbGVydDogUEFTUzogZm9udENvbG9yID0gMCwwLDAKK0FsZXJ0OiBQQVNTOiBmb250Q29sb3IgPSA0Miw2Miw0CitBbGVydDogUEFTUzogZmlsbENvbG9yID0gMjU1LDI1NSwyNTUKK0FsZXJ0OiBQQVNTOiBmaWxsQ29sb3IgPSA0MSw2MSwxMQorQWxlcnQ6IFBBU1M6IGJvcmRlckNvbG9yID0gMCwwLDAKK0FsZXJ0OiBQQVNTOiBib3JkZXJDb2xvciA9IDI0MSwxNjEsMTEKK0FsZXJ0OiBQQVNTOiBtYW5kYXRvcnkgPSBkaXNhYmxlZAorQWxlcnQ6IFBBU1M6IG1hbmRhdG9yeSA9IHNvbGlkCitBbGVydDogUEFTUzogbWFuZGF0b3J5TWVzc2FnZSA9IAorQWxlcnQ6IFBBU1M6IG1hbmRhdG9yeU1lc3NhZ2UgPSBrZWVwIG91dAorQWxlcnQ6IFBBU1M6IGRhdGFOb2RlID0gW29iamVjdCBYRkFPYmplY3RdCitBbGVydDogUEFTUzogZGF0YU5vZGUgdGhyZXcgRXJyb3I6IEludmFsaWQgcHJvcGVydHkgc2V0IG9wZXJhdGlvbi4KK0FsZXJ0OiBQQVNTOiBsZW5ndGggPSAyCitBbGVydDogUEFTUzogbGVuZ3RoIHRocmV3IEVycm9yOiBJbnZhbGlkIHByb3BlcnR5IHNldCBvcGVyYXRpb24uCitBbGVydDogUEFTUzogZmllbGQuZXhlY0luaXRpYWxpemUoJ3Bob29leScpIHRocmV3IFhGQU9iamVjdC5leGVjSW5pdGlhbGl6ZTogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KK0FsZXJ0OiBQQVNTOiBmaWVsZC5leGVjSW5pdGlhbGl6ZSgpID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogZmllbGQuZXhlY0V2ZW50KCkgdGhyZXcgWEZBT2JqZWN0LmV4ZWNFdmVudDogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KK0FsZXJ0OiBQQVNTOiBmaWVsZC5leGVjRXZlbnQoMSwgMikgdGhyZXcgWEZBT2JqZWN0LmV4ZWNFdmVudDogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KK0FsZXJ0OiBQQVNTOiBmaWVsZC5leGVjRXZlbnQoJ3ZhbGlkYXRlJykgPSB0cnVlCitBbGVydDogUEFTUzogZmllbGQuZGVsZXRlSXRlbSgpIHRocmV3IFhGQU9iamVjdC5kZWxldGVJdGVtOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IGZpZWxkLmRlbGV0ZUl0ZW0oMSwgMikgdGhyZXcgWEZBT2JqZWN0LmRlbGV0ZUl0ZW06IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogZmllbGQuZGVsZXRlSXRlbSgxKSA9IHRydWUKK0FsZXJ0OiBQQVNTOiBmaWVsZC5kZWxldGVJdGVtKDEzNykgPSB0cnVlCitBbGVydDogUEFTUzogZmllbGQuZ2V0U2F2ZUl0ZW0oKSB0aHJldyBYRkFPYmplY3QuZ2V0U2F2ZUl0ZW06IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogZmllbGQuZ2V0U2F2ZUl0ZW0oMSwgMikgdGhyZXcgWEZBT2JqZWN0LmdldFNhdmVJdGVtOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IGZpZWxkLmdldFNhdmVJdGVtKDApID0gYW5kIGEgb25lCitBbGVydDogUEFTUzogZmllbGQuZ2V0U2F2ZUl0ZW0oMTM3KSA9IG51bGwKK0FsZXJ0OiBQQVNTOiBmaWVsZC5nZXRJdGVtU3RhdGUoKSB0aHJldyBYRkFPYmplY3QuZ2V0SXRlbVN0YXRlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IGZpZWxkLmdldEl0ZW1TdGF0ZSgxLCAyKSB0aHJldyBYRkFPYmplY3QuZ2V0SXRlbVN0YXRlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IGZpZWxkLmdldEl0ZW1TdGF0ZSgwKSA9IGZhbHNlCitBbGVydDogUEFTUzogZmllbGQuZ2V0SXRlbVN0YXRlKDEpID0gZmFsc2UKK0FsZXJ0OiBQQVNTOiBmaWVsZC5nZXRJdGVtU3RhdGUoMTM3KSA9IGZhbHNlCitBbGVydDogUEFTUzogZmllbGQuZ2V0SXRlbVN0YXRlKC0xMzcpID0gZmFsc2UKK0FsZXJ0OiBQQVNTOiBmaWVsZC5zZXRJdGVtU3RhdGUoKSB0aHJldyBYRkFPYmplY3Quc2V0SXRlbVN0YXRlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IGZpZWxkLnNldEl0ZW1TdGF0ZSgxLCAyLCAzKSB0aHJldyBYRkFPYmplY3Quc2V0SXRlbVN0YXRlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IGZpZWxkLnNldEl0ZW1TdGF0ZSgwLCAxKSA9IHVuZGVmaW5lZAorQWxlcnQ6IFBBU1M6IGZpZWxkLmdldEl0ZW1TdGF0ZSgwKSA9IHRydWUKK0FsZXJ0OiBQQVNTOiBmaWVsZC5zZXRJdGVtU3RhdGUoMCwgMCkgPSB1bmRlZmluZWQKK0FsZXJ0OiBQQVNTOiBmaWVsZC5nZXRJdGVtU3RhdGUoMCkgPSBmYWxzZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX2Zvcm0uaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfZm9ybS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjE2ODhmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX2Zvcm0uaW4KQEAgLTAsMCArMSw2MSBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzxmb3JtPgorPC9mb3JtPgorPHRlbXBsYXRlPgorICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBuYW1lPSJteV9zdWJmb3JtIj4KKyAgICA8cGFnZVNldCBpZD0icGFnZSIgcmVsYXRpb249Im9yZGVyZWRPY2N1cnJlbmNlIj4KKyAgICAgIDxvY2N1ciBpbml0aWFsPSIxIiBtYXg9IjEiIG1pbj0iMSIvPgorICAgICAgPHBhZ2VBcmVhIGlkPSJQYWdlMSIgbmFtZT0iUGFnZTEiPgorICAgICAgICA8b2NjdXIgbWF4PSIxIiBtaW49IjEiLz4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjEwMG1tIiB3PSIyMDBtbSIgeD0iMC4yNWluIiB5PSIwLjI1aW4iLz4KKyAgICAgIDwvcGFnZUFyZWE+CisgICAgICA8cGFnZUFyZWEgaWQ9IlBhZ2UyIiBuYW1lPSJQYWdlMiI+CisgICAgICAgIDxvY2N1ciBtYXg9IjEiIG1pbj0iMSIvPgorICAgICAgICA8Y29udGVudEFyZWEgaD0iMTAwbW0iIHc9IjIwMG1tIiB4PSIwLjI1aW4iIHk9IjAuMjVpbiIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSIgcmVmPSIkaG9zdCI+CisgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICB7e2luY2x1ZGUgLi4vZXhwZWN0LmpzfX0KKyAgICAgICAge3tpbmNsdWRlIC4uL3Byb3BlcnR5X3Rlc3RfaGVscGVycy5qc319CisgICAgICAgIHZhciBteV9mb3JtID0geGZhLnJlc29sdmVOb2RlKCIjZm9ybSIpOworICAgICAgICB0ZXN0UldQcm9wZXJ0eShteV9mb3JtLCAiY2hlY2tzdW0iLCAiIiwgIjExIik7CisgICAgICAgIGV4cGVjdCgidHlwZW9mIG15X2Zvcm0uZXhlY0luaXRpYWxpemUiLCAiZnVuY3Rpb24iKTsKKyAgICAgICAgZXhwZWN0KCJ0eXBlb2YgbXlfZm9ybS5leGVjQ2FsY3VsYXRlIiwgImZ1bmN0aW9uIik7CisgICAgICAgIGV4cGVjdCgidHlwZW9mIG15X2Zvcm0uZXhlY1ZhbGlkYXRlIiwgImZ1bmN0aW9uIik7CisgICAgICAgIGV4cGVjdEVycm9yKCJteV9mb3JtLmV4ZWNJbml0aWFsaXplKCdub25lc3VjaCcpIik7CisgICAgICAgIGV4cGVjdCgibXlfZm9ybS5leGVjSW5pdGlhbGl6ZSgpIiwgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0RXJyb3IoIm15X2Zvcm0uZXhlY0NhbGN1bGF0ZSgnbm9uZXN1Y2gnKSIpOworICAgICAgICBleHBlY3QoIm15X2Zvcm0uZXhlY0NhbGN1bGF0ZSgpIiwgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0RXJyb3IoIm15X2Zvcm0uZXhlY1ZhbGlkYXRlKCdub25lc3VjaCcpIik7CisgICAgICAgIGV4cGVjdCgibXlfZm9ybS5leGVjVmFsaWRhdGUoKSIsIHRydWUpOworICAgICAgICBleHBlY3RFcnJvcigibXlfZm9ybS5mb3JtTm9kZXMoKSIpOworICAgICAgICBleHBlY3RFcnJvcigibXlfZm9ybS5mb3JtTm9kZXMoMSwgMikiKTsKKyAgICAgICAgZXhwZWN0RXJyb3IoIm15X2Zvcm0uZm9ybU5vZGVzKCdub25lc3VjaCcpIik7CisgICAgICAgIGV4cGVjdCgibXlfZm9ybS5mb3JtTm9kZXMobXlfc3ViZm9ybSkiLCAiW29iamVjdCBYRkFPYmplY3RdIik7CisgICAgICAgIGV4cGVjdEVycm9yKCJteV9mb3JtLnJlbWVyZ2UoMSkiKTsKKyAgICAgICAgZXhwZWN0KCJteV9mb3JtLnJlbWVyZ2UoKSIsIHRydWUpOworICAgICAgICBleHBlY3RFcnJvcigibXlfZm9ybS5yZWNhbGN1bGF0ZSgpIik7CisgICAgICAgIGV4cGVjdEVycm9yKCJteV9mb3JtLnJlY2FsY3VsYXRlKDEsIDIpIik7CisgICAgICAgIGV4cGVjdCgibXlfZm9ybS5yZWNhbGN1bGF0ZSgwKSIsIHVuZGVmaW5lZCk7CisgICAgICA8L3NjcmlwdD4KKyAgICA8L2V2ZW50PgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7aW5jbHVkZSAuLi8uLi94ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wYWdlc184XzAuZnJhZ21lbnR9fQore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX2Zvcm1fZXhwZWN0ZWQudHh0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX2Zvcm1fZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5MWQ3MDIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfZm9ybV9leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorQWxlcnQ6IFBBU1M6IGNoZWNrc3VtID0gCitBbGVydDogUEFTUzogY2hlY2tzdW0gPSAxMQorQWxlcnQ6IFBBU1M6IHR5cGVvZiBteV9mb3JtLmV4ZWNJbml0aWFsaXplID0gZnVuY3Rpb24KK0FsZXJ0OiBQQVNTOiB0eXBlb2YgbXlfZm9ybS5leGVjQ2FsY3VsYXRlID0gZnVuY3Rpb24KK0FsZXJ0OiBQQVNTOiB0eXBlb2YgbXlfZm9ybS5leGVjVmFsaWRhdGUgPSBmdW5jdGlvbgorQWxlcnQ6IFBBU1M6IG15X2Zvcm0uZXhlY0luaXRpYWxpemUoJ25vbmVzdWNoJykgdGhyZXcgWEZBT2JqZWN0LmV4ZWNJbml0aWFsaXplOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IG15X2Zvcm0uZXhlY0luaXRpYWxpemUoKSA9IHVuZGVmaW5lZAorQWxlcnQ6IFBBU1M6IG15X2Zvcm0uZXhlY0NhbGN1bGF0ZSgnbm9uZXN1Y2gnKSB0aHJldyBYRkFPYmplY3QuZXhlY0NhbGN1bGF0ZTogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KK0FsZXJ0OiBQQVNTOiBteV9mb3JtLmV4ZWNDYWxjdWxhdGUoKSA9IHVuZGVmaW5lZAorQWxlcnQ6IFBBU1M6IG15X2Zvcm0uZXhlY1ZhbGlkYXRlKCdub25lc3VjaCcpIHRocmV3IFhGQU9iamVjdC5leGVjVmFsaWRhdGU6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogbXlfZm9ybS5leGVjVmFsaWRhdGUoKSA9IHRydWUKK0FsZXJ0OiBQQVNTOiBteV9mb3JtLmZvcm1Ob2RlcygpIHRocmV3IFhGQU9iamVjdC5mb3JtTm9kZXM6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogbXlfZm9ybS5mb3JtTm9kZXMoMSwgMikgdGhyZXcgWEZBT2JqZWN0LmZvcm1Ob2RlczogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KK0FsZXJ0OiBQQVNTOiBteV9mb3JtLmZvcm1Ob2Rlcygnbm9uZXN1Y2gnKSB0aHJldyBYRkFPYmplY3QuZm9ybU5vZGVzOiBJbmNvcnJlY3QgcGFyYW1ldGVyIHZhbHVlLgorQWxlcnQ6IFBBU1M6IG15X2Zvcm0uZm9ybU5vZGVzKG15X3N1YmZvcm0pID0gW29iamVjdCBYRkFPYmplY3RdCitBbGVydDogUEFTUzogbXlfZm9ybS5yZW1lcmdlKDEpIHRocmV3IFhGQU9iamVjdC5yZW1lcmdlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IEZBSUw6IG15X2Zvcm0ucmVtZXJnZSgpID0gdW5kZWZpbmVkLCBleHBlY3RlZCB0cnVlIAorQWxlcnQ6IFBBU1M6IG15X2Zvcm0ucmVjYWxjdWxhdGUoKSB0aHJldyBYRkFPYmplY3QucmVjYWxjdWxhdGU6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogbXlfZm9ybS5yZWNhbGN1bGF0ZSgxLCAyKSB0aHJldyBYRkFPYmplY3QucmVjYWxjdWxhdGU6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogbXlfZm9ybS5yZWNhbGN1bGF0ZSgwKSA9IHVuZGVmaW5lZApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX2dsb2JhbG9iamVjdC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9nbG9iYWxvYmplY3QuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUxZjNiZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9nbG9iYWxvYmplY3QuaW4KQEAgLTAsMCArMSw0MSBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZT4KKyAgPHN1YmZvcm0gbGF5b3V0PSJ0YiIgbmFtZT0ibXlfZG9jIj4KKyAgICA8cGFnZVNldCBpZD0icGFnZSIgcmVsYXRpb249Im9yZGVyZWRPY2N1cnJlbmNlIj4KKyAgICAgIDxvY2N1ciBpbml0aWFsPSIxIiBtYXg9IjEiIG1pbj0iMSIvPgorICAgICAgPHBhZ2VBcmVhIGlkPSJQYWdlMSIgbmFtZT0iUGFnZTEiPgorICAgICAgICA8b2NjdXIgbWF4PSIxIiBtaW49IjEiLz4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjEwMG1tIiB3PSIyMDBtbSIgeD0iMC4yNWluIiB5PSIwLjI1aW4iLz4KKyAgICAgIDwvcGFnZUFyZWE+CisgICAgICA8cGFnZUFyZWEgaWQ9IlBhZ2UyIiBuYW1lPSJQYWdlMiI+CisgICAgICAgIDxvY2N1ciBtYXg9IjEiIG1pbj0iMSIvPgorICAgICAgICA8Y29udGVudEFyZWEgaD0iMTAwbW0iIHc9IjIwMG1tIiB4PSIwLjI1aW4iIHk9IjAuMjVpbiIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSIgcmVmPSIkaG9zdCI+CisgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgICBhcHAuYWxlcnQoJ1dlIHNlYXJjaCBub24teGZhIGdsb2JhbCBzcGFjZSBvbiBtaXNzaW5nIHByb3A6ICcgKyAoYXBwID09IHhmYS5hcHApKTsKKyAgICAgICAgYXBwLmFsZXJ0KCdHbG9iYWwgdG9TdHJpbmcgc2F5cyAnICsgdG9TdHJpbmcoKSk7CisgICAgICAgIGFwcC5hbGVydCgndG9TdHJpbmcuYXBwbHkgdG8gYmFkIG9iamVjdCBpcyAnICsgdG9TdHJpbmcuYXBwbHkoeGZhKSk7CisgICAgICAgIGFwcC5hbGVydCgndG9TdHJpbmcuYXBwbHkgdG8gYmFkIG5vbi14ZmEgb2JqZWN0IGlzICcgKyB0b1N0cmluZy5hcHBseShhcHApKTsKKyAgICAgIDwvc2NyaXB0PgorICAgIDwvZXZlbnQ+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tpbmNsdWRlIC4uLy4uL3hmYV9sb2NhbGVfNl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcG9zdGFtYmxlXzdfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3BhZ2VzXzhfMC5mcmFnbWVudH19Cit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfZ2xvYmFsb2JqZWN0X2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9nbG9iYWxvYmplY3RfZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzODRhZmUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfZ2xvYmFsb2JqZWN0X2V4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0FsZXJ0OiBXZSBzZWFyY2ggbm9uLXhmYSBnbG9iYWwgc3BhY2Ugb24gbWlzc2luZyBwcm9wOiB0cnVlCitBbGVydDogR2xvYmFsIHRvU3RyaW5nIHNheXMgW29iamVjdCBSb290XQorQWxlcnQ6IHRvU3RyaW5nLmFwcGx5IHRvIGJhZCBvYmplY3QgaXMgW29iamVjdCBSb290XQorQWxlcnQ6IHRvU3RyaW5nLmFwcGx5IHRvIGJhZCBub24teGZhIG9iamVjdCBpcyBbb2JqZWN0IFJvb3RdCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfaG9zdF9wc2V1ZG9tb2RlbF9leHBlY3RlZC50eHQgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfaG9zdF9wc2V1ZG9tb2RlbF9leHBlY3RlZC50eHQKaW5kZXggMzgzNWU0YS4uNmMxMzU5ZCAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX2hvc3RfcHNldWRvbW9kZWxfZXhwZWN0ZWQudHh0CisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9ob3N0X3BzZXVkb21vZGVsX2V4cGVjdGVkLnR4dApAQCAtNTIsNyArNTIsNyBAQAogQWxlcnQ6IFBBU1M6IHhmYS5ob3N0LnBhZ2VEb3duKCdpZ25vcmVkIGFyZycpID0gdW5kZWZpbmVkCiBBbGVydDogUEFTUzogeGZhLmhvc3QucHJpbnQoMSwgMiwgMywgNCwgNSwgNiwgNykgdGhyZXcgWEZBT2JqZWN0LnByaW50OiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgogQWxlcnQ6IFBBU1M6IHhmYS5ob3N0LnByaW50KDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDkpIHRocmV3IFhGQU9iamVjdC5wcmludDogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KLURvYyBQcmludDogMSwgMSwgMSwgMiwgNCwgOCwgMTYsIDMyCitEb2MgUHJpbnQ6IDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEKIEFsZXJ0OiBQQVNTOiB4ZmEuaG9zdC5wcmludCh0cnVlLCAxLCAxLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlKSA9IHVuZGVmaW5lZAogQWxlcnQ6IFBBU1M6IHhmYS5ob3N0LnJlc3BvbnNlKCkgdGhyZXcgWEZBT2JqZWN0LnJlc3BvbnNlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgogQWxlcnQ6IFBBU1M6IHhmYS5ob3N0LnJlc3BvbnNlKDEsIDIsIDMsIDQsIDUpIHRocmV3IFhGQU9iamVjdC5yZXNwb25zZTogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9pdGVtcy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9pdGVtcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWVlMzE3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX2l0ZW1zLmluCkBAIC0wLDAgKzEsMTk2IEBACit7e2hlYWRlcn19Cit7e2luY2x1ZGUgLi4vLi4veGZhX2NhdGFsb2dfMV8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfb2JqZWN0XzJfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3ByZWFtYmxlXzNfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX2NvbmZpZ180XzAuZnJhZ21lbnR9fQore3tvYmplY3QgNSAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPHRlbXBsYXRlIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS10ZW1wbGF0ZS8yLjYvIj4KKyAgPHN1YmZvcm0gbmFtZT0iZm9ybTEiPgorICAgIDxwYWdlU2V0PgorICAgICAgPHBhZ2VBcmVhIGlkPSJQYWdlMSIgbmFtZT0iUGFnZTEiPgorICAgICAgICA8Y29udGVudEFyZWEgaD0iMTAuNWluIiB3PSI4aW4iIHg9IjAuMjVpbiIgeT0iMC4yNWluIi8+CisgICAgICAgIDxtZWRpdW0gbG9uZz0iMTFpbiIgc2hvcnQ9IjguNWluIiBzdG9jaz0ibGV0dGVyIi8+CisgICAgICA8L3BhZ2VBcmVhPgorICAgIDwvcGFnZVNldD4KKyAgICA8ZmllbGQgaD0iOS4wMDAxbW0iIG5hbWU9ImZpZWxkMSIgdz0iNDcuNjI1bW0iIHg9IjYuMzVtbSIgeT0iOTIuMDc1bW0iPgorICAgICAgPHVpPgorICAgICAgICA8Y2hvaWNlTGlzdC8+CisgICAgICA8L3VpPgorICAgICAgPGl0ZW1zIG5vbmVzdWNoPSIzIj4KKyAgICAgICAgPGFyYyBuYW1lPSJhcmMxIj48L2FyYz4KKyAgICAgICAgPGJvb2xlYW4gbmFtZT0iYm9vbDAiPjA8L2Jvb2xlYW4+CisgICAgICAgIDxib29sZWFuIG5hbWU9ImJvb2wxIj4xPC9ib29sZWFuPgorICAgICAgICA8Ym9vbGVhbiBuYW1lPSJib29sYmFkIj5iYWQ8L2Jvb2xlYW4+CisgICAgICAgIDxib29sZWFuIG5hbWU9ImJvb2x0cnVlbm90dHJ1ZSI+dHJ1ZTwvYm9vbGVhbj4KKyAgICAgICAgPGRhdGUgbmFtZT0iZGF0ZTAiPjwvZGF0ZT4KKyAgICAgICAgPGRhdGUgbmFtZT0iZGF0ZTEiPjIwMjAtMDItMDI8L2RhdGU+CisgICAgICAgIDxkYXRlIG5hbWU9ImRhdGUyIj4yMDM5LTEyLTAxPC9kYXRlPgorICAgICAgICA8ZGF0ZSBuYW1lPSJkYXRlYmFkIj5iYWQ8L2RhdGU+CisgICAgICAgIDxkYXRlVGltZSBuYW1lPSJkYXRldGltZTAiPjwvZGF0ZVRpbWU+CisgICAgICAgIDxkYXRlVGltZSBuYW1lPSJkYXRldGltZTEiPjIwMjAtMDItMDJUMTI6MzQ6NTY8L2RhdGVUaW1lPgorICAgICAgICA8ZGF0ZVRpbWUgbmFtZT0iZGF0ZXRpbWUyIj4yMDM5LTEyLTAxVDEyOjM0OjU2PC9kYXRlVGltZT4KKyAgICAgICAgPGRhdGVUaW1lIG5hbWU9ImRhdGV0aW1lYmFkIj5iYWQ8L2RhdGVUaW1lPgorICAgICAgICA8ZGVjaW1hbCBuYW1lPSJkZWNpbWFsMCI+PC9kZWNpbWFsPgorICAgICAgICA8ZGVjaW1hbCBuYW1lPSJkZWNpbWFsMSI+NDIuMDAwMDAwMDAwMDAwMDAwMDAwMTwvZGVjaW1hbD4KKyAgICAgICAgPGRlY2ltYWwgbmFtZT0iZGVjaW1hbGJhZCI+YmFkPC9kZWNpbWFsPgorICAgICAgICA8ZXhEYXRhIG5hbWU9ImV4MCI+PC9leERhdGE+CisgICAgICAgIDxleERhdGEgbmFtZT0iZXgxIj48IVtDREFUQVtZWllaWVpZWllaWVpZWllaWVpZWllaWVpZWllaXV0+PC9leERhdGE+CisgICAgICAgIDxmbG9hdCBuYW1lPSJmbG9hdDAiPi0xMi4zNDwvZmxvYXQ+CisgICAgICAgIDxmbG9hdCBuYW1lPSJmbG9hdDEiPi0xMi4zNDwvZmxvYXQ+CisgICAgICAgIDxmbG9hdCBuYW1lPSJmbG9hdGJhZCI+YmFkPC9mbG9hdD4KKyAgICAgICAgPGltYWdlIG5hbWU9ImltYWdlMCI+QUJBQkFCQUJBQkFCQUJBQkE8L2ltYWdlPgorICAgICAgICA8aW1hZ2UgbmFtZT0iaW1hZ2UxIj48IVtDREFUQVtBQkFCQUJBQkFCQUJBQkFCQV1dPjwvaW1hZ2U+CisgICAgICAgIDxpbnRlZ2VyIG5hbWU9ImludDAiPjwvaW50ZWdlcj4KKyAgICAgICAgPGludGVnZXIgbmFtZT0iaW50MSI+MTIzNDwvaW50ZWdlcj4KKyAgICAgICAgPGludGVnZXIgbmFtZT0iaW50YmFkIj5iYWQ8L2ludGVnZXI+CisgICAgICAgIDxsaW5lIG5hbWU9ImxpbmUwIj48L2xpbmU+CisgICAgICAgIDxyZWN0YW5nbGUgbmFtZT0icmVjdDAiPjwvcmVjdGFuZ2xlPgorICAgICAgICA8dGV4dCBuYW1lPSJ0ZXh0MCI+PC90ZXh0PgorICAgICAgICA8dGV4dCBuYW1lPSJ0ZXh0MSI+QWhveSAhISE8L3RleHQ+CisgICAgICAgIDx0aW1lIG5hbWU9InRpbWUwIj48L3RpbWU+CisgICAgICAgIDx0aW1lIG5hbWU9InRpbWUxIj4xMjozNDo1NjwvdGltZT4KKyAgICAgICAgPGdvb3AgbmFtZT0iZ29vcDAiPk5vbnNlbnNlIG5vZGVzIG5vdCBhbGxvd2VkIGhlcmU8L2dvb3A+CisgICAgICA8L2l0ZW1zPgorICAgIDwvZmllbGQ+CisgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSI+CisgICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPjwhW0NEQVRBWworICAgICAgICB7e2luY2x1ZGUgLi4vZXhwZWN0LmpzfX0KKyAgICAgICAge3tpbmNsdWRlIGR1bXBfdHJlZS5qc319CisKKyAgICAgICAgaXRlbWxpc3QgPSB4ZmEucmVzb2x2ZU5vZGUoImZvcm0xLmZpZWxkMS4jaXRlbXMiKTsKKyAgICAgICAgZHVtcFRyZWUoaXRlbWxpc3QpOworCisgICAgICAgIGFyYzEgPSBpdGVtbGlzdC5yZXNvbHZlTm9kZSgiYXJjMSIpOworCisgICAgICAgIGJvb2wwID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoImJvb2wwIik7CisgICAgICAgIGV4cGVjdCgiYm9vbDAudmFsdWUiLCBmYWxzZSk7CisgICAgICAgIGJvb2wwLnZhbHVlID0gMTsKKyAgICAgICAgZXhwZWN0KCJib29sMC52YWx1ZSIsIHRydWUpOworCisgICAgICAgIGJvb2wxID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoImJvb2wxIik7CisgICAgICAgIGV4cGVjdCgiYm9vbDEudmFsdWUiLCB0cnVlKTsKKyAgICAgICAgYm9vbDEudmFsdWUgPSAwOworICAgICAgICBleHBlY3QoImJvb2wxLnZhbHVlIiwgZmFsc2UpOworCisgICAgICAgIGJvb2xiYWQgPSBpdGVtbGlzdC5yZXNvbHZlTm9kZSgiYm9vbGJhZCIpOworICAgICAgICBleHBlY3QoImJvb2xiYWQudmFsdWUiLCBmYWxzZSk7CisKKyAgICAgICAgYm9vbHRydWVub3R0cnVlID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoImJvb2x0cnVlbm90dHJ1ZSIpOworICAgICAgICBleHBlY3QoImJvb2x0cnVlbm90dHJ1ZS52YWx1ZSIsIGZhbHNlKTsKKworICAgICAgICAvLyBUT0RPKHRzZXBleik6IGNvbmZpcm0gaWYgdGhpcyBpcyBjb3JyZWN0LgorICAgICAgICBib29sdHJ1ZW5vdHRydWUudmFsdWUgPSB0cnVlOworICAgICAgICBleHBlY3QoImJvb2x0cnVlbm90dHJ1ZS52YWx1ZSIsIGZhbHNlKTsKKworICAgICAgICBib29sdHJ1ZW5vdHRydWUudmFsdWUgPSAiemVycCI7CisgICAgICAgIGV4cGVjdCgiYm9vbHRydWVub3R0cnVlLnZhbHVlIiwgZmFsc2UpOworICAgICAgICBib29sdHJ1ZW5vdHRydWUudmFsdWUgPSAiMSI7CisgICAgICAgIGV4cGVjdCgiYm9vbHRydWVub3R0cnVlLnZhbHVlIiwgdHJ1ZSk7CisgICAgICAgIGJvb2x0cnVlbm90dHJ1ZS52YWx1ZSA9ICIxMCI7CisgICAgICAgIGV4cGVjdCgiYm9vbHRydWVub3R0cnVlLnZhbHVlIiwgdHJ1ZSk7CisgICAgICAgIGJvb2x0cnVlbm90dHJ1ZS52YWx1ZSA9ICIxemVycCI7CisgICAgICAgIGV4cGVjdCgiYm9vbHRydWVub3R0cnVlLnZhbHVlIiwgdHJ1ZSk7CisKKyAgICAgICAgLy8gRGF0ZSBpcyBqdXN0IGEgbm9kZSwgYW5kIGFsbG93cyBhbnkgdGV4dCB3aXRoaW4uCisgICAgICAgIGRhdGUwID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoImRhdGUwIik7CisgICAgICAgIGV4cGVjdCgiZGF0ZTAudmFsdWUiLCBudWxsKTsKKworICAgICAgICBkYXRlMSA9IGl0ZW1saXN0LnJlc29sdmVOb2RlKCJkYXRlMSIpOworICAgICAgICBleHBlY3QoImRhdGUxLnZhbHVlIiwgIjIwMjAtMDItMDIiKTsKKworICAgICAgICBkYXRlMiA9IGl0ZW1saXN0LnJlc29sdmVOb2RlKCJkYXRlMiIpOworICAgICAgICBleHBlY3QoImRhdGUyLnZhbHVlIiwgIjIwMzktMTItMDEiKTsKKworICAgICAgICBkYXRlYmFkID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoImRhdGViYWQiKTsKKyAgICAgICAgZXhwZWN0KCJkYXRlYmFkLnZhbHVlIiwgImJhZCIpOworCisgICAgICAgIC8vIFRoZXNlIGFyZSBwcmV0dHkgbXVjaCBqdXN0IG5vZGVzLCBhbmQgYWxsb3cgYW55IHRleHQgd2l0aGluLgorICAgICAgICAvLyBKdXN0IGNoZWNrIHRoYXQgdGhleSBwYXJzZWQgYW5kIHRoYXQgd2UgY2FuIHJldHJpZXZlIHRoZW0uCisgICAgICAgIGRhdGV0aW1lMCA9IGl0ZW1saXN0LnJlc29sdmVOb2RlKCJkYXRldGltZTAiKTsKKyAgICAgICAgZXhwZWN0KCJkYXRldGltZTAiLCAiW29iamVjdCBYRkFPYmplY3RdIik7CisKKyAgICAgICAgZGF0ZXRpbWUxID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoImRhdGV0aW1lMSIpOworICAgICAgICBleHBlY3QoImRhdGV0aW1lMSIsICJbb2JqZWN0IFhGQU9iamVjdF0iKTsKKworICAgICAgICBkYXRldGltZTIgPSBpdGVtbGlzdC5yZXNvbHZlTm9kZSgiZGF0ZXRpbWUyIik7CisgICAgICAgIGV4cGVjdCgiZGF0ZXRpbWUyIiwgIltvYmplY3QgWEZBT2JqZWN0XSIpOworCisgICAgICAgIGRhdGV0aW1lYmFkID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoImRhdGV0aW1lYmFkIik7CisgICAgICAgIGV4cGVjdCgiZGF0ZXRpbWViYWQiLCAiW29iamVjdCBYRkFPYmplY3RdIik7CisKKyAgICAgICAgZGVjaW1hbDAgPSBpdGVtbGlzdC5yZXNvbHZlTm9kZSgiZGVjaW1hbDAiKTsKKyAgICAgICAgZXhwZWN0KCJkZWNpbWFsMCIsICJbb2JqZWN0IFhGQU9iamVjdF0iKTsKKworICAgICAgICBkZWNpbWFsMSA9IGl0ZW1saXN0LnJlc29sdmVOb2RlKCJkZWNpbWFsMSIpOworICAgICAgICBleHBlY3QoImRlY2ltYWwxIiwgIltvYmplY3QgWEZBT2JqZWN0XSIpOworCisgICAgICAgIGRlY2ltYWxiYWQgPSBpdGVtbGlzdC5yZXNvbHZlTm9kZSgiZGVjaW1hbGJhZCIpOworICAgICAgICBleHBlY3QoImRlY2ltYWxiYWQiLCAiW29iamVjdCBYRkFPYmplY3RdIik7CisKKyAgICAgICAgZXgwID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoImV4MCIpOworICAgICAgICBleHBlY3QoImV4MCIsICJbb2JqZWN0IFhGQU9iamVjdF0iKTsKKworICAgICAgICBleDEgPSBpdGVtbGlzdC5yZXNvbHZlTm9kZSgiZXgxIik7CisgICAgICAgIGV4cGVjdCgiZXgxIiwgIltvYmplY3QgWEZBT2JqZWN0XSIpOworCisgICAgICAgIGZsb2F0MCA9IGl0ZW1saXN0LnJlc29sdmVOb2RlKCJmbG9hdDAiKTsKKyAgICAgICAgZXhwZWN0KCJmbG9hdDAiLCAiW29iamVjdCBYRkFPYmplY3RdIik7CisKKyAgICAgICAgZmxvYXQxID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoImZsb2F0MSIpOworICAgICAgICBleHBlY3QoImZsb2F0MSIsICJbb2JqZWN0IFhGQU9iamVjdF0iKTsKKworICAgICAgICBmbG9hdGJhZCA9IGl0ZW1saXN0LnJlc29sdmVOb2RlKCJmbG9hdGJhZCIpOworICAgICAgICBleHBlY3QoImZsb2F0YmFkIiwgIltvYmplY3QgWEZBT2JqZWN0XSIpOworCisgICAgICAgIGltYWdlMCA9IGl0ZW1saXN0LnJlc29sdmVOb2RlKCJpbWFnZTAiKTsKKyAgICAgICAgZXhwZWN0KCJpbWFnZTAiLCAiW29iamVjdCBYRkFPYmplY3RdIik7CisKKyAgICAgICAgaW1hZ2UxID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoImltYWdlMSIpOworICAgICAgICBleHBlY3QoImltYWdlMSIsICJbb2JqZWN0IFhGQU9iamVjdF0iKTsKKworICAgICAgICBpbnQwID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoImludDAiKTsKKyAgICAgICAgZXhwZWN0KCJpbnQwIiwgIltvYmplY3QgWEZBT2JqZWN0XSIpOworCisgICAgICAgIGludDEgPSBpdGVtbGlzdC5yZXNvbHZlTm9kZSgiaW50MSIpOworICAgICAgICBleHBlY3QoImludDEiLCAiW29iamVjdCBYRkFPYmplY3RdIik7CisKKyAgICAgICAgaW50YmFkID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoImludGJhZCIpOworICAgICAgICBleHBlY3QoImludGJhZCIsICJbb2JqZWN0IFhGQU9iamVjdF0iKTsKKworICAgICAgICBsaW5lMCA9IGl0ZW1saXN0LnJlc29sdmVOb2RlKCJsaW5lMCIpOworICAgICAgICBleHBlY3QoImxpbmUwIiwgIltvYmplY3QgWEZBT2JqZWN0XSIpOworCisgICAgICAgIHJlY3QwID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoInJlY3QwIik7CisgICAgICAgIGV4cGVjdCgicmVjdDAiLCAiW29iamVjdCBYRkFPYmplY3RdIik7CisKKyAgICAgICAgdGV4dDAgPSBpdGVtbGlzdC5yZXNvbHZlTm9kZSgidGV4dDAiKTsKKyAgICAgICAgZXhwZWN0KCJ0ZXh0MCIsICJbb2JqZWN0IFhGQU9iamVjdF0iKTsKKworICAgICAgICB0ZXh0MSA9IGl0ZW1saXN0LnJlc29sdmVOb2RlKCJ0ZXh0MSIpOworICAgICAgICBleHBlY3QoInRleHQxIiwgIltvYmplY3QgWEZBT2JqZWN0XSIpOworCisgICAgICAgIHRpbWUwID0gaXRlbWxpc3QucmVzb2x2ZU5vZGUoInRpbWUwIik7CisgICAgICAgIGV4cGVjdCgidGltZTAiLCAiW29iamVjdCBYRkFPYmplY3RdIik7CisKKyAgICAgICAgdGltZTEgPSBpdGVtbGlzdC5yZXNvbHZlTm9kZSgidGltZTEiKTsKKyAgICAgICAgZXhwZWN0KCJ0aW1lMSIsICJbb2JqZWN0IFhGQU9iamVjdF0iKTsKKworICAgICAgICAvLyBUaGUgcGFyc2VyIGlzIHBpY2t5IGFuZCB3b24ndCBsZXQgZmFrZSBub2RlcyBpbiBoZXJlLgorICAgICAgICBnb29wMCA9IGl0ZW1saXN0LnJlc29sdmVOb2RlKCJnb29wMCIpOworICAgICAgICBleHBlY3QoImdvb3AwIiwgbnVsbCk7CisgICAgICBdXT48L3NjcmlwdD4KKyAgICA8L2V2ZW50PgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7aW5jbHVkZSAuLi8uLi94ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wYWdlc184XzAuZnJhZ21lbnR9fQore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX2l0ZW1zX2V4cGVjdGVkLnR4dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9pdGVtc19leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MwYzdjNQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9pdGVtc19leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4MCBAQAorQWxlcnQ6IGl0ZW1zCitBbGVydDogfCBhcmMKK0FsZXJ0OiB8IGJvb2xlYW4KK0FsZXJ0OiB8IGJvb2xlYW4KK0FsZXJ0OiB8IGJvb2xlYW4KK0FsZXJ0OiB8IGJvb2xlYW4KK0FsZXJ0OiB8IGRhdGUKK0FsZXJ0OiB8IGRhdGUKK0FsZXJ0OiB8IHwgI3RleHQKK0FsZXJ0OiB8IGRhdGUKK0FsZXJ0OiB8IHwgI3RleHQKK0FsZXJ0OiB8IGRhdGUKK0FsZXJ0OiB8IHwgI3RleHQKK0FsZXJ0OiB8IGRhdGVUaW1lCitBbGVydDogfCBkYXRlVGltZQorQWxlcnQ6IHwgfCAjdGV4dAorQWxlcnQ6IHwgZGF0ZVRpbWUKK0FsZXJ0OiB8IHwgI3RleHQKK0FsZXJ0OiB8IGRhdGVUaW1lCitBbGVydDogfCB8ICN0ZXh0CitBbGVydDogfCBkZWNpbWFsCitBbGVydDogfCBkZWNpbWFsCitBbGVydDogfCBkZWNpbWFsCitBbGVydDogfCBleERhdGEKK0FsZXJ0OiB8IGV4RGF0YQorQWxlcnQ6IHwgZmxvYXQKK0FsZXJ0OiB8IGZsb2F0CitBbGVydDogfCBmbG9hdAorQWxlcnQ6IHwgaW1hZ2UKK0FsZXJ0OiB8IHwgI3RleHQKK0FsZXJ0OiB8IGltYWdlCitBbGVydDogfCB8ICN0ZXh0CitBbGVydDogfCBpbnRlZ2VyCitBbGVydDogfCBpbnRlZ2VyCitBbGVydDogfCBpbnRlZ2VyCitBbGVydDogfCBsaW5lCitBbGVydDogfCByZWN0YW5nbGUKK0FsZXJ0OiB8IHRleHQKK0FsZXJ0OiB8IHRleHQKK0FsZXJ0OiB8IHRpbWUKK0FsZXJ0OiB8IHRpbWUKK0FsZXJ0OiBQQVNTOiBib29sMC52YWx1ZSA9IGZhbHNlCitBbGVydDogUEFTUzogYm9vbDAudmFsdWUgPSB0cnVlCitBbGVydDogUEFTUzogYm9vbDEudmFsdWUgPSB0cnVlCitBbGVydDogUEFTUzogYm9vbDEudmFsdWUgPSBmYWxzZQorQWxlcnQ6IFBBU1M6IGJvb2xiYWQudmFsdWUgPSBmYWxzZQorQWxlcnQ6IFBBU1M6IGJvb2x0cnVlbm90dHJ1ZS52YWx1ZSA9IGZhbHNlCitBbGVydDogUEFTUzogYm9vbHRydWVub3R0cnVlLnZhbHVlID0gZmFsc2UKK0FsZXJ0OiBQQVNTOiBib29sdHJ1ZW5vdHRydWUudmFsdWUgPSBmYWxzZQorQWxlcnQ6IFBBU1M6IGJvb2x0cnVlbm90dHJ1ZS52YWx1ZSA9IHRydWUKK0FsZXJ0OiBQQVNTOiBib29sdHJ1ZW5vdHRydWUudmFsdWUgPSB0cnVlCitBbGVydDogUEFTUzogYm9vbHRydWVub3R0cnVlLnZhbHVlID0gdHJ1ZQorQWxlcnQ6IFBBU1M6IGRhdGUwLnZhbHVlID0gbnVsbAorQWxlcnQ6IFBBU1M6IGRhdGUxLnZhbHVlID0gMjAyMC0wMi0wMgorQWxlcnQ6IFBBU1M6IGRhdGUyLnZhbHVlID0gMjAzOS0xMi0wMQorQWxlcnQ6IFBBU1M6IGRhdGViYWQudmFsdWUgPSBiYWQKK0FsZXJ0OiBQQVNTOiBkYXRldGltZTAgPSBbb2JqZWN0IFhGQU9iamVjdF0KK0FsZXJ0OiBQQVNTOiBkYXRldGltZTEgPSBbb2JqZWN0IFhGQU9iamVjdF0KK0FsZXJ0OiBQQVNTOiBkYXRldGltZTIgPSBbb2JqZWN0IFhGQU9iamVjdF0KK0FsZXJ0OiBQQVNTOiBkYXRldGltZWJhZCA9IFtvYmplY3QgWEZBT2JqZWN0XQorQWxlcnQ6IFBBU1M6IGRlY2ltYWwwID0gW29iamVjdCBYRkFPYmplY3RdCitBbGVydDogUEFTUzogZGVjaW1hbDEgPSBbb2JqZWN0IFhGQU9iamVjdF0KK0FsZXJ0OiBQQVNTOiBkZWNpbWFsYmFkID0gW29iamVjdCBYRkFPYmplY3RdCitBbGVydDogUEFTUzogZXgwID0gW29iamVjdCBYRkFPYmplY3RdCitBbGVydDogUEFTUzogZXgxID0gW29iamVjdCBYRkFPYmplY3RdCitBbGVydDogUEFTUzogZmxvYXQwID0gW29iamVjdCBYRkFPYmplY3RdCitBbGVydDogUEFTUzogZmxvYXQxID0gW29iamVjdCBYRkFPYmplY3RdCitBbGVydDogUEFTUzogZmxvYXRiYWQgPSBbb2JqZWN0IFhGQU9iamVjdF0KK0FsZXJ0OiBQQVNTOiBpbWFnZTAgPSBbb2JqZWN0IFhGQU9iamVjdF0KK0FsZXJ0OiBQQVNTOiBpbWFnZTEgPSBbb2JqZWN0IFhGQU9iamVjdF0KK0FsZXJ0OiBQQVNTOiBpbnQwID0gW29iamVjdCBYRkFPYmplY3RdCitBbGVydDogUEFTUzogaW50MSA9IFtvYmplY3QgWEZBT2JqZWN0XQorQWxlcnQ6IFBBU1M6IGludGJhZCA9IFtvYmplY3QgWEZBT2JqZWN0XQorQWxlcnQ6IFBBU1M6IGxpbmUwID0gW29iamVjdCBYRkFPYmplY3RdCitBbGVydDogUEFTUzogcmVjdDAgPSBbb2JqZWN0IFhGQU9iamVjdF0KK0FsZXJ0OiBQQVNTOiB0ZXh0MCA9IFtvYmplY3QgWEZBT2JqZWN0XQorQWxlcnQ6IFBBU1M6IHRleHQxID0gW29iamVjdCBYRkFPYmplY3RdCitBbGVydDogUEFTUzogdGltZTAgPSBbb2JqZWN0IFhGQU9iamVjdF0KK0FsZXJ0OiBQQVNTOiB0aW1lMSA9IFtvYmplY3QgWEZBT2JqZWN0XQorQWxlcnQ6IFBBU1M6IGdvb3AwID0gbnVsbApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX2xvZ19wc2V1ZG9tb2RlbC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9sb2dfcHNldWRvbW9kZWwuaW4KaW5kZXggMmRlNDE3ZS4uYTNmMjhmYyAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX2xvZ19wc2V1ZG9tb2RlbC5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfbG9nX3BzZXVkb21vZGVsLmluCkBAIC00MCw2ICs0MCw3IEBACiBlbmRvYmoKIHt7aW5jbHVkZSAuLi8uLi94ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19CiB7e2luY2x1ZGUgLi4vLi4veGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wYWdlc184XzAuZnJhZ21lbnR9fQoge3t4cmVmfX0KIHt7dHJhaWxlcn19CiB7e3N0YXJ0eHJlZn19CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfbm9kZS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9ub2RlLmluCmluZGV4IDcxNTc5OTMuLmEwZTliMjUgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9ub2RlLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9ub2RlLmluCkBAIC03LDYgKzcsNyBAQAogICB7e3N0cmVhbWxlbn19CiA+Pgogc3RyZWFtCis8Z29vcCB2aXNjb3NpdHk9InNsdWRnZSI+U3B1cmlvdXMgTm9uc2Vuc2U8L2dvb3A+CiA8dGVtcGxhdGU+CiAgIDxzdWJmb3JtIGxheW91dD0idGIiIG5hbWU9Im15X2RvYyI+CiAgICAgPHBhZ2VTZXQgaWQ9InBhZ2UiIHJlbGF0aW9uPSJvcmRlcmVkT2NjdXJyZW5jZSI+CkBAIC0yMSw5ICsyMiwxMyBAQAogICAgICAgPC9wYWdlQXJlYT4KICAgICA8L3BhZ2VTZXQ+CiAgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSIgcmVmPSIkaG9zdCI+Ci0gICAgICA8c2NyaXB0IGNvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQiPgorICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij48IVtDREFUQVsKICAgICAgICAge3tpbmNsdWRlIC4uL2V4cGVjdC5qc319CiAgICAgICAgIHt7aW5jbHVkZSAuLi9wcm9wZXJ0eV90ZXN0X2hlbHBlcnMuanN9fQorICAgICAgICB7e2luY2x1ZGUgZHVtcF90cmVlLmpzfX0KKworICAgICAgICBkdW1wVHJlZSh4ZmEpOworCiAgICAgICAgIHRlc3RST1Byb3BlcnR5KG15X2RvYywgImlzQ29udGFpbmVyIiwgdHJ1ZSk7CiAgICAgICAgIHRlc3RST1Byb3BlcnR5KG15X2RvYywgImlzTnVsbCIsIGZhbHNlKTsKICAgICAgICAgdGVzdFJPUHJvcGVydHkobXlfZG9jLCAibW9kZWwiLCAiW29iamVjdCBYRkFPYmplY3RdIik7CkBAIC03NCw3ICs3OSwzNSBAQAogICAgICAgICAvLyBUZXN0IGZyZWUtZm9ybSBhdHRyaWJ1dGVzIG91dHNpZGUgb2YgdGhlIFhGQSBzY2hlbWEuCiAgICAgICAgIGV4cGVjdCgibXlfZG9jLnNldEF0dHJpYnV0ZSgnZmFrZV92YWx1ZScsICdmYWtlX2F0dHInKSIsIHVuZGVmaW5lZCk7CiAgICAgICAgIGV4cGVjdCgibXlfZG9jLmdldEF0dHJpYnV0ZSgnZmFrZV9hdHRyJykiLCAnZmFrZV92YWx1ZScpOwotICAgICAgPC9zY3JpcHQ+CisKKyAgICAgICAgLy8gVGVzdCBtYWdpYyAieGZhIiBwcm9wZXJ0eSBib3VuZCB0byBhbGwgbm9kZXMuCisgICAgICAgIGV4cGVjdCgibXlfZG9jLnhmYSA9PSB4ZmEiLCB0cnVlKTsKKworICAgICAgICAvLyBUZXN0ICJwYWNrZXQiIG5vZGVzIHdoaWNoIGFyZSB1bnJlY29nbml6ZWQgdGFncyBhdCBYRFAgbGV2ZWwuCisgICAgICAgIGV4cGVjdCgiZ29vcCIsIHVuZGVmaW5lZCk7CisgICAgICAgIHZhciBnb29wID0gdGhpcy5yZXNvbHZlTm9kZSgnI3BhY2tldCcpOworICAgICAgICBleHBlY3QoImdvb3AuY2xhc3NOYW1lIiwgInBhY2tldCIpOworICAgICAgICBleHBlY3QoImdvb3AudmlzY29zaXR5IiwgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0RXJyb3IoImdvb3AuZ2V0QXR0cmlidXRlKCkiKTsKKyAgICAgICAgZXhwZWN0RXJyb3IoImdvb3AuZ2V0QXR0cmlidXRlKDEsIDIpIik7CisgICAgICAgIGV4cGVjdCgiZ29vcC5nZXRBdHRyaWJ1dGUoJ25vbmVzdWNoJykiLCAiIik7CisgICAgICAgIGV4cGVjdCgiZ29vcC5nZXRBdHRyaWJ1dGUoJ3Zpc2Nvc2l0eScpIiwgInNsdWRnZSIpOworICAgICAgICBleHBlY3RFcnJvcigiZ29vcC5zZXRBdHRyaWJ1dGUoKSIpOworICAgICAgICBleHBlY3RFcnJvcigiZ29vcC5zZXRBdHRyaWJ1dGUoMSkiKTsKKyAgICAgICAgZXhwZWN0RXJyb3IoImdvb3Auc2V0QXR0cmlidXRlKDEsIDIsIDMpIik7CisKKyAgICAgICAgLy8gUmVtZW1iZXIsIGFyZ3MgdG8gc2V0QXR0cmlidXRlKCkgYXJlIGJhY2t3YXJkcyBmcm9tIHdoYXQgb25lIG1pZ2h0CisgICAgICAgIC8vIHR5cGljYWxseSBleHBlY3QgLi4uCisgICAgICAgIGV4cGVjdCgiZ29vcC5zZXRBdHRyaWJ1dGUoNywgJ3BoJykiLCB1bmRlZmluZWQpOworICAgICAgICBleHBlY3QoImdvb3AuZ2V0QXR0cmlidXRlKCdwaCcpIiwgNyk7CisKKyAgICAgICAgZXhwZWN0KCJnb29wLmNvbnRlbnQiLCAiU3B1cmlvdXMgTm9uc2Vuc2UiKTsKKyAgICAgICAgZXhwZWN0KCJnb29wLmNvbnRlbnQgPSAnIGZvciBBbGwnIiwgIiBmb3IgQWxsIik7CisKKyAgICAgICAgLy8gVE9ETyh0c2VwZXopOiBhc3NpZ25pbmcgbmV3IGNvbnRlbnQgc2VlbXMgdG8gYXBwZW5kIGFsdGhvdWdoIGl0CisgICAgICAgIC8vIHdhc24ndCBpbmNsdWRlZCBpbiB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBhc3NpZ25tZW50IGFib3ZlLgorICAgICAgICBleHBlY3QoImdvb3AuY29udGVudCIsICJTcHVyaW91cyBOb25zZW5zZSBmb3IgQWxsIik7CisgICAgICBdXT48L3NjcmlwdD4KICAgICA8L2V2ZW50PgogICA8L3N1YmZvcm0+CiA8L3RlbXBsYXRlPgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX25vZGVfZXhwZWN0ZWQudHh0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX25vZGVfZXhwZWN0ZWQudHh0CmluZGV4IDY4YjczYTkuLjg0NTUwMDQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV9ub2RlX2V4cGVjdGVkLnR4dAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfbm9kZV9leHBlY3RlZC50eHQKQEAgLTEsMyArMSwyMDAgQEAKK0FsZXJ0OiB4ZmEKK0FsZXJ0OiB8IGNvbmZpZworQWxlcnQ6IHwgfCBhZ2VudAorQWxlcnQ6IHwgfCB8IGRlc3RpbmF0aW9uCitBbGVydDogfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHBkZgorQWxlcnQ6IHwgfCB8IHwgZm9udEluZm8KK0FsZXJ0OiB8IHwgcHJlc2VudAorQWxlcnQ6IHwgfCB8IHBkZgorQWxlcnQ6IHwgfCB8IHwgdmVyc2lvbgorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgYWRvYmVFeHRlbnNpb25MZXZlbAorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgcmVuZGVyUG9saWN5CitBbGVydDogfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCBzY3JpcHRNb2RlbAorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgaW50ZXJhY3RpdmUKK0FsZXJ0OiB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB4ZHAKK0FsZXJ0OiB8IHwgfCB8IHBhY2tldHMKK0FsZXJ0OiB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCBkZXN0aW5hdGlvbgorQWxlcnQ6IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCBzY3JpcHQKK0FsZXJ0OiB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IGFjcm9iYXQKK0FsZXJ0OiB8IHwgfCBhY3JvYmF0NworQWxlcnQ6IHwgfCB8IHwgZHluYW1pY1JlbmRlcgorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHZhbGlkYXRlCitBbGVydDogfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgcGFja2V0CitBbGVydDogfCB0ZW1wbGF0ZQorQWxlcnQ6IHwgfCBzdWJmb3JtCitBbGVydDogfCB8IHwgZXZlbnQKK0FsZXJ0OiB8IHwgfCB8IHNjcmlwdAorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgbG9jYWxlU2V0CitBbGVydDogfCB8IGxvY2FsZQorQWxlcnQ6IHwgfCB8IGNhbGVuZGFyU3ltYm9scworQWxlcnQ6IHwgfCB8IHwgbW9udGhOYW1lcworQWxlcnQ6IHwgfCB8IHwgfCBtb250aAorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IG1vbnRoCitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgbW9udGgKK0FsZXJ0OiB8IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgfCBtb250aAorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IG1vbnRoCitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgbW9udGgKK0FsZXJ0OiB8IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgfCBtb250aAorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IG1vbnRoCitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgbW9udGgKK0FsZXJ0OiB8IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgfCBtb250aAorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IG1vbnRoCitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgbW9udGgKK0FsZXJ0OiB8IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgbW9udGhOYW1lcworQWxlcnQ6IHwgfCB8IHwgfCBtb250aAorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IG1vbnRoCitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgbW9udGgKK0FsZXJ0OiB8IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgfCBtb250aAorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IG1vbnRoCitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgbW9udGgKK0FsZXJ0OiB8IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgfCBtb250aAorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IG1vbnRoCitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgbW9udGgKK0FsZXJ0OiB8IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgfCBtb250aAorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IG1vbnRoCitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgbW9udGgKK0FsZXJ0OiB8IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgZGF5TmFtZXMKK0FsZXJ0OiB8IHwgfCB8IHwgZGF5CitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgZGF5CitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgZGF5CitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgZGF5CitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgZGF5CitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgZGF5CitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgZGF5CitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IGRheU5hbWVzCitBbGVydDogfCB8IHwgfCB8IGRheQorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IGRheQorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IGRheQorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IGRheQorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IGRheQorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IGRheQorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB8IGRheQorQWxlcnQ6IHwgfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCBtZXJpZGllbU5hbWVzCitBbGVydDogfCB8IHwgfCB8IG1lcmlkaWVtCitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgbWVyaWRpZW0KK0FsZXJ0OiB8IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgZXJhTmFtZXMKK0FsZXJ0OiB8IHwgfCB8IHwgZXJhCitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHwgZXJhCitBbGVydDogfCB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCBkYXRlUGF0dGVybnMKK0FsZXJ0OiB8IHwgfCB8IGRhdGVQYXR0ZXJuCitBbGVydDogfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCBkYXRlUGF0dGVybgorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgZGF0ZVBhdHRlcm4KK0FsZXJ0OiB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IGRhdGVQYXR0ZXJuCitBbGVydDogfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgdGltZVBhdHRlcm5zCitBbGVydDogfCB8IHwgfCB0aW1lUGF0dGVybgorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgdGltZVBhdHRlcm4KK0FsZXJ0OiB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IHRpbWVQYXR0ZXJuCitBbGVydDogfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCB0aW1lUGF0dGVybgorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IGRhdGVUaW1lU3ltYm9scworQWxlcnQ6IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCBudW1iZXJQYXR0ZXJucworQWxlcnQ6IHwgfCB8IHwgbnVtYmVyUGF0dGVybgorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgbnVtYmVyUGF0dGVybgorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgbnVtYmVyUGF0dGVybgorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IG51bWJlclN5bWJvbHMKK0FsZXJ0OiB8IHwgfCB8IG51bWJlclN5bWJvbAorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgbnVtYmVyU3ltYm9sCitBbGVydDogfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgfCBudW1iZXJTeW1ib2wKK0FsZXJ0OiB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IG51bWJlclN5bWJvbAorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgbnVtYmVyU3ltYm9sCitBbGVydDogfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgY3VycmVuY3lTeW1ib2xzCitBbGVydDogfCB8IHwgfCBjdXJyZW5jeVN5bWJvbAorQWxlcnQ6IHwgfCB8IHwgfCAjdGV4dAorQWxlcnQ6IHwgfCB8IHwgY3VycmVuY3lTeW1ib2wKK0FsZXJ0OiB8IHwgfCB8IHwgI3RleHQKK0FsZXJ0OiB8IHwgfCB8IGN1cnJlbmN5U3ltYm9sCitBbGVydDogfCB8IHwgfCB8ICN0ZXh0CitBbGVydDogfCB8IHwgdHlwZWZhY2VzCitBbGVydDogfCB8IHwgfCB0eXBlZmFjZQorQWxlcnQ6IHwgfCB8IHwgdHlwZWZhY2UKK0FsZXJ0OiB8IHwgfCB8IHR5cGVmYWNlCitBbGVydDogfCB8IHwgfCB0eXBlZmFjZQorQWxlcnQ6IHwgfCB8IHwgdHlwZWZhY2UKK0FsZXJ0OiB8IHwgfCB8IHR5cGVmYWNlCitBbGVydDogfCB8IHwgfCB0eXBlZmFjZQorQWxlcnQ6IHwgfCB8IHwgdHlwZWZhY2UKK0FsZXJ0OiB8IHwgfCB8IHR5cGVmYWNlCitBbGVydDogfCB8IHwgfCB0eXBlZmFjZQorQWxlcnQ6IHwgfCB8IHwgdHlwZWZhY2UKK0FsZXJ0OiB8IHwgfCB8IHR5cGVmYWNlCitBbGVydDogfCBkYXRhTW9kZWwKK0FsZXJ0OiB8IHwgZGF0YUdyb3VwCitBbGVydDogfCB8IHwgZGF0YUdyb3VwCitBbGVydDogfCBmb3JtCitBbGVydDogfCB8IHN1YmZvcm0KK0FsZXJ0OiB8IHwgfCBldmVudAorQWxlcnQ6IHwgfCB8IHwgc2NyaXB0CitBbGVydDogfCB8IHwgfCB8ICN0ZXh0CiBBbGVydDogUEFTUzogaXNDb250YWluZXIgPSB0cnVlCiBBbGVydDogUEFTUzogaXNDb250YWluZXIgdGhyZXcgRXJyb3I6IEludmFsaWQgcHJvcGVydHkgc2V0IG9wZXJhdGlvbi4KIEFsZXJ0OiBQQVNTOiBpc051bGwgPSBmYWxzZQpAQCAtNDksMyArMjQ2LDE5IEBACiBBbGVydDogUEFTUzogbXlfZG9jLmdldEF0dHJpYnV0ZSgnbnMnKSA9IHNvbWV0aGluZwogQWxlcnQ6IFBBU1M6IG15X2RvYy5zZXRBdHRyaWJ1dGUoJ2Zha2VfdmFsdWUnLCAnZmFrZV9hdHRyJykgPSB1bmRlZmluZWQKIEFsZXJ0OiBQQVNTOiBteV9kb2MuZ2V0QXR0cmlidXRlKCdmYWtlX2F0dHInKSA9IGZha2VfdmFsdWUKK0FsZXJ0OiBQQVNTOiBteV9kb2MueGZhID09IHhmYSA9IHRydWUKK0FsZXJ0OiBQQVNTOiBnb29wID0gdW5kZWZpbmVkCitBbGVydDogUEFTUzogZ29vcC5jbGFzc05hbWUgPSBwYWNrZXQKK0FsZXJ0OiBQQVNTOiBnb29wLnZpc2Nvc2l0eSA9IHVuZGVmaW5lZAorQWxlcnQ6IFBBU1M6IGdvb3AuZ2V0QXR0cmlidXRlKCkgdGhyZXcgWEZBT2JqZWN0LmdldEF0dHJpYnV0ZTogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KK0FsZXJ0OiBQQVNTOiBnb29wLmdldEF0dHJpYnV0ZSgxLCAyKSB0aHJldyBYRkFPYmplY3QuZ2V0QXR0cmlidXRlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IGdvb3AuZ2V0QXR0cmlidXRlKCdub25lc3VjaCcpID0gCitBbGVydDogUEFTUzogZ29vcC5nZXRBdHRyaWJ1dGUoJ3Zpc2Nvc2l0eScpID0gc2x1ZGdlCitBbGVydDogUEFTUzogZ29vcC5zZXRBdHRyaWJ1dGUoKSB0aHJldyBYRkFPYmplY3Quc2V0QXR0cmlidXRlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IGdvb3Auc2V0QXR0cmlidXRlKDEpIHRocmV3IFhGQU9iamVjdC5zZXRBdHRyaWJ1dGU6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogZ29vcC5zZXRBdHRyaWJ1dGUoMSwgMiwgMykgdGhyZXcgWEZBT2JqZWN0LnNldEF0dHJpYnV0ZTogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KK0FsZXJ0OiBQQVNTOiBnb29wLnNldEF0dHJpYnV0ZSg3LCAncGgnKSA9IG51bGwKK0FsZXJ0OiBQQVNTOiBnb29wLmdldEF0dHJpYnV0ZSgncGgnKSA9IDcKK0FsZXJ0OiBQQVNTOiBnb29wLmNvbnRlbnQgPSBTcHVyaW91cyBOb25zZW5zZQorQWxlcnQ6IFBBU1M6IGdvb3AuY29udGVudCA9ICcgZm9yIEFsbCcgPSAgZm9yIEFsbAorQWxlcnQ6IFBBU1M6IGdvb3AuY29udGVudCA9IFNwdXJpb3VzIE5vbnNlbnNlIGZvciBBbGwKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV90ZW1wbGF0ZS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV90ZW1wbGF0ZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGFkNDZkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX3RlbXBsYXRlLmluCkBAIC0wLDAgKzEsNjAgQEAKK3t7aGVhZGVyfX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY2F0YWxvZ18xXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9vYmplY3RfMl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcHJlYW1ibGVfM18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY29uZmlnXzRfMC5mcmFnbWVudH19Cit7e29iamVjdCA1IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8dGVtcGxhdGU+CisgIDxzdWJmb3JtIGxheW91dD0idGIiIG5hbWU9Im15X2RvYyI+CisgICAgPHBhZ2VTZXQgaWQ9InBhZ2UiIHJlbGF0aW9uPSJvcmRlcmVkT2NjdXJyZW5jZSI+CisgICAgICA8b2NjdXIgaW5pdGlhbD0iMSIgbWF4PSIxIiBtaW49IjEiLz4KKyAgICAgIDxwYWdlQXJlYSBpZD0iUGFnZTEiIG5hbWU9IlBhZ2UxIj4KKyAgICAgICAgPG9jY3VyIG1heD0iMSIgbWluPSIxIi8+CisgICAgICAgIDxjb250ZW50QXJlYSBoPSIxMDBtbSIgdz0iMjAwbW0iIHg9IjAuMjVpbiIgeT0iMC4yNWluIi8+CisgICAgICA8L3BhZ2VBcmVhPgorICAgICAgPHBhZ2VBcmVhIGlkPSJQYWdlMiIgbmFtZT0iUGFnZTIiPgorICAgICAgICA8b2NjdXIgbWF4PSIxIiBtaW49IjEiLz4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjEwMG1tIiB3PSIyMDBtbSIgeD0iMC4yNWluIiB5PSIwLjI1aW4iLz4KKyAgICAgIDwvcGFnZUFyZWE+CisgICAgPC9wYWdlU2V0PgorICAgIDxldmVudCBhY3Rpdml0eT0iZG9jUmVhZHkiIHJlZj0iJGhvc3QiPgorICAgICAgPHNjcmlwdCBjb250ZW50VHlwZT0iYXBwbGljYXRpb24veC1qYXZhc2NyaXB0Ij48IVtDREFUQVsKKyAgICAgICAge3tpbmNsdWRlIC4uL2V4cGVjdC5qc319CisgICAgICAgIHRlbXBsYXRlMCA9IHhmYS5yZXNvbHZlTm9kZSgiI3RlbXBsYXRlIik7CisgICAgICAgIGV4cGVjdCgidGVtcGxhdGUwLmNsYXNzTmFtZSIsICJ0ZW1wbGF0ZSIpOworCisgICAgICAgIGV4cGVjdEVycm9yKCJ0ZW1wbGF0ZTAuZXhlY0NhbGN1bGF0ZSgxKSIpOworICAgICAgICBleHBlY3QoInRlbXBsYXRlMC5leGVjQ2FsY3VsYXRlKCkiLCBmYWxzZSk7CisKKyAgICAgICAgZXhwZWN0RXJyb3IoInRlbXBsYXRlMC5leGVjSW5pdGlhbGl6ZSgxKSIsIGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KCJ0ZW1wbGF0ZTAuZXhlY0luaXRpYWxpemUoKSIsIGZhbHNlKTsKKworICAgICAgICBleHBlY3RFcnJvcigidGVtcGxhdGUwLmV4ZWNWYWxpZGF0ZSgxKSIsIGZhbHNlKTsKKyAgICAgICAgZXhwZWN0KCJ0ZW1wbGF0ZTAuZXhlY1ZhbGlkYXRlKCkiLCBmYWxzZSk7CisKKyAgICAgICAgZXhwZWN0RXJyb3IoInRlbXBsYXRlMC5mb3JtTm9kZXMoKSIsIHVuZGVmaW5lZCk7CisgICAgICAgIGV4cGVjdEVycm9yKCJ0ZW1wbGF0ZTAuZm9ybU5vZGVzKDEsIDIpIiwgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0KCJ0ZW1wbGF0ZTAuZm9ybU5vZGVzKHRydWUpIiwgdHJ1ZSk7CisKKyAgICAgICAgZXhwZWN0RXJyb3IoInRlbXBsYXRlMC5yZWNhbGN1bGF0ZSgpIiwgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0RXJyb3IoInRlbXBsYXRlMC5yZWNhbGN1bGF0ZSgxLCAyKSIsIHVuZGVmaW5lZCk7CisgICAgICAgIGV4cGVjdCgidGVtcGxhdGUwLnJlY2FsY3VsYXRlKHRydWUpIiwgdHJ1ZSk7CisKKyAgICAgICAgZXhwZWN0RXJyb3IoInRlbXBsYXRlMC5yZW1lcmdlKDEpIiwgdW5kZWZpbmVkKTsKKyAgICAgICAgZXhwZWN0KCJ0ZW1wbGF0ZTAucmVtZXJnZSgpIiwgdW5kZWZpbmVkKTsKKyAgICAgIF1dPjwvc2NyaXB0PgorICAgIDwvZXZlbnQ+CisgIDwvc3ViZm9ybT4KKzwvdGVtcGxhdGU+CitlbmRzdHJlYW0KK2VuZG9iagore3tpbmNsdWRlIC4uLy4uL3hmYV9sb2NhbGVfNl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcG9zdGFtYmxlXzdfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3BhZ2VzXzhfMC5mcmFnbWVudH19Cit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfdGVtcGxhdGVfZXhwZWN0ZWQudHh0IGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX3RlbXBsYXRlX2V4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmIxZmZkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX3RlbXBsYXRlX2V4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitBbGVydDogUEFTUzogdGVtcGxhdGUwLmNsYXNzTmFtZSA9IHRlbXBsYXRlCitBbGVydDogUEFTUzogdGVtcGxhdGUwLmV4ZWNDYWxjdWxhdGUoMSkgdGhyZXcgWEZBT2JqZWN0LmV4ZWNDYWxjdWxhdGU6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogdGVtcGxhdGUwLmV4ZWNDYWxjdWxhdGUoKSA9IGZhbHNlCitBbGVydDogUEFTUzogdGVtcGxhdGUwLmV4ZWNJbml0aWFsaXplKDEpIHRocmV3IFhGQU9iamVjdC5leGVjSW5pdGlhbGl6ZTogSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIHBhc3NlZCB0byBmdW5jdGlvbi4KK0FsZXJ0OiBQQVNTOiB0ZW1wbGF0ZTAuZXhlY0luaXRpYWxpemUoKSA9IGZhbHNlCitBbGVydDogUEFTUzogdGVtcGxhdGUwLmV4ZWNWYWxpZGF0ZSgxKSB0aHJldyBYRkFPYmplY3QuZXhlY1ZhbGlkYXRlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IHRlbXBsYXRlMC5leGVjVmFsaWRhdGUoKSA9IGZhbHNlCitBbGVydDogUEFTUzogdGVtcGxhdGUwLmZvcm1Ob2RlcygpIHRocmV3IFhGQU9iamVjdC5mb3JtTm9kZXM6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogdGVtcGxhdGUwLmZvcm1Ob2RlcygxLCAyKSB0aHJldyBYRkFPYmplY3QuZm9ybU5vZGVzOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IHRlbXBsYXRlMC5mb3JtTm9kZXModHJ1ZSkgPSB0cnVlCitBbGVydDogUEFTUzogdGVtcGxhdGUwLnJlY2FsY3VsYXRlKCkgdGhyZXcgWEZBT2JqZWN0LnJlY2FsY3VsYXRlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IHRlbXBsYXRlMC5yZWNhbGN1bGF0ZSgxLCAyKSB0aHJldyBYRkFPYmplY3QucmVjYWxjdWxhdGU6IEluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gZnVuY3Rpb24uCitBbGVydDogUEFTUzogdGVtcGxhdGUwLnJlY2FsY3VsYXRlKHRydWUpID0gdHJ1ZQorQWxlcnQ6IFBBU1M6IHRlbXBsYXRlMC5yZW1lcmdlKDEpIHRocmV3IFhGQU9iamVjdC5yZW1lcmdlOiBJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgcGFzc2VkIHRvIGZ1bmN0aW9uLgorQWxlcnQ6IFBBU1M6IHRlbXBsYXRlMC5yZW1lcmdlKCkgPSB1bmRlZmluZWQKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2phdmFzY3JpcHQveGZhX3NwZWNpZmljL3hmYV92YXJpYWJsZXMuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfdmFyaWFibGVzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZmRiOTcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfdmFyaWFibGVzLmluCkBAIC0wLDAgKzEsNzYgQEAKK3t7aGVhZGVyfX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY2F0YWxvZ18xXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9vYmplY3RfMl8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcHJlYW1ibGVfM18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfY29uZmlnXzRfMC5mcmFnbWVudH19Cit7e29iamVjdCA1IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis8dGVtcGxhdGU+CisgIDxzdWJmb3JtIGxheW91dD0idGIiIG5hbWU9Im15X2RvYyI+CisgICAgPHZhcmlhYmxlcz4KKyAgICAgIDx0ZXh0IG5hbWU9Inh4MDEiPjEyMzwvdGV4dD4KKyAgICAgIDx0ZXh0IG5hbWU9Inh4MDIiPjQ1NjwvdGV4dD4KKyAgICAgIDxpbnRlZ2VyIG5hbWU9Inh4MDMiPjEyMzwvaW50ZWdlcj4KKyAgICAgIDxpbnRlZ2VyIG5hbWU9Inh4MDQiPjQ1NjwvaW50ZWdlcj4KKyAgICA8L3ZhcmlhYmxlcz4KKyAgICA8cGFnZVNldCBpZD0icGFnZSIgcmVsYXRpb249Im9yZGVyZWRPY2N1cnJlbmNlIj4KKyAgICAgIDxvY2N1ciBpbml0aWFsPSIxIiBtYXg9IjEiIG1pbj0iMSIvPgorICAgICAgPHBhZ2VBcmVhIGlkPSJQYWdlMSIgbmFtZT0iUGFnZTEiPgorICAgICAgICA8b2NjdXIgbWF4PSIxIiBtaW49IjEiLz4KKyAgICAgICAgPGNvbnRlbnRBcmVhIGg9IjEwMG1tIiB3PSIyMDBtbSIgeD0iMC4yNWluIiB5PSIwLjI1aW4iLz4KKyAgICAgIDwvcGFnZUFyZWE+CisgICAgICA8cGFnZUFyZWEgaWQ9IlBhZ2UyIiBuYW1lPSJQYWdlMiI+CisgICAgICAgIDxvY2N1ciBtYXg9IjEiIG1pbj0iMSIvPgorICAgICAgICA8Y29udGVudEFyZWEgaD0iMTAwbW0iIHc9IjIwMG1tIiB4PSIwLjI1aW4iIHk9IjAuMjVpbiIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPGV2ZW50IGFjdGl2aXR5PSJkb2NSZWFkeSIgcmVmPSIkaG9zdCI+CisgICAgICA8c2NyaXB0IG5hbWU9Im15X3NjcmlwdCIgY29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCI+PCFbQ0RBVEFbCisgICAgICAgIHt7aW5jbHVkZSAuLi9leHBlY3QuanN9fQorICAgICAgICB0cnkgeworICAgICAgICAgIHZhciBzY3JpcHQxID0geGZhLnJlc29sdmVOb2RlKCd0ZW1wbGF0ZS4ubXlfc2NyaXB0Jyk7CisgICAgICAgICAgdmFyIHNjcmlwdDIgPSB4ZmEucmVzb2x2ZU5vZGUoJ3RlbXBsYXRlLi50aGVpcl9zY3JpcHQnKTsKKyAgICAgICAgICB2YXIgc2NyaXB0MyA9IHhmYS5yZXNvbHZlTm9kZSgndGVtcGxhdGUuLm90aGVyX3NjcmlwdCcpOworICAgICAgICAgIGFwcC5hbGVydCgnRmlyc3QsIHBva2UgYXQgYSBzY3JpcHQgbm9kZSBpdHNlZicpOworICAgICAgICAgIGV4cGVjdCgnc2NyaXB0MS5zdGF0ZWxlc3MnLCAnMCcpOworICAgICAgICAgIGV4cGVjdEVycm9yKCdzY3JpcHQxLnN0YXRlbGVzcyA9IDQyJyk7CisgICAgICAgICAgYXBwLmFsZXJ0KCdXZSBzZWFyY2ggdmFyaWFibGVzIGNvbnRleHQgJyArICh4eDAxLnZhbHVlICsgeHgwMi52YWx1ZSkpOworICAgICAgICAgIGFwcC5hbGVydCgnV2Ugc2VhcmNoIHZhcmlhYmxlcyBjb250ZXh0ICcgKyAoeHgwMy52YWx1ZSArIHh4MDQudmFsdWUpKTsKKyAgICAgICAgICBhcHAuYWxlcnQoJ1dlIHJlc29sdmUgb2ZmIG9mIHNjcmlwdDEgJyArIChzY3JpcHQxLnh4MDEudmFsdWUgKyBzY3JpcHQxLnh4MDIudmFsdWUpKTsKKyAgICAgICAgICBhcHAuYWxlcnQoJ1dlIHJlc29sdmUgb2ZmIG9mIHNjcmlwdDIgJyArIChzY3JpcHQyLnh4MDEudmFsdWUgKyBzY3JpcHQyLnh4MDIudmFsdWUpKTsKKyAgICAgICAgICBhcHAuYWxlcnQoJ1dlIHJlc29sdmUgb2ZmIG9mIHNjcmlwdDMgJyArIChzY3JpcHQzLnh4MDEudmFsdWUgKyBzY3JpcHQzLnh4MDIudmFsdWUpKTsKKyAgICAgICAgICBhcHAuYWxlcnQoJ1dlIHJlc29sdmUgb2ZmIG9mIHNjcmlwdDEgJyArIHNjcmlwdDEubm9uZXN1Y2gpOworICAgICAgICAgIGFwcC5hbGVydCgnV2UgcmVzb2x2ZSBvZmYgb2Ygc2NyaXB0MiAnICsgc2NyaXB0Mi5ub25lc3VjaCk7CisgICAgICAgICAgYXBwLmFsZXJ0KCdXZSByZXNvbHZlIG9mZiBvZiBzY3JpcHQzICcgKyBzY3JpcHQzLm5vbmVzdWNoKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgIGFwcC5hbGVydCgnRXJyb3I6ICcgKyBlKTsKKyAgICAgICAgfQorICAgICAgXV0+PC9zY3JpcHQ+CisgICAgPC9ldmVudD4KKyAgPC9zdWJmb3JtPgorICA8c3ViZm9ybSBsYXlvdXQ9InRiIiBuYW1lPSJ0aGVpcl9kb2MiPgorICAgIDx2YXJpYWJsZXM+CisgICAgICA8dGV4dCBuYW1lPSJ4eDAxIj43ODwvdGV4dD4KKyAgICAgIDx0ZXh0IG5hbWU9Inh4MDIiPjkwPC90ZXh0PgorICAgICAgPGludGVnZXIgbmFtZT0ieHgwMyI+Nzg8L2ludGVnZXI+CisgICAgICA8aW50ZWdlciBuYW1lPSJ4eDA0Ij45MDwvaW50ZWdlcj4KKyAgICAgIDxzY3JpcHQgbmFtZT0ib3RoZXJfc2NyaXB0Ij4KKyAgICAgICAgdmFyIHh4MDEgPSAiY2hpcHMiOworICAgICAgPC9zY3JpcHQ+CisgICAgPC92YXJpYWJsZXM+CisgICAgPHNjcmlwdCBuYW1lPSJ0aGVpcl9zY3JpcHQiPgorICAgICAgdmFyIHh4MDEgPSAiY2xhbXMiOworICAgIDwvc2NyaXB0PgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7aW5jbHVkZSAuLi8uLi94ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wYWdlc184XzAuZnJhZ21lbnR9fQore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX3ZhcmlhYmxlc19leHBlY3RlZC50eHQgYi90ZXN0aW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0L3hmYV9zcGVjaWZpYy94ZmFfdmFyaWFibGVzX2V4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWE0NTdmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvamF2YXNjcmlwdC94ZmFfc3BlY2lmaWMveGZhX3ZhcmlhYmxlc19leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorQWxlcnQ6IEZpcnN0LCBwb2tlIGF0IGEgc2NyaXB0IG5vZGUgaXRzZWYKK0FsZXJ0OiBQQVNTOiBzY3JpcHQxLnN0YXRlbGVzcyA9IDAKK0FsZXJ0OiBQQVNTOiBzY3JpcHQxLnN0YXRlbGVzcyA9IDQyIHRocmV3IEVycm9yOiBJbnZhbGlkIHByb3BlcnR5IHNldCBvcGVyYXRpb24uCitBbGVydDogV2Ugc2VhcmNoIHZhcmlhYmxlcyBjb250ZXh0IDEyMzQ1NgorQWxlcnQ6IFdlIHNlYXJjaCB2YXJpYWJsZXMgY29udGV4dCA1NzkKK0FsZXJ0OiBXZSByZXNvbHZlIG9mZiBvZiBzY3JpcHQxIDEyMzQ1NgorQWxlcnQ6IFdlIHJlc29sdmUgb2ZmIG9mIHNjcmlwdDIgNzg5MAorQWxlcnQ6IFdlIHJlc29sdmUgb2ZmIG9mIHNjcmlwdDMgNzg5MAorQWxlcnQ6IFdlIHJlc29sdmUgb2ZmIG9mIHNjcmlwdDEgdW5kZWZpbmVkCitBbGVydDogV2UgcmVzb2x2ZSBvZmYgb2Ygc2NyaXB0MiB1bmRlZmluZWQKK0FsZXJ0OiBXZSByZXNvbHZlIG9mZiBvZiBzY3JpcHQzIHVuZGVmaW5lZApkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvanB4X2x6dy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2pweF9sencuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDY5MTRjMQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2pweF9sencuaW4KQEAgLTAsMCArMSw1NSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvSW0wIDUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzYxMiAwIDAgNzkyIDAgMCBjbQorL0ltMCBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0xaV0RlY29kZSAvSlBYRGVjb2RlXQorICAvV2lkdGggNjEyCisgIC9IZWlnaHQgNzkyCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzgwMDAyMDQwYzM1MTQwNDAyMDA2ODI5MGUwYTgxMDAwMjg2NjNhMWU0ZTA2YTM4MGM4NDEwZDAwNDUyMmQwZDE2YzY4ZDEwZDBiMWE0ZDA2Cis0Mzk0MDgwNjE4ODEwMDhjODAwMDE4MWMwZjE4MDAwM2NjNjZmMzYxYzgwMzMwMDg0MzU4ZDFhMzFiZmM5ZWZmMjg4MDA1ZjE4OTU0OWE1MQorMzBhMjRhZTU5NDdhNDRiMDBlMDEwMGQzZWEzNTA3Zjk0ODAwMGM4NmQ0MDBhMDQwMjAwMDAyZmYyZTAwMDI2NDAyMDEyMDkwNTBiMzVhMmMKK2Y2OWI0YmZlNTYyNWFmMTBjZTQ2NTMwOWQwY2E2NDEwMTg4ZjIyMDI3OWMwY2E2ZTI1MTQwOGE0NzEwMWQ4Y2E3MjM5OWE0ZGU2ZTEwMGM4Cis1YzMzMTcwYzFmZTkwMDA0MzIzMDNmYWYzZmQyNmNmNWExNDAyMjUwMmEyYmRmZTdmMzY5YTBiNDgwOTgwYzEyMDk3ZDE4MDFiZTgwMWMwNQorMDAwNWM1N2JmODE4ZGFhNmVlNWZlZDk4MDEKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9qcHhfbHp3LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2pweF9sencucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3MzUwMTgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qcHhfbHp3LnBkZgpAQCAtMCwwICsxLDY3IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL0ltMCA1IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9MZW5ndGggMzEKKz4+CitzdHJlYW0KK3EKKzYxMiAwIDAgNzkyIDAgMCBjbQorL0ltMCBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvTFpXRGVjb2RlIC9KUFhEZWNvZGVdCisgIC9XaWR0aCA2MTIKKyAgL0hlaWdodCA3OTIKKyAgL0xlbmd0aCA0MzIKKz4+CitzdHJlYW0KKzgwMDAyMDQwYzM1MTQwNDAyMDA2ODI5MGUwYTgxMDAwMjg2NjNhMWU0ZTA2YTM4MGM4NDEwZDAwNDUyMmQwZDE2YzY4ZDEwZDBiMWE0ZDA2Cis0Mzk0MDgwNjE4ODEwMDhjODAwMDE4MWMwZjE4MDAwM2NjNjZmMzYxYzgwMzMwMDg0MzU4ZDFhMzFiZmM5ZWZmMjg4MDA1ZjE4OTU0OWE1MQorMzBhMjRhZTU5NDdhNDRiMDBlMDEwMGQzZWEzNTA3Zjk0ODAwMGM4NmQ0MDBhMDQwMjAwMDAyZmYyZTAwMDI2NDAyMDEyMDkwNTBiMzVhMmMKK2Y2OWI0YmZlNTYyNWFmMTBjZTQ2NTMwOWQwY2E2NDEwMTg4ZjIyMDI3OWMwY2E2ZTI1MTQwOGE0NzEwMWQ4Y2E3MjM5OWE0ZGU2ZTEwMGM4Cis1YzMzMTcwYzFmZTkwMDA0MzIzMDNmYWYzZmQyNmNmNWExNDAyMjUwMmEyYmRmZTdmMzY5YTBiNDgwOTgwYzEyMDk3ZDE4MDFiZTgwMWMwNQorMDAwNWM1N2JmODE4ZGFhNmVlNWZlZDk4MDEKK2VuZHN0cmVhbQorZW5kb2JqCit4cmVmCiswIDYKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxMzEgMDAwMDAgbiAKKzAwMDAwMDAyODcgMDAwMDAgbiAKKzAwMDAwMDAzNjkgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgNgorPj4KK3N0YXJ0eHJlZgorOTY1CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvanMucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvanMucGRmCmluZGV4IDA3ZTliNzUuLjhkNjQ4NjYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL2pzLnBkZgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9qcy5wZGYKQEAgLTIyLDcgKzIyLDYgQEAKIDQgMCBvYmogPDwKICAgL05hbWVzIFsKICAgICAobm9ybWFsKSA1IDAgUgotICAgIChlbmNvZGVkX3N1YnR5cGUpIDYgMCBSCiAgICAgKG5vX3R5cGUpIDcgMCBSCiAgICAgKHdyb25ndHlwZSkgOCAwIFIKICAgICAod3JvbmdzdWJ0eXBlKSA5IDAgUgpAQCAtMzYsMTIgKzM1LDYgQEAKICAgL0pTIDExIDAgUgogPj4KIGVuZG9iagotNiAwIG9iaiA8PAotICAvVHlwZSAvQWN0aW9uCi0gIC9TIC9KIzYxdiM2MVNjcmlwdAotICAvSlMgMTEgMCBSCi0+PgotZW5kb2JqCiA3IDAgb2JqIDw8CiAgIC9TIC9KYXZhU2NyaXB0CiAgIC9KUyAxMiAwIFIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2xpbmVfYW5ub3QuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9saW5lX2Fubm90LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NzgxNjkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9saW5lX2Fubm90LmluCkBAIC0wLDAgKzEsNTAgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0Fubm90cyBbCisgICAgNCAwIFIgNSAwIFIKKyAgXQorICAvVGFicyAvUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5lCisgIC9OTSAoTGluZS0xKQorICAvRiA0CisgIC9MIFsxNTkgMjk2IDQ3MiAyNDMuNDJdCisgIC9QIDMgMCBSCisgIC9DIFsxIDAuOTAxOTYgMF0KKyAgL1JlY3QgWzI5MyA1MzAgMzQ5IDU0Ml0KKyAgL0JvcmRlciBbMC4yNSAwLjUgMl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvTGluZQorICAvTk0gKExpbmUtMikKKyAgL0YgNAorICAvTCBbMTU5IDI5NiA0NzJdCisgIC9QIDMgMCBSCisgIC9DIFsxIDAuOTAxOTYgMF0KKyAgL1JlY3QgWzI5MyA1MzAgMzQ5IDU0Ml0KKyAgL0JvcmRlciBbMC4yNSAwLjVdCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9saW5lX2Fubm90LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2xpbmVfYW5ub3QucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhN2ZlZTMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9saW5lX2Fubm90LnBkZgpAQCAtMCwwICsxLDYyIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0Fubm90cyBbCisgICAgNCAwIFIgNSAwIFIKKyAgXQorICAvVGFicyAvUgorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0xpbmUKKyAgL05NIChMaW5lLTEpCisgIC9GIDQKKyAgL0wgWzE1OSAyOTYgNDcyIDI0My40Ml0KKyAgL1AgMyAwIFIKKyAgL0MgWzEgMC45MDE5NiAwXQorICAvUmVjdCBbMjkzIDUzMCAzNDkgNTQyXQorICAvQm9yZGVyIFswLjI1IDAuNSAyXQorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0xpbmUKKyAgL05NIChMaW5lLTIpCisgIC9GIDQKKyAgL0wgWzE1OSAyOTYgNDcyXQorICAvUCAzIDAgUgorICAvQyBbMSAwLjkwMTk2IDBdCisgIC9SZWN0IFsyOTMgNTMwIDM0OSA1NDJdCisgIC9Cb3JkZXIgWzAuMjUgMC41XQorPj4KK2VuZG9iagoreHJlZgorMCA2CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTMxIDAwMDAwIG4gCiswMDAwMDAwMjUxIDAwMDAwIG4gCiswMDAwMDAwNDMxIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDYKKz4+CitzdGFydHhyZWYKKzYwMgorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL2xpbmtfYW5ub3RzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvbGlua19hbm5vdHMuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3NjA2OWMuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvbGlua19hbm5vdHMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwzMzMgKzAsMCBAQAote3toZWFkZXJ9fQote3tvYmplY3QgMSAwfX0gPDwKLSAgL1R5cGUgL0NhdGFsb2cKLSAgL1BhZ2VzIDIgMCBSCi0+PgotZW5kb2JqCi17e29iamVjdCAyIDB9fSA8PAotICAvVHlwZSAvUGFnZXMKLSAgL0NvdW50IDIKLSAgL0tpZHMgWzMgMCBSIDQgMCBSXQotICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQotICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCi0gIC9SZXNvdXJjZXMgPDwKLSAgICAvRm9udCA8PAotICAgICAgL0YxIDcgMCBSCi0gICAgICAvRjIgOCAwIFIKLSAgICA+PgotICAgIC9Qcm9jU2V0IFsvUERGIC9UZXh0IC9JbWFnZUNdCi0gICAgL0V4dEdTdGF0ZSA8PAotICAgICAgL0dTMCAyMyAwIFIKLSAgICA+PgotICA+PgotPj4KLWVuZG9iagote3tvYmplY3QgMyAwfX0gPDwKLSAgL1R5cGUgL1BhZ2UKLSAgL1BhcmVudCAyIDAgUgotICAvQ29udGVudHMgNSAwIFIKLSAgL0Fubm90cyBbMTUgMCBSIDE2IDAgUiAxNyAwIFIgMTggMCBSIDE5IDAgUiAyMCAwIFIgMjEgMCBSIDIyIDAgUl0KLT4+Ci1lbmRvYmoKLXt7b2JqZWN0IDQgMH19IDw8Ci0gIC9UeXBlIC9QYWdlCi0gIC9QYXJlbnQgMiAwIFIKLSAgL0NvbnRlbnRzIDYgMCBSCi0gIC9Bbm5vdHMgWzE1IDAgUiAxNiAwIFJdCi0+PgotZW5kb2JqCi17e29iamVjdCA1IDB9fSA8PAotICB7e3N0cmVhbWxlbn19Ci0+Pgotc3RyZWFtCi1CVAotNzAgNzAwIFRkCi0vRjEgMTggVGYKLShMaW5rIEFubm90YXRpb25zIC0gUGFnZSAxKSBUagotMCAtNjUgVGQKLS9GMiAxNCBUZgotKDEuIExpbmsgd2l0aCBkZXN0aW5hdGlvbiB0byBmaXJzdCBwYWdlKSBUagotMTAgLTIwIFRkCi0vRjIgMTQgVGYKLSgyLiBMaW5rIHdpdGggZGVzdGluYXRpb24gdG8gc2Vjb25kIHBhZ2UpIFRqCi0tMTIgLTg0IFRkCi0vRjIgMTAgVGYKLShQREYgUmVmZXJlbmNlLCBWZXJzaW9uIDEuNywgU2VjdGlvbiA4LjQuNSBkZWZpbmVzIEFubm90YXRpb25zKSBUagotMiAtNTMgVGQKLSgzLiAgQW4gZXhhbXBsZSBvZiBIaWdobGlnaHQgd2l0aCB0ZXh0IG5vdGVzKSBUagotMCAtMTggVGQKLShodHRwczovL3BkZml1bS5nb29nbGVzb3VyY2UuY29tL3BkZml1bSBpcyBsaW5rIGluIHBsYWluIHRleHQsIG5vdCBsaW5rIGFubm90YXRpb24uIFRoZXNlIGFyZSByZWZlcnJlZCB0bykgVGoKLTAgLTE3IFRkCi0oYXMgV2ViTGlua3MgaW4gUERGaXVtLilUagotRVQKLWVuZHN0cmVhbQotZW5kb2JqCi17e29iamVjdCA2IDB9fSA8PAotICB7e3N0cmVhbWxlbn19Ci0+Pgotc3RyZWFtCi1CVAotNzAgNzAwIFRkCi0vRjEgMTggVGYKLShMaW5rIEFubm90YXRpb25zIC0gUGFnZSAyKSBUagotMCAtNjUgVGQKLS9GMiAxNCBUZgotKDEuIExpbmsgd2l0aCBkZXN0aW5hdGlvbiB0byBmaXJzdCBwYWdlKSBUagotMTAgLTIwIFRkCi0vRjIgMTQgVGYKLSgyLiBMaW5rIHdpdGggZGVzdGluYXRpb24gdG8gc2Vjb25kIHBhZ2UpIFRqCi1FVAotZW5kc3RyZWFtCi1lbmRvYmoKLXt7b2JqZWN0IDcgMH19IDw8Ci0gIC9UeXBlIC9Gb250Ci0gIC9TdWJ0eXBlIC9UeXBlMQotICAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuCi0+PgotZW5kb2JqCi17e29iamVjdCA4IDB9fSA8PAotICAvVHlwZSAvRm9udAotICAvU3VidHlwZSAvVHlwZTEKLSAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKLT4+Ci1lbmRvYmoKLXt7b2JqZWN0IDkgMH19IDw8Ci0gIC9UeXBlIC9YT2JqZWN0Ci0gIC9TdWJ0eXBlIC9Gb3JtCi0gIC9Gb3JtVHlwZSAxCi0gIHt7c3RyZWFtbGVufX0KLSAgL0JCb3ggWzI5MyA1MzAgMzQ5IDU0Ml0KLSAgL1Jlc291cmNlcyA8PAotICAgIC9YT2JqZWN0IDw8Ci0gICAgICAvRm9ybTAgMTAgMCBSCi0gICAgPj4KLSAgICAvRXh0R1N0YXRlIDw8Ci0gICAgICAvR1MwIDI0IDAgUgotICAgID4+Ci0gID4+Ci0+Pgotc3RyZWFtCi0vR1MwIGdzCi0vRm9ybTAgRG8KLWVuZHN0cmVhbQotZW5kb2JqCi17e29iamVjdCAxMCAwfX0gPDwKLSAgL1R5cGUgL1hPYmplY3QKLSAgL1N1YnR5cGUgL0Zvcm0KLSAgL0Zvcm1UeXBlIDEKLSAgL0dyb3VwIDw8Ci0gICAgL1MgL1RyYW5zcGFyZW5jeQotICA+PgotICB7e3N0cmVhbWxlbn19Ci0gIC9CQm94IFsyOTMgNTMwIDM0OSA1NDJdCi0+Pgotc3RyZWFtCi0xLjAgMS4wIDAuMCByZwotMjkzIDUzMCBtCi0zNDkgNTMwIGwKLTM0OSA1NDIgbAotMjkzIDU0MiBsCi1oIGYKLWVuZHN0cmVhbQotZW5kb2JqCi17e29iamVjdCAxMSAwfX0gPDwKLSAgL1R5cGUgL1hPYmplY3QKLSAgL1N1YnR5cGUgL0Zvcm0KLSAgL0Zvcm1UeXBlIDEKLSAge3tzdHJlYW1sZW59fQotICAvQkJveCBbODMgNDQwIDE3OCA0NTNdCi0gIC9SZXNvdXJjZXMgPDwKLSAgICAvWE9iamVjdCA8PAotICAgICAgL0Zvcm0wIDEyIDAgUgotICAgID4+Ci0gICAgL0V4dEdTdGF0ZSA8PAotICAgICAgL0dTMCAyNCAwIFIKLSAgICA+PgotICA+PgotPj4KLXN0cmVhbQotL0dTMCBncwotL0Zvcm0wIERvCi1lbmRzdHJlYW0KLWVuZG9iagote3tvYmplY3QgMTIgMH19IDw8Ci0gIC9UeXBlIC9YT2JqZWN0Ci0gIC9TdWJ0eXBlIC9Gb3JtCi0gIC9Gb3JtVHlwZSAxCi0gIC9Hcm91cCA8PAotICAgIC9TIC9UcmFuc3BhcmVuY3kKLSAgPj4KLSAge3tzdHJlYW1sZW59fQotICAvQkJveCBbODMgNDQwIDE3OCA0NTNdCi0+Pgotc3RyZWFtCi0wLjAgMS4wIDEuMCByZwotODMgNDQwIG0KLTE3OCA0NDAgbAotMTc4IDQ1MyBsCi04MyA0NTMgbAotaCBmCi1lbmRzdHJlYW0KLWVuZG9iagote3tvYmplY3QgMTMgMH19IDw8Ci0gIC9UeXBlIC9YT2JqZWN0Ci0gIC9TdWJ0eXBlIC9Gb3JtCi0gIC9Gb3JtVHlwZSAxCi0gIHt7c3RyZWFtbGVufX0KLSAgL0JCb3ggWzE0OSA0NzYgMTkxIDQ4N10KLSAgL1Jlc291cmNlcyA8PAotICAgIC9YT2JqZWN0IDw8Ci0gICAgICAvRm9ybTAgMTQgMCBSCi0gICAgPj4KLSAgICAvRXh0R1N0YXRlIDw8Ci0gICAgICAvR1MwIDI0IDAgUgotICAgID4+Ci0gID4+Ci0+Pgotc3RyZWFtCi0vR1MwIGdzCi0vRm9ybTAgRG8KLWVuZHN0cmVhbQotZW5kb2JqCi17e29iamVjdCAxNCAwfX0gPDwKLSAgL1R5cGUgL1hPYmplY3QKLSAgL1N1YnR5cGUgL0Zvcm0KLSAgL0Zvcm1UeXBlIDEKLSAgL0dyb3VwIDw8Ci0gICAgL1MgL1RyYW5zcGFyZW5jeQotICA+PgotICB7e3N0cmVhbWxlbn19Ci0gIC9CQm94IFsxNDkgNDc2IDE5MSA0ODddCi0+Pgotc3RyZWFtCi0wLjAgMS4wIDAuMCByZwotMTQ5IDQ3NiBtCi0xOTEgNDc2IGwKLTE5MSA0ODcgbAotMTQ5IDQ4NyBsCi1oIGYKLWVuZHN0cmVhbQotZW5kb2JqCi17e29iamVjdCAxNSAwfX0gPDwKLSAgL1R5cGUgL0Fubm90Ci0gIC9TdWJ0eXBlIC9MaW5rCi0gIC9CUyA8PAotICAgIC9XIDAKLSAgPj4KLSAgL1JlY3QgWzY5IDYzMyA1NDIgNjUzXQotICAvRGVzdCBbMyAwIFIgL1hZWiAyMDAgNzI1IDBdCi0gIC9GIDQKLT4+Ci1lbmRvYmoKLXt7b2JqZWN0IDE2IDB9fSA8PAotICAvVHlwZSAvQW5ub3QKLSAgL1N1YnR5cGUgL0xpbmsKLSAgL0JTIDw8Ci0gICAgL1cgMAotICA+PgotICAvUmVjdCBbODAgNjEzIDU0MiA2MzNdCi0gIC9EZXN0IFs0IDAgUiAvWFlaIDIwMCA3MjUgMF0KLSAgL0YgNAotPj4KLWVuZG9iagote3tvYmplY3QgMTcgMH19IDw8Ci0gIC9UeXBlIC9Bbm5vdAotICAvU3VidHlwZSAvTGluawotICAvQlMgPDwKLSAgICAvVyAwCi0gID4+Ci0gIC9SZWN0IFs2NiA1MjkgMTk2IDU0NF0KLSAgL0EgPDwKLSAgICAvVHlwZSAvQWN0aW9uCi0gICAgL1VSSSAoaHR0cHM6Ly93d3cuYWRvYmUuY29tL2NvbnRlbnQvZGFtL2Fjb20vZW4vZGV2bmV0L2Fjcm9iYXQvcGRmcy9wZGZfcmVmZXJlbmNlXzEtNy5wZGYpCi0gICAgL1MgL1VSSQotICA+PgotICAvRiA0Ci0+PgotZW5kb2JqCi17e29iamVjdCAxOCAwfX0gPDwKLSAgL1R5cGUgL0Fubm90Ci0gIC9TdWJ0eXBlIC9MaW5rCi0gIC9CUyA8PAotICAgIC9XIDAKLSAgPj4KLSAgL1JlY3QgWzgzIDQ0MCAxNzggNDUzXQotICAvUXVhZFBvaW50cyBbODMgNDUzIDE3OCA0NTMgODMgNDQwIDE3OCA0NDBdCi0gIC9BIDw8Ci0gICAgL1R5cGUgL0FjdGlvbgotICAgIC9VUkkgKGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy90aGlyZF9wYXJ0eS9wZGZpdW0vcHVibGljL2ZwZGZfdGV4dC5oKQotICAgIC9TIC9VUkkKLSAgPj4KLSAgL0YgNAotPj4KLWVuZG9iagote3tvYmplY3QgMTkgMH19IDw8Ci0gIC9UeXBlIC9Bbm5vdAotICAvU3VidHlwZSAvSGlnaGxpZ2h0Ci0gIC9BUCA8PAotICAgIC9OIDkgMCBSCi0gID4+Ci0gIC9OTSAoSGlnaGxpZ2h0LTEpCi0gIC9GIDQKLSAgL1F1YWRQb2ludHMgWzI5MyA1NDIgMzQ5IDU0MiAyOTMgNTMwIDM0OSA1MzBdCi0gIC9QIDMgMCBSCi0gIC9DIFsxIDAuOTAxOTYgMF0KLSAgL1JlY3QgWzI5MyA1MzAgMzQ5IDU0Ml0KLT4+Ci1lbmRvYmoKLXt7b2JqZWN0IDIwIDB9fSA8PAotICAvVHlwZSAvQW5ub3QKLSAgL1N1YnR5cGUgL0hpZ2hsaWdodAotICAvQVAgPDwKLSAgICAvTiAxMSAwIFIKLSAgPj4KLSAgL05NIChIaWdobGlnaHQtMikKLSAgL0YgNAotICAvUXVhZFBvaW50cyBbODMgNDUzIDE3OCA0NTMgODMgNDQwIDE3OCA0NDBdCi0gIC9QIDMgMCBSCi0gIC9DIFswLjI2NjY3IDAuNzg0MzEgMC45NjA3OF0KLSAgL1JlY3QgWzgzIDQ0MCAxNzggNDUzXQotPj4KLWVuZG9iagote3tvYmplY3QgMjEgMH19IDw8Ci0gIC9UeXBlIC9Bbm5vdAotICAvU3VidHlwZSAvUG9wdXAKLSAgL1BhcmVudCAyMiAwIFIKLSAgL1JlY3QgWzE5MSAzNzcgNDQzIDQ4OF0KLT4+Ci1lbmRvYmoKLXt7b2JqZWN0IDIyIDB9fSA8PAotICAvVHlwZSAvQW5ub3QKLSAgL1N1YnR5cGUgL0hpZ2hsaWdodAotICAvUG9wdXAgMjEgMCBSCi0gIC9BUCA8PAotICAgIC9OIDEzIDAgUgotICA+PgotICAvTk0gKEhpZ2hsaWdodC1XaXRoLVBvcHVwLTEpCi0gIC9Db250ZW50cyAoVGV4dCBOb3RlKQotICAvUXVhZFBvaW50cyBbMTQ5IDQ4NyAxOTEgNDg3IDE0OSA0NzYgMTkxIDQ3Nl0KLSAgL1AgMyAwIFIKLSAgL0MgWzAuMTQ5MDIgMC45MDE5NiAwXQotICAvUmVjdCBbMTQ5IDQ3NiAxOTEgNDg3XQotICAvRiA0Ci0+PgotZW5kb2JqCi17e29iamVjdCAyMyAwfX0gPDwKLSAgL2NhIDEKLSAgL1R5cGUgL0V4dEdTdGF0ZQotICAvQ0EgMQotICAvQk0gL05vcm1hbAotPj4KLWVuZG9iagote3tvYmplY3QgMjQgMH19IDw8Ci0gIC9jYSAxCi0gIC9UeXBlIC9FeHRHU3RhdGUKLSAgL0NBIDEKLSAgL0FJUyBmYWxzZQotICAvQk0gL011bHRpcGx5Ci0+PgotZW5kb2JqCi17e3hyZWZ9fQote3t0cmFpbGVyfX0KLXt7c3RhcnR4cmVmfX0KLSUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9saW5rX2Fubm90cy5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9saW5rX2Fubm90cy5wZGYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5NjRiZjUuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvbGlua19hbm5vdHMucGRmCisrKyAvZGV2L251bGwKQEAgLTEsMzY0ICswLDAgQEAKLSVQREYtMS43Ci0loPKk9AotMSAwIG9iaiA8PAotICAvVHlwZSAvQ2F0YWxvZwotICAvUGFnZXMgMiAwIFIKLT4+Ci1lbmRvYmoKLTIgMCBvYmogPDwKLSAgL1R5cGUgL1BhZ2VzCi0gIC9Db3VudCAyCi0gIC9LaWRzIFszIDAgUiA0IDAgUl0KLSAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KLSAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQotICAvUmVzb3VyY2VzIDw8Ci0gICAgL0ZvbnQgPDwKLSAgICAgIC9GMSA3IDAgUgotICAgICAgL0YyIDggMCBSCi0gICAgPj4KLSAgICAvUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VDXQotICAgIC9FeHRHU3RhdGUgPDwKLSAgICAgIC9HUzAgMjMgMCBSCi0gICAgPj4KLSAgPj4KLT4+Ci1lbmRvYmoKLTMgMCBvYmogPDwKLSAgL1R5cGUgL1BhZ2UKLSAgL1BhcmVudCAyIDAgUgotICAvQ29udGVudHMgNSAwIFIKLSAgL0Fubm90cyBbMTUgMCBSIDE2IDAgUiAxNyAwIFIgMTggMCBSIDE5IDAgUiAyMCAwIFIgMjEgMCBSIDIyIDAgUl0KLT4+Ci1lbmRvYmoKLTQgMCBvYmogPDwKLSAgL1R5cGUgL1BhZ2UKLSAgL1BhcmVudCAyIDAgUgotICAvQ29udGVudHMgNiAwIFIKLSAgL0Fubm90cyBbMTUgMCBSIDE2IDAgUl0KLT4+Ci1lbmRvYmoKLTUgMCBvYmogPDwKLSAgL0xlbmd0aCA0ODYKLT4+Ci1zdHJlYW0KLUJUCi03MCA3MDAgVGQKLS9GMSAxOCBUZgotKExpbmsgQW5ub3RhdGlvbnMgLSBQYWdlIDEpIFRqCi0wIC02NSBUZAotL0YyIDE0IFRmCi0oMS4gTGluayB3aXRoIGRlc3RpbmF0aW9uIHRvIGZpcnN0IHBhZ2UpIFRqCi0xMCAtMjAgVGQKLS9GMiAxNCBUZgotKDIuIExpbmsgd2l0aCBkZXN0aW5hdGlvbiB0byBzZWNvbmQgcGFnZSkgVGoKLS0xMiAtODQgVGQKLS9GMiAxMCBUZgotKFBERiBSZWZlcmVuY2UsIFZlcnNpb24gMS43LCBTZWN0aW9uIDguNC41IGRlZmluZXMgQW5ub3RhdGlvbnMpIFRqCi0yIC01MyBUZAotKDMuICBBbiBleGFtcGxlIG9mIEhpZ2hsaWdodCB3aXRoIHRleHQgbm90ZXMpIFRqCi0wIC0xOCBUZAotKGh0dHBzOi8vcGRmaXVtLmdvb2dsZXNvdXJjZS5jb20vcGRmaXVtIGlzIGxpbmsgaW4gcGxhaW4gdGV4dCwgbm90IGxpbmsgYW5ub3RhdGlvbi4gVGhlc2UgYXJlIHJlZmVycmVkIHRvKSBUagotMCAtMTcgVGQKLShhcyBXZWJMaW5rcyBpbiBQREZpdW0uKVRqCi1FVAotZW5kc3RyZWFtCi1lbmRvYmoKLTYgMCBvYmogPDwKLSAgL0xlbmd0aCAxODUKLT4+Ci1zdHJlYW0KLUJUCi03MCA3MDAgVGQKLS9GMSAxOCBUZgotKExpbmsgQW5ub3RhdGlvbnMgLSBQYWdlIDIpIFRqCi0wIC02NSBUZAotL0YyIDE0IFRmCi0oMS4gTGluayB3aXRoIGRlc3RpbmF0aW9uIHRvIGZpcnN0IHBhZ2UpIFRqCi0xMCAtMjAgVGQKLS9GMiAxNCBUZgotKDIuIExpbmsgd2l0aCBkZXN0aW5hdGlvbiB0byBzZWNvbmQgcGFnZSkgVGoKLUVUCi1lbmRzdHJlYW0KLWVuZG9iagotNyAwIG9iaiA8PAotICAvVHlwZSAvRm9udAotICAvU3VidHlwZSAvVHlwZTEKLSAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgotPj4KLWVuZG9iagotOCAwIG9iaiA8PAotICAvVHlwZSAvRm9udAotICAvU3VidHlwZSAvVHlwZTEKLSAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKLT4+Ci1lbmRvYmoKLTkgMCBvYmogPDwKLSAgL1R5cGUgL1hPYmplY3QKLSAgL1N1YnR5cGUgL0Zvcm0KLSAgL0Zvcm1UeXBlIDEKLSAgL0xlbmd0aCAxOAotICAvQkJveCBbMjkzIDUzMCAzNDkgNTQyXQotICAvUmVzb3VyY2VzIDw8Ci0gICAgL1hPYmplY3QgPDwKLSAgICAgIC9Gb3JtMCAxMCAwIFIKLSAgICA+PgotICAgIC9FeHRHU3RhdGUgPDwKLSAgICAgIC9HUzAgMjQgMCBSCi0gICAgPj4KLSAgPj4KLT4+Ci1zdHJlYW0KLS9HUzAgZ3MKLS9Gb3JtMCBEbwotZW5kc3RyZWFtCi1lbmRvYmoKLTEwIDAgb2JqIDw8Ci0gIC9UeXBlIC9YT2JqZWN0Ci0gIC9TdWJ0eXBlIC9Gb3JtCi0gIC9Gb3JtVHlwZSAxCi0gIC9Hcm91cCA8PAotICAgIC9TIC9UcmFuc3BhcmVuY3kKLSAgPj4KLSAgL0xlbmd0aCA1OQotICAvQkJveCBbMjkzIDUzMCAzNDkgNTQyXQotPj4KLXN0cmVhbQotMS4wIDEuMCAwLjAgcmcKLTI5MyA1MzAgbQotMzQ5IDUzMCBsCi0zNDkgNTQyIGwKLTI5MyA1NDIgbAotaCBmCi1lbmRzdHJlYW0KLWVuZG9iagotMTEgMCBvYmogPDwKLSAgL1R5cGUgL1hPYmplY3QKLSAgL1N1YnR5cGUgL0Zvcm0KLSAgL0Zvcm1UeXBlIDEKLSAgL0xlbmd0aCAxOAotICAvQkJveCBbODMgNDQwIDE3OCA0NTNdCi0gIC9SZXNvdXJjZXMgPDwKLSAgICAvWE9iamVjdCA8PAotICAgICAgL0Zvcm0wIDEyIDAgUgotICAgID4+Ci0gICAgL0V4dEdTdGF0ZSA8PAotICAgICAgL0dTMCAyNCAwIFIKLSAgICA+PgotICA+PgotPj4KLXN0cmVhbQotL0dTMCBncwotL0Zvcm0wIERvCi1lbmRzdHJlYW0KLWVuZG9iagotMTIgMCBvYmogPDwKLSAgL1R5cGUgL1hPYmplY3QKLSAgL1N1YnR5cGUgL0Zvcm0KLSAgL0Zvcm1UeXBlIDEKLSAgL0dyb3VwIDw8Ci0gICAgL1MgL1RyYW5zcGFyZW5jeQotICA+PgotICAvTGVuZ3RoIDU3Ci0gIC9CQm94IFs4MyA0NDAgMTc4IDQ1M10KLT4+Ci1zdHJlYW0KLTAuMCAxLjAgMS4wIHJnCi04MyA0NDAgbQotMTc4IDQ0MCBsCi0xNzggNDUzIGwKLTgzIDQ1MyBsCi1oIGYKLWVuZHN0cmVhbQotZW5kb2JqCi0xMyAwIG9iaiA8PAotICAvVHlwZSAvWE9iamVjdAotICAvU3VidHlwZSAvRm9ybQotICAvRm9ybVR5cGUgMQotICAvTGVuZ3RoIDE4Ci0gIC9CQm94IFsxNDkgNDc2IDE5MSA0ODddCi0gIC9SZXNvdXJjZXMgPDwKLSAgICAvWE9iamVjdCA8PAotICAgICAgL0Zvcm0wIDE0IDAgUgotICAgID4+Ci0gICAgL0V4dEdTdGF0ZSA8PAotICAgICAgL0dTMCAyNCAwIFIKLSAgICA+PgotICA+PgotPj4KLXN0cmVhbQotL0dTMCBncwotL0Zvcm0wIERvCi1lbmRzdHJlYW0KLWVuZG9iagotMTQgMCBvYmogPDwKLSAgL1R5cGUgL1hPYmplY3QKLSAgL1N1YnR5cGUgL0Zvcm0KLSAgL0Zvcm1UeXBlIDEKLSAgL0dyb3VwIDw8Ci0gICAgL1MgL1RyYW5zcGFyZW5jeQotICA+PgotICAvTGVuZ3RoIDU5Ci0gIC9CQm94IFsxNDkgNDc2IDE5MSA0ODddCi0+Pgotc3RyZWFtCi0wLjAgMS4wIDAuMCByZwotMTQ5IDQ3NiBtCi0xOTEgNDc2IGwKLTE5MSA0ODcgbAotMTQ5IDQ4NyBsCi1oIGYKLWVuZHN0cmVhbQotZW5kb2JqCi0xNSAwIG9iaiA8PAotICAvVHlwZSAvQW5ub3QKLSAgL1N1YnR5cGUgL0xpbmsKLSAgL0JTIDw8Ci0gICAgL1cgMAotICA+PgotICAvUmVjdCBbNjkgNjMzIDU0MiA2NTNdCi0gIC9EZXN0IFszIDAgUiAvWFlaIDIwMCA3MjUgMF0KLSAgL0YgNAotPj4KLWVuZG9iagotMTYgMCBvYmogPDwKLSAgL1R5cGUgL0Fubm90Ci0gIC9TdWJ0eXBlIC9MaW5rCi0gIC9CUyA8PAotICAgIC9XIDAKLSAgPj4KLSAgL1JlY3QgWzgwIDYxMyA1NDIgNjMzXQotICAvRGVzdCBbNCAwIFIgL1hZWiAyMDAgNzI1IDBdCi0gIC9GIDQKLT4+Ci1lbmRvYmoKLTE3IDAgb2JqIDw8Ci0gIC9UeXBlIC9Bbm5vdAotICAvU3VidHlwZSAvTGluawotICAvQlMgPDwKLSAgICAvVyAwCi0gID4+Ci0gIC9SZWN0IFs2NiA1MjkgMTk2IDU0NF0KLSAgL0EgPDwKLSAgICAvVHlwZSAvQWN0aW9uCi0gICAgL1VSSSAoaHR0cHM6Ly93d3cuYWRvYmUuY29tL2NvbnRlbnQvZGFtL2Fjb20vZW4vZGV2bmV0L2Fjcm9iYXQvcGRmcy9wZGZfcmVmZXJlbmNlXzEtNy5wZGYpCi0gICAgL1MgL1VSSQotICA+PgotICAvRiA0Ci0+PgotZW5kb2JqCi0xOCAwIG9iaiA8PAotICAvVHlwZSAvQW5ub3QKLSAgL1N1YnR5cGUgL0xpbmsKLSAgL0JTIDw8Ci0gICAgL1cgMAotICA+PgotICAvUmVjdCBbODMgNDQwIDE3OCA0NTNdCi0gIC9RdWFkUG9pbnRzIFs4MyA0NTMgMTc4IDQ1MyA4MyA0NDAgMTc4IDQ0MF0KLSAgL0EgPDwKLSAgICAvVHlwZSAvQWN0aW9uCi0gICAgL1VSSSAoaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL3RoaXJkX3BhcnR5L3BkZml1bS9wdWJsaWMvZnBkZl90ZXh0LmgpCi0gICAgL1MgL1VSSQotICA+PgotICAvRiA0Ci0+PgotZW5kb2JqCi0xOSAwIG9iaiA8PAotICAvVHlwZSAvQW5ub3QKLSAgL1N1YnR5cGUgL0hpZ2hsaWdodAotICAvQVAgPDwKLSAgICAvTiA5IDAgUgotICA+PgotICAvTk0gKEhpZ2hsaWdodC0xKQotICAvRiA0Ci0gIC9RdWFkUG9pbnRzIFsyOTMgNTQyIDM0OSA1NDIgMjkzIDUzMCAzNDkgNTMwXQotICAvUCAzIDAgUgotICAvQyBbMSAwLjkwMTk2IDBdCi0gIC9SZWN0IFsyOTMgNTMwIDM0OSA1NDJdCi0+PgotZW5kb2JqCi0yMCAwIG9iaiA8PAotICAvVHlwZSAvQW5ub3QKLSAgL1N1YnR5cGUgL0hpZ2hsaWdodAotICAvQVAgPDwKLSAgICAvTiAxMSAwIFIKLSAgPj4KLSAgL05NIChIaWdobGlnaHQtMikKLSAgL0YgNAotICAvUXVhZFBvaW50cyBbODMgNDUzIDE3OCA0NTMgODMgNDQwIDE3OCA0NDBdCi0gIC9QIDMgMCBSCi0gIC9DIFswLjI2NjY3IDAuNzg0MzEgMC45NjA3OF0KLSAgL1JlY3QgWzgzIDQ0MCAxNzggNDUzXQotPj4KLWVuZG9iagotMjEgMCBvYmogPDwKLSAgL1R5cGUgL0Fubm90Ci0gIC9TdWJ0eXBlIC9Qb3B1cAotICAvUGFyZW50IDIyIDAgUgotICAvUmVjdCBbMTkxIDM3NyA0NDMgNDg4XQotPj4KLWVuZG9iagotMjIgMCBvYmogPDwKLSAgL1R5cGUgL0Fubm90Ci0gIC9TdWJ0eXBlIC9IaWdobGlnaHQKLSAgL1BvcHVwIDIxIDAgUgotICAvQVAgPDwKLSAgICAvTiAxMyAwIFIKLSAgPj4KLSAgL05NIChIaWdobGlnaHQtV2l0aC1Qb3B1cC0xKQotICAvQ29udGVudHMgKFRleHQgTm90ZSkKLSAgL1F1YWRQb2ludHMgWzE0OSA0ODcgMTkxIDQ4NyAxNDkgNDc2IDE5MSA0NzZdCi0gIC9QIDMgMCBSCi0gIC9DIFswLjE0OTAyIDAuOTAxOTYgMF0KLSAgL1JlY3QgWzE0OSA0NzYgMTkxIDQ4N10KLSAgL0YgNAotPj4KLWVuZG9iagotMjMgMCBvYmogPDwKLSAgL2NhIDEKLSAgL1R5cGUgL0V4dEdTdGF0ZQotICAvQ0EgMQotICAvQk0gL05vcm1hbAotPj4KLWVuZG9iagotMjQgMCBvYmogPDwKLSAgL2NhIDEKLSAgL1R5cGUgL0V4dEdTdGF0ZQotICAvQ0EgMQotICAvQUlTIGZhbHNlCi0gIC9CTSAvTXVsdGlwbHkKLT4+Ci1lbmRvYmoKLXhyZWYKLTAgMjUKLTAwMDAwMDAwMDAgNjU1MzUgZiAKLTAwMDAwMDAwMTUgMDAwMDAgbiAKLTAwMDAwMDAwNjggMDAwMDAgbiAKLTAwMDAwMDAzMzggMDAwMDAgbiAKLTAwMDAwMDA0NzUgMDAwMDAgbiAKLTAwMDAwMDA1NzAgMDAwMDAgbiAKLTAwMDAwMDExMDggMDAwMDAgbiAKLTAwMDAwMDEzNDUgMDAwMDAgbiAKLTAwMDAwMDE0MjMgMDAwMDAgbiAKLTAwMDAwMDE0OTkgMDAwMDAgbiAKLTAwMDAwMDE3NDkgMDAwMDAgbiAKLTAwMDAwMDE5NzIgMDAwMDAgbiAKLTAwMDAwMDIyMjIgMDAwMDAgbiAKLTAwMDAwMDI0NDIgMDAwMDAgbiAKLTAwMDAwMDI2OTMgMDAwMDAgbiAKLTAwMDAwMDI5MTYgMDAwMDAgbiAKLTAwMDAwMDMwNTYgMDAwMDAgbiAKLTAwMDAwMDMxOTYgMDAwMDAgbiAKLTAwMDAwMDM0NDMgMDAwMDAgbiAKLTAwMDAwMDM3MjcgMDAwMDAgbiAKLTAwMDAwMDM5NDQgMDAwMDAgbiAKLTAwMDAwMDQxNzEgMDAwMDAgbiAKLTAwMDAwMDQyNjkgMDAwMDAgbiAKLTAwMDAwMDQ1NDQgMDAwMDAgbiAKLTAwMDAwMDQ2MTUgMDAwMDAgbiAKLXRyYWlsZXIgPDwKLSAgL1Jvb3QgMSAwIFIKLSAgL1NpemUgMjUKLT4+Ci1zdGFydHhyZWYKLTQ3MDEKLSUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9saXN0Ym94X2Zvcm0uaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9saXN0Ym94X2Zvcm0uaW4KaW5kZXggMzU0ZDg0MS4uMDU0ZjIxYiAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvbGlzdGJveF9mb3JtLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2xpc3Rib3hfZm9ybS5pbgpAQCAtMyw3ICszLDcgQEAKICAgL1R5cGUgL0NhdGFsb2cKICAgL1BhZ2VzIDIgMCBSCiAgIC9BY3JvRm9ybSA8PAotICAgIC9GaWVsZHMgWyA4IDAgUiA5IDAgUiAxMCAwIFIgMTEgMCBSIDEyIDAgUiBdCisgICAgL0ZpZWxkcyBbOCAwIFIgOSAwIFIgMTAgMCBSIDExIDAgUiAxMiAwIFIgMTMgMCBSIDE0IDAgUl0KICAgICAvRFIgNCAwIFIKICAgPj4KID4+CkBAIC0xMSwxNiArMTEsMTYgQEAKIHt7b2JqZWN0IDIgMH19IDw8CiAgIC9UeXBlIC9QYWdlcwogICAvQ291bnQgMQotICAvS2lkcyBbIDMgMCBSIF0KKyAgL0tpZHMgWzMgMCBSXQogPj4KIGVuZG9iagoge3tvYmplY3QgMyAwfX0gPDwKICAgL1R5cGUgL1BhZ2UKICAgL1BhcmVudCAyIDAgUgogICAvUmVzb3VyY2VzIDQgMCBSCi0gIC9NZWRpYUJveCBbIDAgMCAzMDAgNjAwIF0KKyAgL01lZGlhQm94IFswIDAgMzAwIDYwMF0KICAgL0NvbnRlbnRzIDcgMCBSCi0gIC9Bbm5vdHMgWyA4IDAgUiA5IDAgUiAxMCAwIFIgMTEgMCBSIDEyIDAgUiBdCisgIC9Bbm5vdHMgWzggMCBSIDkgMCBSIDEwIDAgUiAxMSAwIFIgMTIgMCBSIDEzIDAgUiAxNCAwIFJdCiA+PgogZW5kb2JqCiB7e29iamVjdCA0IDB9fSA8PApAQCAtNTYsNyArNTYsNyBAQAogICAvRmYgMAogICAvVCAoTGlzdGJveF9TaW5nbGVTZWxlY3QpCiAgIC9EQSAoMCAwIDAgcmcgL0YxIDEyIFRmKQotICAvUmVjdCBbIDEwMCAzNTAgMjAwIDM4MCBdCisgIC9SZWN0IFsxMDAgMzUwIDIwMCAzODBdCiAgIC9PcHQgW1soZm9vKSAoRm9vKV0gWyhiYXIpIChCYXIpXSBbKHF1eCkgKFF1eCldXQogPj4KIGVuZG9iagpAQCAtNjcsNyArNjcsNyBAQAogICAvRmYgMjA5NzE1MgogICAvVCAoTGlzdGJveF9NdWx0aVNlbGVjdCkKICAgL0RBICgwIDAgMCByZyAvRjEgMTIgVGYpCi0gIC9SZWN0IFsgMTAwIDQwMCAyMDAgNDMwIF0KKyAgL1JlY3QgWzEwMCA0MDAgMjAwIDQzMF0KICAgL09wdCBbKEFwcGxlKSAoQmFuYW5hKSAoQ2hlcnJ5KSAoRGF0ZSkgKEVsZGVyYmVycnkpIChGaWcpIChHdWF2YSkgKEhvbmV5ZGV3KQogICAgICAgICAoSW5kaWFuIEZpZykgKEphY2tmcnVpdCkgKEtpd2kpIChMZW1vbikgKE1hbmdvKSAoTmVjdGFyaW5lKSAoT3JhbmdlKQogICAgICAgICAoUGVyc2ltbW9uKSAoUXVpbmNlKSAoUmFzcGJlcnJ5KSAoU3RyYXdiZXJyeSkgKFRhbWFyaW5kKSAoVWdsaSBGcnVpdCkKQEAgLTgyLDcgKzgyLDcgQEAKICAgL0ZmIDEKICAgL1QgKExpc3Rib3hfUmVhZE9ubHkpCiAgIC9EQSAoMCAwIDAgcmcgL0YxIDEyIFRmKQotICAvUmVjdCBbIDEwMCA1MDAgMjAwIDUzMCBdCisgIC9SZWN0IFsxMDAgNTAwIDIwMCA1MzBdCiAgIC9PcHQgWyhEb2cpIChFbGVwaGFudCkgKEZyb2cpXQogPj4KIGVuZG9iagpAQCAtOTEsMjQgKzkxLDQ5IEBACiAgIC9TdWJ0eXBlIC9XaWRnZXQKICAgL0ZUIC9DaAogICAvRmYgMjA5NzE1MgotICAvVCAoTGlzdGJveF9NdWx0aVNlbGVjdE11bHRpcGxlU2VsZWN0ZWQpCisgIC9UIChMaXN0Ym94X011bHRpU2VsZWN0TXVsdGlwbGVJbmRpY2VzKQogICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKLSAgL1JlY3QgWyAxMDAgMjAwIDIwMCAyMzAgXQotICAvT3B0IFsoQWxwaGEpIChCZXRhKSAoR2FtbWEpIChEZWx0YSkgKEVwc2lsb24pXQotICAvViBbKEVwc2lsb24pIChHYW1tYSldCisgIC9SZWN0IFsxMDAgMjUwIDIwMCAyODBdCisgIC9PcHQgWyhBbGJhbmlhKSAoQmVsZ2l1bSkgKENyb2F0aWEpIChEZW5tYXJrKSAoRXN0b25pYSldCisgIC9JIFsxIDNdCiA+PgogZW5kb2JqCiB7e29iamVjdCAxMiAwfX0gPDwKICAgL1R5cGUgL0Fubm90CiAgIC9TdWJ0eXBlIC9XaWRnZXQKICAgL0ZUIC9DaAorICAvRmYgMjA5NzE1MgorICAvVCAoTGlzdGJveF9NdWx0aVNlbGVjdE11bHRpcGxlVmFsdWVzKQorICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKKyAgL1JlY3QgWzEwMCAyMDAgMjAwIDIzMF0KKyAgL09wdCBbKEFscGhhKSAoQmV0YSkgKEdhbW1hKSAoRGVsdGEpIChFcHNpbG9uKV0KKyAgL1YgWyhFcHNpbG9uKSAoR2FtbWEpXQorPj4KK2VuZG9iagore3tvYmplY3QgMTMgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvQ2gKKyAgL0ZmIDIwOTcxNTIKKyAgL1QgKExpc3Rib3hfTXVsdGlTZWxlY3RNdWx0aXBsZU1pc21hdGNoKQorICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKKyAgL1JlY3QgWzEwMCAxNTAgMjAwIDE4MF0KKyAgL09wdCBbKEFsbGlnYXRvcikgKEJlYXIpIChDb3VnYXIpIChEZWVyKSAoRWNoaWRuYSldCisgIC9WIFsoQWxsaWdhdG9yKSAoQ291Z2FyKV0KKyAgL0kgWzEgMyA0XQorPj4KK2VuZG9iagore3tvYmplY3QgMTQgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvQ2gKICAgL0ZmIDAKICAgL1QgKExpc3Rib3hfU2luZ2xlU2VsZWN0TGFzdFNlbGVjdGVkKQogICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKLSAgL1JlY3QgWyAxMDAgMTAwIDIwMCAxMzAgXQorICAvUmVjdCBbMTAwIDEwMCAyMDAgMTMwXQogICAvT3B0IFsoQWxiZXJ0YSkgKEJyaXRpc2ggQ29sdW1iaWEpIChNYW5pdG9iYSkgKE5ldyBCcnVuc3dpY2spCiAgICAgICAgIChOZXdmb3VuZGxhbmQgYW5kIExhYnJhZG9yKSAoTm92YSBTY290aWEpIChPbnRhcmlvKQotICAgICAgICAoUHJpbmNlIEVkd2FyZCBJc2xhbmQpIChRdWViZWMpIChTYXNrYXRjaGV3YW4pIF0KKyAgICAgICAgKFByaW5jZSBFZHdhcmQgSXNsYW5kKSAoUXVlYmVjKSAoU2Fza2F0Y2hld2FuKV0KICAgL1YgKFNhc2thdGNoZXdhbikKICAgL1RJIDkKID4+CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9saXN0Ym94X2Zvcm0ucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvbGlzdGJveF9mb3JtLnBkZgppbmRleCA5ZTEzOTNlLi4xMGM1NzAyIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9saXN0Ym94X2Zvcm0ucGRmCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL2xpc3Rib3hfZm9ybS5wZGYKQEAgLTQsNyArNCw3IEBACiAgIC9UeXBlIC9DYXRhbG9nCiAgIC9QYWdlcyAyIDAgUgogICAvQWNyb0Zvcm0gPDwKLSAgICAvRmllbGRzIFsgOCAwIFIgOSAwIFIgMTAgMCBSIDExIDAgUiAxMiAwIFIgXQorICAgIC9GaWVsZHMgWzggMCBSIDkgMCBSIDEwIDAgUiAxMSAwIFIgMTIgMCBSIDEzIDAgUiAxNCAwIFJdCiAgICAgL0RSIDQgMCBSCiAgID4+CiA+PgpAQCAtMTIsMTYgKzEyLDE2IEBACiAyIDAgb2JqIDw8CiAgIC9UeXBlIC9QYWdlcwogICAvQ291bnQgMQotICAvS2lkcyBbIDMgMCBSIF0KKyAgL0tpZHMgWzMgMCBSXQogPj4KIGVuZG9iagogMyAwIG9iaiA8PAogICAvVHlwZSAvUGFnZQogICAvUGFyZW50IDIgMCBSCiAgIC9SZXNvdXJjZXMgNCAwIFIKLSAgL01lZGlhQm94IFsgMCAwIDMwMCA2MDAgXQorICAvTWVkaWFCb3ggWzAgMCAzMDAgNjAwXQogICAvQ29udGVudHMgNyAwIFIKLSAgL0Fubm90cyBbIDggMCBSIDkgMCBSIDEwIDAgUiAxMSAwIFIgMTIgMCBSIF0KKyAgL0Fubm90cyBbOCAwIFIgOSAwIFIgMTAgMCBSIDExIDAgUiAxMiAwIFIgMTMgMCBSIDE0IDAgUl0KID4+CiBlbmRvYmoKIDQgMCBvYmogPDwKQEAgLTU3LDcgKzU3LDcgQEAKICAgL0ZmIDAKICAgL1QgKExpc3Rib3hfU2luZ2xlU2VsZWN0KQogICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKLSAgL1JlY3QgWyAxMDAgMzUwIDIwMCAzODAgXQorICAvUmVjdCBbMTAwIDM1MCAyMDAgMzgwXQogICAvT3B0IFtbKGZvbykgKEZvbyldIFsoYmFyKSAoQmFyKV0gWyhxdXgpIChRdXgpXV0KID4+CiBlbmRvYmoKQEAgLTY4LDcgKzY4LDcgQEAKICAgL0ZmIDIwOTcxNTIKICAgL1QgKExpc3Rib3hfTXVsdGlTZWxlY3QpCiAgIC9EQSAoMCAwIDAgcmcgL0YxIDEyIFRmKQotICAvUmVjdCBbIDEwMCA0MDAgMjAwIDQzMCBdCisgIC9SZWN0IFsxMDAgNDAwIDIwMCA0MzBdCiAgIC9PcHQgWyhBcHBsZSkgKEJhbmFuYSkgKENoZXJyeSkgKERhdGUpIChFbGRlcmJlcnJ5KSAoRmlnKSAoR3VhdmEpIChIb25leWRldykKICAgICAgICAgKEluZGlhbiBGaWcpIChKYWNrZnJ1aXQpIChLaXdpKSAoTGVtb24pIChNYW5nbykgKE5lY3RhcmluZSkgKE9yYW5nZSkKICAgICAgICAgKFBlcnNpbW1vbikgKFF1aW5jZSkgKFJhc3BiZXJyeSkgKFN0cmF3YmVycnkpIChUYW1hcmluZCkgKFVnbGkgRnJ1aXQpCkBAIC04Myw3ICs4Myw3IEBACiAgIC9GZiAxCiAgIC9UIChMaXN0Ym94X1JlYWRPbmx5KQogICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKLSAgL1JlY3QgWyAxMDAgNTAwIDIwMCA1MzAgXQorICAvUmVjdCBbMTAwIDUwMCAyMDAgNTMwXQogICAvT3B0IFsoRG9nKSAoRWxlcGhhbnQpIChGcm9nKV0KID4+CiBlbmRvYmoKQEAgLTkyLDQ3ICs5Miw3NCBAQAogICAvU3VidHlwZSAvV2lkZ2V0CiAgIC9GVCAvQ2gKICAgL0ZmIDIwOTcxNTIKLSAgL1QgKExpc3Rib3hfTXVsdGlTZWxlY3RNdWx0aXBsZVNlbGVjdGVkKQorICAvVCAoTGlzdGJveF9NdWx0aVNlbGVjdE11bHRpcGxlSW5kaWNlcykKICAgL0RBICgwIDAgMCByZyAvRjEgMTIgVGYpCi0gIC9SZWN0IFsgMTAwIDIwMCAyMDAgMjMwIF0KLSAgL09wdCBbKEFscGhhKSAoQmV0YSkgKEdhbW1hKSAoRGVsdGEpIChFcHNpbG9uKV0KLSAgL1YgWyhFcHNpbG9uKSAoR2FtbWEpXQorICAvUmVjdCBbMTAwIDI1MCAyMDAgMjgwXQorICAvT3B0IFsoQWxiYW5pYSkgKEJlbGdpdW0pIChDcm9hdGlhKSAoRGVubWFyaykgKEVzdG9uaWEpXQorICAvSSBbMSAzXQogPj4KIGVuZG9iagogMTIgMCBvYmogPDwKICAgL1R5cGUgL0Fubm90CiAgIC9TdWJ0eXBlIC9XaWRnZXQKICAgL0ZUIC9DaAorICAvRmYgMjA5NzE1MgorICAvVCAoTGlzdGJveF9NdWx0aVNlbGVjdE11bHRpcGxlVmFsdWVzKQorICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKKyAgL1JlY3QgWzEwMCAyMDAgMjAwIDIzMF0KKyAgL09wdCBbKEFscGhhKSAoQmV0YSkgKEdhbW1hKSAoRGVsdGEpIChFcHNpbG9uKV0KKyAgL1YgWyhFcHNpbG9uKSAoR2FtbWEpXQorPj4KK2VuZG9iagorMTMgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9DaAorICAvRmYgMjA5NzE1MgorICAvVCAoTGlzdGJveF9NdWx0aVNlbGVjdE11bHRpcGxlTWlzbWF0Y2gpCisgIC9EQSAoMCAwIDAgcmcgL0YxIDEyIFRmKQorICAvUmVjdCBbMTAwIDE1MCAyMDAgMTgwXQorICAvT3B0IFsoQWxsaWdhdG9yKSAoQmVhcikgKENvdWdhcikgKERlZXIpIChFY2hpZG5hKV0KKyAgL1YgWyhBbGxpZ2F0b3IpIChDb3VnYXIpXQorICAvSSBbMSAzIDRdCis+PgorZW5kb2JqCisxNCAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL0NoCiAgIC9GZiAwCiAgIC9UIChMaXN0Ym94X1NpbmdsZVNlbGVjdExhc3RTZWxlY3RlZCkKICAgL0RBICgwIDAgMCByZyAvRjEgMTIgVGYpCi0gIC9SZWN0IFsgMTAwIDEwMCAyMDAgMTMwIF0KKyAgL1JlY3QgWzEwMCAxMDAgMjAwIDEzMF0KICAgL09wdCBbKEFsYmVydGEpIChCcml0aXNoIENvbHVtYmlhKSAoTWFuaXRvYmEpIChOZXcgQnJ1bnN3aWNrKQogICAgICAgICAoTmV3Zm91bmRsYW5kIGFuZCBMYWJyYWRvcikgKE5vdmEgU2NvdGlhKSAoT250YXJpbykKLSAgICAgICAgKFByaW5jZSBFZHdhcmQgSXNsYW5kKSAoUXVlYmVjKSAoU2Fza2F0Y2hld2FuKSBdCisgICAgICAgIChQcmluY2UgRWR3YXJkIElzbGFuZCkgKFF1ZWJlYykgKFNhc2thdGNoZXdhbildCiAgIC9WIChTYXNrYXRjaGV3YW4pCiAgIC9USSA5CiA+PgogZW5kb2JqCiB4cmVmCi0wIDEzCiswIDE1CiAwMDAwMDAwMDAwIDY1NTM1IGYgCiAwMDAwMDAwMDE1IDAwMDAwIG4gCi0wMDAwMDAwMTUxIDAwMDAwIG4gCi0wMDAwMDAwMjE2IDAwMDAwIG4gCi0wMDAwMDAwMzc5IDAwMDAwIG4gCi0wMDAwMDAwNDE0IDAwMDAwIG4gCi0wMDAwMDAwNDQ3IDAwMDAwIG4gCi0wMDAwMDAwNTIzIDAwMDAwIG4gCi0wMDAwMDAwNjI1IDAwMDAwIG4gCi0wMDAwMDAwODMyIDAwMDAwIG4gCi0wMDAwMDAxMzAyIDAwMDAwIG4gCi0wMDAwMDAxNDg4IDAwMDAwIG4gCi0wMDAwMDAxNzQxIDAwMDAwIG4gCiswMDAwMDAwMTYzIDAwMDAwIG4gCiswMDAwMDAwMjI2IDAwMDAwIG4gCiswMDAwMDAwMzk5IDAwMDAwIG4gCiswMDAwMDAwNDM0IDAwMDAwIG4gCiswMDAwMDAwNDY3IDAwMDAwIG4gCiswMDAwMDAwNTQzIDAwMDAwIG4gCiswMDAwMDAwNjQ1IDAwMDAwIG4gCiswMDAwMDAwODUwIDAwMDAwIG4gCiswMDAwMDAxMzE4IDAwMDAwIG4gCiswMDAwMDAxNTAyIDAwMDAwIG4gCiswMDAwMDAxNzQ3IDAwMDAwIG4gCiswMDAwMDAxOTk2IDAwMDAwIG4gCiswMDAwMDAyMjY3IDAwMDAwIG4gCiB0cmFpbGVyIDw8CiAgIC9Sb290IDEgMCBSCi0gIC9TaXplIDEzCisgIC9TaXplIDE1CiA+Pgogc3RhcnR4cmVmCi0yMTE5CisyNjQyCiAlJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvbWFya2VkX2NvbnRlbnRfaWQuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9tYXJrZWRfY29udGVudF9pZC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmMyMTdmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvbWFya2VkX2NvbnRlbnRfaWQuaW4KQEAgLTAsMCArMSwyMzUgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9NYXJrSW5mbyA8PAorICAgIC9NYXJrZWQgdHJ1ZQorICA+PgorICAvUGFnZXMgMiAwIFIKKyAgL1N0cnVjdFRyZWVSb290IDExIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VDXQorICAgIC9Db2xvclNwYWNlIDw8CisgICAgICAvQ1MwIC9EZXZpY2VSR0IKKyAgICA+PgorICAgIC9Gb250IDw8CisgICAgICAvVFQwIDUgMCBSCisgICAgPj4KKyAgICAvWE9iamVjdCA8PAorICAgICAgL0ltMCA5IDAgUgorICAgID4+CisgID4+CisgIC9TdHJ1Y3RQYXJlbnRzIDAKKyAgL1RhYnMgL1MKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKy9BcnRpZmFjdCA8PAorICAvVHlwZSAvTGF5b3V0CisgIC9CQm94IFs0MDggNTE2IDQxMSA1MjIgXQorPj4KK0JEQworcQorMTggNDAgNTc2IDczNCByZQorVyBuCitCVAorL0NTMCBjcyAwIDAgMCAgc2NuCisvVFQwIDEgVGYKKzMgVHIgMTIgMCAwIDEyIDQwOC4zNTk5IDUxNiBUbQorKCEpVGoKK0VUCitFTUMKKy9GaWd1cmUgPDwKKyAgL01DSUQgMAorPj4KK0JEQworL0NsaXBTcGFuCitCTUMKK1EKK3EKKy9DbGlwCitCTUMKKzIwMy41MiA1MTYgMjA0Ljk2IDIwNCByZQorVyBuCitFTUMKK3EKKy9QZXJjZXB0dWFsIHJpCisyMDQuOTYgMCAwIDIwNCAyMDMuNTIgNTE2IGNtCisvSW0wIERvCitRCitFTUMKK0VNQworUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UcnVlVHlwZQorICAvQmFzZUZvbnQgL0tQUkdPRytDYWxpYnJpCisgIC9GaXJzdENoYXIgMzMKKyAgL0ZvbnREZXNjcmlwdG9yIDYgMCBSCisgIC9MYXN0Q2hhciAzMworICAvVG9Vbmljb2RlIDggMCBSCisgIC9XaWR0aHMgWzIyNl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9Gb250RGVzY3JpcHRvcgorICAvQXNjZW50IDk1MgorICAvQXZnV2lkdGggNTIxCisgIC9DYXBIZWlnaHQgNjQ0CisgIC9EZXNjZW50IC0yNjkKKyAgL0ZsYWdzIDQKKyAgL0ZvbnRCQm94IFstNTAzIC0zMDcgMTI0MCAxMDI2XQorICAvRm9udEZpbGUyIDcgMCBSCisgIC9Gb250TmFtZSAvS1BSR09HK0NhbGlicmkKKyAgL0l0YWxpY0FuZ2xlIDAKKyAgL01heFdpZHRoIDEzMjgKKyAgL1N0ZW1WIDAKKyAgL1hIZWlnaHQgNDc2Cis+PgorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICAvRmlsdGVyIFsvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGVdCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0doT1lzLlNYTDQ/dGBxVUFtZTBUOWU5WlAiMyhIZCtkSld0UjBNY14hL1ZMMFdKTiY4NS9TSGIyVGwoLTVpa15qS00iXk84SGs+IyFAMFhGCitucm1NUTIqY2FGMm1FRiE1L1NCYDxsZHFYOW5kUFNFXjUjTio1aCZBKzxdU0JVVlZOZUplI1RbJF1PSnA0NmRdJkpqOThRKSdSUl9OK1EkcworJjdAS0FeczledVYiR1ZaVFNjaiVaNjRFTlZMQi0lJy5OSkwySUA9STNQXFApP2U6ZUtkMi4uKlxjO1slXCF1c3VMRGMycyNySTI2QWhOdG4KK15VRyRzXC8sI0Fva09UaylbOGJnLVNWZ3AhTDk0MldlU1VjMFgoUjQiK3FlJktSb2ciI1Q0SV0pJlc+ZjFMRlZRIjMoQyhLLWMuJ0stKnBaCitUVjxQR01zckkrWlx1JTovKlNkVldpTU8qKV1SSGJSQDonJy8rRz9GYEQiTSJtP2lsbWpIdTwnP205YmYrP2glQVYqQGkkcmRXVWdsQkxcUgorTio1ODxwZEtHXD1JRVxGS1FNJzEiYk5MTEQ9aEFsUkckOFw9WlArbGJhayEyRidPdUpZbVxeM01USDNGRSFYUkNNOTYxMnMxUVwicFppSkMKK2hmIS5uU0RSODRmclNdTTxMQEU8RUE0WiVaMGRYOk9PVVI6b0YwYXIoMT8pOigoXzI/P2wnSTpkO1hzPGdFbkJQMS4rTjEnT29YIz9WIjkpCis2MmYqSyEiOiU+SjA5JmNHQVpOXVNCUmUnOUotPHRkVklrfj4KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvQ0lESW5pdCAvUHJvY1NldCBmaW5kcmVzb3VyY2UgYmVnaW4KKzEyIGRpY3QgYmVnaW4KK2JlZ2luY21hcAorL0NJRFN5c3RlbUluZm8gPDwKKyAgL1JlZ2lzdHJ5IChBZG9iZSkKKyAgL09yZGVyaW5nIChVQ1MpCisgIC9TdXBwbGVtZW50IDAKKz4+IGRlZgorL0NNYXBOYW1lIC9BZG9iZS1JZGVudGl0eS1VQ1MgZGVmCisvQ01hcFR5cGUgMiBkZWYKKzEgYmVnaW5jb2Rlc3BhY2VyYW5nZQorPDAwPjxGRj4KK2VuZGNvZGVzcGFjZXJhbmdlCisxIGJlZ2luYmZyYW5nZQorPDIxPjwyMT48MDAwOT4KK2VuZGJmcmFuZ2UKK2VuZGNtYXAKK0NNYXBOYW1lIGN1cnJlbnRkaWN0IC9DTWFwIGRlZmluZXJlc291cmNlIHBvcAorZW5kCitlbmQKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgWy9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL0hlaWdodCAyNzIKKyAgL0ludGVudCAvUGVyY2VwdHVhbAorICAvSW50ZXJwb2xhdGUgdHJ1ZQorICAvU01hc2sgMTAgMCBSCisgIC9XaWR0aCAyNzMKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorR2hWUT1CcmtULyo8PlRucClbS107Tk5PJzsoLFksZTNbcmVaQlFRP1chS2Y8W0E/O3AuVV9JbC9NMzQ4O01FJSs1WDUlW2AkSy5sMWIodEcKK1RMTVoyK1hXV3AnMTM9amBcaVBrKUUxbz9WV1tac0grLyFFWU89WlRxK1o7W21bWjAuZ2M5JDBJcUg3Y0wmS3M2enp6enp6enp6enp6enp6Cit6enp6enp6enp6emk1a1dQRDUhRGFjYCZTZVEwXCJnRz9kMmVkLjtWJUhgbV4pXD9rR0FEZD1AOlZENGpYRWE8UEpHLFdgZ2JJKVpyUSFyRQorbXE8Y1g4X3A+ZSZXOmlJTWpVXUFjO1BwTVglSDg8R2hWMGZmMytXWiFISUlLRF8ya2NwKExFc0pvQlMmKFttKGpOPj85WDRJc2xcQEIpVkgKK2VpP1BOOi1iVWQ6ZXMxYTQ2YC5jNCNvU0tbWyZOX0hwZyNFKDJldDhkTmpPbzRZXG82bUM/OCYwPXJbMEJTRFFOQmxbTEhycmluRVNOMmFNCitIXVhbc2hGU2Q2WXA2dTsvaCcrR0BkQ3JiYSVGaCtWSWVXIVNJImM8MjU1ai0ocytyVk5IcjFwOG04LztILylRI1BoQS87aVoxYE07ZEhUagorLCpcczM4XCtkLTouSGZKIkMyWj5MWk1yO0VyI3NnOERYQj9CKj9AJi9QT0o9MlJwLmFjSDFTJ2M6MGglUWYxL3AoX1dVWVAuLkhvcV9sQzcKK1VxVyc+SjlVSWphLz03NEgvSWZKMFVOU0s+W0VBLWlNO183QjtzIz1qRjY1bj1WQz5aU10pQ111ITxMclZQKUV0LWhRXktpP1s8YVUyV01pCitTW3JHazVbI2ctMEkvQzNrK2Q3NWg7JFRpOE8rKE50OmRYO19HRD9FKVYhOlxCOXVCSk4/ZUA+JjRkIWtncEZqaTdyNSNLYWtPcDQkbmttZgorJ2VPc0NjQFxedVg9LzY2I19qQjVJbitpUTU3UVAnaE1pU2UsaTNYayo4XE1lY1pbLHMnXlsmYytoIVQ5azg1amhNJidyLSVSMjUnU1ZIR0IKKzlrI1hWXzlSPyNCRGhmSkxULFpyZURganJyXnFrYEgtZUlHV15bMEBdXS03YUJBXC4+bm5Gc1E0YDFHXTtcOUBrdDRcX0RncTQnOFdQai0kCit1X2xITkJeWUNSOU9Fazs2TmdGPClWJjwucyQnVFtVOi9VQSVHRCRoPV5HZUBWV3RGdXRRKmlCbGw4SjJWRjg3OG1TMmU2cXFzc0FJXSg1SgordWx0YjJgLCVUOHJSNTVaKCNoUFQzYzwzbVFNRDpydEBpbWN1aHNRZydCQj1tQ2M6b2JOW0FXLFZEciovVkNSR1oiVkVFVnM7LylfMEFGO0sKK0NRUy9UNDA0KkNAME5yYGtxbUIrRiZca1thXTNNZzRWQWMuSnAwNWhrYFo/KiZAak8yRlI1ZUI4UWI3RWBSWEVcJ21WUCQ9alpLayphLT08CitvJTw0TmpAOWkxSCsjZ0dfVlMpKExcS1BpbjFpYWJnRTdSbFxgSG50M2UldS1AaW5YTWw0LDdKRTVIJ1w+b0deXUMvUjgyRHFOLlsvWjVUVAorQWJqNy9zNSQrLVw0S3VKIWskUyIrb1RjM0BwXUN1OkhDalFcKCJMaVZfXDxwRmNnTW1KT0dQTDpFZzBdZFVPYjEyaVtUM0BFVjM9W0dsPE8KKzMxOUhvQ2VVQVBVPl9jWTU8Ry1DbDE/SE1dOUZuO0krXUdQdC9qNmIycT1vczZLS243ZEhbIUc/RjUicXBNUVlVOT1mXjptKkgjJmgjYXQhCisuU2MhLD1jL1czPj44REI1YVgpOUVjS0QqIjkkPGExOVorSFxmU1FyJzY2JF1OKkFaMCVmYVZUR01UKTplTyo7KFtQUEgkTG8+SWEuRGFwNworaVE3OltTUi5LdCRuRTtfZUtETm1yU1ZZYlRuZWkvYW0pTW9FVlknI1o9RUEqJ0IhIVtCaVxVMVhycTxyXC9PSlQoMnMqSiNBdTVMclopYz4KKy0oVjw6RWJmNGRJZDZELUdkQS04dUVhODElQyMtdSdmYyZGWWZVKVZUMmpxakVkXlYjRzY1QSxMKXM1YXEiKGlWcTUuYlxEYlB0UmBGNjpICitKX3ArKlsxVz5Pb19vZlpaaj4nTUlkYEk4SSo4ZXBSUWksQiRPJnBYR0N1IjJzMmZANDNESGk2cGcrcjteTT1yTjw0T1dtQyd1IlpxLDloPQorLjtsQWRGWk03N1UkZk05PEVsaCtaRCxuJy0mIixDXmNDRT5YVT5pTVg9P0xhRDE9LEBxbzhkZy9TZXMtTlhxa1QlOU5SY0peJC5iQUBULTsKK2RCZzZpQmUlXUo2Mlg5YShYWiFGM1hZN0VnUUdgWU0xSHAlakk7NTNeYEgwJGpmOjZAIVBpYko/bFtPJlpZKEZEbnEoNCVVOCdnTzw+LjlWCispUkhWLGxfWS4nLiQ7QmteX3RsK0plIyltOj9Jcm9vXlkpRE5KKShkcEghKSVCaXRdUSFSYW1iJVFmI0RkNV1bMkt6enp6enp6enp6enp6egorenp6enp6enp6eiEhISNXczIwTmkhajAwIlFOfj4KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZUdyYXkKKyAgL0ZpbHRlciBbL0FTQ0lJODVEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICAvSGVpZ2h0IDI3MgorICAvSW50ZXJwb2xhdGUgdHJ1ZQorICAvV2lkdGggMjczCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0doVlEkMGIiKl8hIThoTnJkRDIwIidQWyl6enp6enp6enp6enp6enp6eiE4cFFVZ3MsaVF+PgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDExIDB9fSA8PAorICAvVHlwZSAvU3RydWN0VHJlZVJvb3QKKyAgL0sgMTIgMCBSCisgIC9QYXJlbnRUcmVlIDw8CisgICAgL051bXMgWzAgMTMgMCBSXQorICA+PgorICAvUGFyZW50VHJlZU5leHRLZXkgMQorPj4KK2VuZG9iagore3tvYmplY3QgMTIgMH19IDw8CisgIC9TIC9GaWd1cmUKKyAgL1AgMTEgMCBSCisgIC9BIDE0IDAgUgorICAvQWx0IChIZWxsbyFcMDAwKQorICAvSyAwCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTMgMH19CisgIFsxMiAwIFJdCitlbmRvYmoKK3t7b2JqZWN0IDE0IDB9fSA8PAorICAvQkJveCBbMjA0IDUxNiA0MDggNzIwXQorICAvSW5saW5lQWxpZ24gL0NlbnRlcgorICAvTyAvTGF5b3V0CisgIC9QbGFjZW1lbnQgL0Jsb2NrCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9tYXJrZWRfY29udGVudF9pZC5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9tYXJrZWRfY29udGVudF9pZC5wZGYKaW5kZXggZGRiZjExZi4uY2Y4MDE3MSAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvbWFya2VkX2NvbnRlbnRfaWQucGRmCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL21hcmtlZF9jb250ZW50X2lkLnBkZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9tYXR0ZS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL21hdHRlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3ZDhlMTMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9tYXR0ZS5pbgpAQCAtMCwwICsxLDE3MiBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCAxMDAgMTUwXQorICAvQ29udGVudHMgWzQgMCBSXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9NYXNrIDUgMCBSCisgICAgICAvTm9NYXNrIDcgMCBSCisgICAgICAvTWFza1Rvb0Zld0NvbXBzIDkgMCBSCisgICAgICAvTWFza1Rvb01hbnlDb21wcyAxMSAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorNDAgMCAwIDYwIDAgMCBjbQorL01hc2sgRG8KK1EKK3EKKzQwIDAgMCA2MCA1MCAwIGNtCisvTm9NYXNrIERvCitRCitxCis0MCAwIDAgNjAgMCA5MCBjbQorL01hc2tUb29GZXdDb21wcyBEbworUQorcQorNDAgMCAwIDYwIDUwIDkwIGNtCisvTWFza1Rvb01hbnlDb21wcyBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvV2lkdGggNTAKKyAgL0hlaWdodCA1MAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL1NNYXNrIDYgMCBSCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzc4OWNlZGMyMzEwZDAwMDAwYzAzYTA3ZjJhYWFiM2VhN2JjZjAzODQyNjU1NTU1NTU1NTU1NTU1ZjViZjAxY2M3ODE4ZGMKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDUwCisgIC9IZWlnaHQgNTAKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlR3JheQorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICAvTWF0dGUgWzAuMCAwLjIgMV0KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorNzg5Y2FiYWExYTA1YTM4MDhlNDA2MTE0OGMwMjdhMDI4MzUxMzAwYWU4MDlhMjQ2YzEyOGEwMjdlMDAyMDA2NWM5YzkwZAorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvV2lkdGggNTAKKyAgL0hlaWdodCA1MAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL1NNYXNrIDggMCBSCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzc4OWNlZGMyMzEwZDAwMDAwYzAzYTA3ZjJhYWFiM2VhN2JjZjAzODQyNjU1NTU1NTU1NTU1NTU1ZjViZjAxY2M3ODE4ZGMKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDUwCisgIC9IZWlnaHQgNTAKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlR3JheQorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis3ODljYWJhYTFhMDVhMzgwOGU0MDYxMTQ4YzAyN2EwMjgzNTEzMDBhZTgwOWEyNDZjMTI4YTAyN2UwMDIwMDY1YzljOTBkCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9XaWR0aCA1MAorICAvSGVpZ2h0IDUwCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICAvU01hc2sgMTAgMCBSCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzc4OWNlZGMyMzEwZDAwMDAwYzAzYTA3ZjJhYWFiM2VhN2JjZjAzODQyNjU1NTU1NTU1NTU1NTU1ZjViZjAxY2M3ODE4ZGMKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9XaWR0aCA1MAorICAvSGVpZ2h0IDUwCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZUdyYXkKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL01hdHRlIFswLjAgMC4yXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis3ODljYWJhYTFhMDVhMzgwOGU0MDYxMTQ4YzAyN2EwMjgzNTEzMDBhZTgwOWEyNDZjMTI4YTAyN2UwMDIwMDY1YzljOTBkCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTEgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvV2lkdGggNTAKKyAgL0hlaWdodCA1MAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL1NNYXNrIDEyIDAgUgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis3ODljZWRjMjMxMGQwMDAwMGMwM2EwN2YyYWFhYjNlYTdiY2YwMzg0MjY1NTU1NTU1NTU1NTU1NWY1YmYwMWNjNzgxOGRjCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTIgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvV2lkdGggNTAKKyAgL0hlaWdodCA1MAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VHcmF5CisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvRmxhdGVEZWNvZGVdCisgIC9NYXR0ZSBbMC4wIDAuMiAxIDAuNV0KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorNzg5Y2FiYWExYTA1YTM4MDhlNDA2MTE0OGMwMjdhMDI4MzUxMzAwYWU4MDlhMjQ2YzEyOGEwMjdlMDAyMDA2NWM5YzkwZAorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL21hdHRlLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL21hdHRlLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWQxZWNkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvbWF0dGUucGRmCkBAIC0wLDAgKzEsMTkxIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgMTAwIDE1MF0KKyAgL0NvbnRlbnRzIFs0IDAgUl0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvTWFzayA1IDAgUgorICAgICAgL05vTWFzayA3IDAgUgorICAgICAgL01hc2tUb29GZXdDb21wcyA5IDAgUgorICAgICAgL01hc2tUb29NYW55Q29tcHMgMTEgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAxNDkKKz4+CitzdHJlYW0KK3EKKzQwIDAgMCA2MCAwIDAgY20KKy9NYXNrIERvCitRCitxCis0MCAwIDAgNjAgNTAgMCBjbQorL05vTWFzayBEbworUQorcQorNDAgMCAwIDYwIDAgOTAgY20KKy9NYXNrVG9vRmV3Q29tcHMgRG8KK1EKK3EKKzQwIDAgMCA2MCA1MCA5MCBjbQorL01hc2tUb29NYW55Q29tcHMgRG8KK1EKK2VuZHN0cmVhbQorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvV2lkdGggNTAKKyAgL0hlaWdodCA1MAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL1NNYXNrIDYgMCBSCisgIC9MZW5ndGggNzEKKz4+CitzdHJlYW0KKzc4OWNlZGMyMzEwZDAwMDAwYzAzYTA3ZjJhYWFiM2VhN2JjZjAzODQyNjU1NTU1NTU1NTU1NTU1ZjViZjAxY2M3ODE4ZGMKK2VuZHN0cmVhbQorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvV2lkdGggNTAKKyAgL0hlaWdodCA1MAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VHcmF5CisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvRmxhdGVEZWNvZGVdCisgIC9NYXR0ZSBbMC4wIDAuMiAxXQorICAvTGVuZ3RoIDcxCis+Pgorc3RyZWFtCis3ODljYWJhYTFhMDVhMzgwOGU0MDYxMTQ4YzAyN2EwMjgzNTEzMDBhZTgwOWEyNDZjMTI4YTAyN2UwMDIwMDY1YzljOTBkCitlbmRzdHJlYW0KK2VuZG9iagorNyAwIG9iaiA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDUwCisgIC9IZWlnaHQgNTAKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvRmxhdGVEZWNvZGVdCisgIC9TTWFzayA4IDAgUgorICAvTGVuZ3RoIDcxCis+Pgorc3RyZWFtCis3ODljZWRjMjMxMGQwMDAwMGMwM2EwN2YyYWFhYjNlYTdiY2YwMzg0MjY1NTU1NTU1NTU1NTU1NWY1YmYwMWNjNzgxOGRjCitlbmRzdHJlYW0KK2VuZG9iagorOCAwIG9iaiA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDUwCisgIC9IZWlnaHQgNTAKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlR3JheQorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICAvTGVuZ3RoIDcxCis+Pgorc3RyZWFtCis3ODljYWJhYTFhMDVhMzgwOGU0MDYxMTQ4YzAyN2EwMjgzNTEzMDBhZTgwOWEyNDZjMTI4YTAyN2UwMDIwMDY1YzljOTBkCitlbmRzdHJlYW0KK2VuZG9iagorOSAwIG9iaiA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDUwCisgIC9IZWlnaHQgNTAKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvRmxhdGVEZWNvZGVdCisgIC9TTWFzayAxMCAwIFIKKyAgL0xlbmd0aCA3MQorPj4KK3N0cmVhbQorNzg5Y2VkYzIzMTBkMDAwMDBjMDNhMDdmMmFhYWIzZWE3YmNmMDM4NDI2NTU1NTU1NTU1NTU1NTVmNWJmMDFjYzc4MThkYworZW5kc3RyZWFtCitlbmRvYmoKKzEwIDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvV2lkdGggNTAKKyAgL0hlaWdodCA1MAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VHcmF5CisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvRmxhdGVEZWNvZGVdCisgIC9NYXR0ZSBbMC4wIDAuMl0KKyAgL0xlbmd0aCA3MQorPj4KK3N0cmVhbQorNzg5Y2FiYWExYTA1YTM4MDhlNDA2MTE0OGMwMjdhMDI4MzUxMzAwYWU4MDlhMjQ2YzEyOGEwMjdlMDAyMDA2NWM5YzkwZAorZW5kc3RyZWFtCitlbmRvYmoKKzExIDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvV2lkdGggNTAKKyAgL0hlaWdodCA1MAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL1NNYXNrIDEyIDAgUgorICAvTGVuZ3RoIDcxCis+Pgorc3RyZWFtCis3ODljZWRjMjMxMGQwMDAwMGMwM2EwN2YyYWFhYjNlYTdiY2YwMzg0MjY1NTU1NTU1NTU1NTU1NWY1YmYwMWNjNzgxOGRjCitlbmRzdHJlYW0KK2VuZG9iagorMTIgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9XaWR0aCA1MAorICAvSGVpZ2h0IDUwCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZUdyYXkKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL01hdHRlIFswLjAgMC4yIDEgMC41XQorICAvTGVuZ3RoIDcxCis+Pgorc3RyZWFtCis3ODljYWJhYTFhMDVhMzgwOGU0MDYxMTQ4YzAyN2EwMjgzNTEzMDBhZTgwOWEyNDZjMTI4YTAyN2UwMDIwMDY1YzljOTBkCitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCAxMworMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDA2OCAwMDAwMCBuIAorMDAwMDAwMDEzMSAwMDAwMCBuIAorMDAwMDAwMDM3MCAwMDAwMCBuIAorMDAwMDAwMDU3MSAwMDAwMCBuIAorMDAwMDAwMDg1NiAwMDAwMCBuIAorMDAwMDAwMTE0OCAwMDAwMCBuIAorMDAwMDAwMTQzMyAwMDAwMCBuIAorMDAwMDAwMTcwNCAwMDAwMCBuIAorMDAwMDAwMTk5MCAwMDAwMCBuIAorMDAwMDAwMjI4MSAwMDAwMCBuIAorMDAwMDAwMjU2OCAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAxMworPj4KK3N0YXJ0eHJlZgorMjg2NQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL21vbmFfbGlzYS5mcmFnbWVudCBiL3Rlc3RpbmcvcmVzb3VyY2VzL21vbmFfbGlzYS5mcmFnbWVudApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzM2NzdkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvbW9uYV9saXNhLmZyYWdtZW50CkBAIC0wLDAgKzEsMTA5IEBACisvOWovNEFBUVNrWkpSZ0FCQVFFQVpBQmtBQUQvL2dCU1JtbHNaU0J6YjNWeVkyVTZJR2gwZEhBNkx5OWpiMjF0YjI1ekxuZHBhMmx0CitaV1JwWVM1dmNtY3ZkMmxyYVM5R2FXeGxPazF2Ym1GZlRHbHpZVjltWVdObFh6Z3dNSGc0TURCd2VDNXFjR2YvMndCREFBWUVCUVlGCitCQVlHQlFZSEJ3WUlDaEFLQ2drSkNoUU9Ed3dRRnhRWUdCY1VGaFlhSFNVZkdoc2pIQllXSUN3Z0l5WW5LU29wR1I4dE1DMG9NQ1VvCitLU2ovMndCREFRY0hCd29JQ2hNS0NoTW9HaFlhS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvCitLQ2dvS0Nnb0tDZ29LQ2dvS0NqL3dBQVJDQUI0QUhnREFSRUFBaEVCQXhFQi84UUFIQUFBQWdJREFRRUFBQUFBQUFBQUFBQUFCUVlFCitCd0VEQ0FJQS84UUFPeEFBQWdFQ0JRSUVCQVFGQXdNRkFBQUFBUUlEQkJFQUJSSWhNUVpCRXlKUllRY3ljWUVVa2FHeEZVSml3ZkFqCitKT0VXRjlFbE0xTEM4Zi9FQUJvQkFBSURBUUVBQUFBQUFBQUFBQUFBQUFJREFRUUZBQWIveEFBdkVRQUNBZ0lDQWdBRUJRUUNBd0FBCitBQUFBQVFJUkF5RVNNUVJCQlJNaVVUSmhjYUd4RkNOU2daSHd3ZUh4LzlvQURBTUJBQUlSQXhFQVB3QnFpSUNoVDV0N2dFWXdYMXNzCitKVWJZMEVyS0JIcEZ1NDk4UTNmUktUTW1KVk5tMlBPbzkvdGlHMmtURkcrRmZJQXE5dDJ0YTJCdHZzS3RrcUttREUyVWdNRGlVbjJDCiszdWdUbnZWR1JkUHk2TTJ6S0ZKeHYrSGl2TE42aTZMdVB2YkRzYWxQYVJQeTI5Q3cvd0FZT24xa1BnVW1ZUzNPeFpVakp2d2JGcmdZCitmSHg4aHppcUNWRjhWK25hbVZVblN2b2p6cWxwOVNrRDNRa1lHV0thNjJTc1k1WlZtVkRtbE1LbkxhbUNxZ3Z1OGJCZ1BZamtINjRVCiszeC9GcGtjV0Y0eVQ4b0c0MzM3WUJ6ZFVnVkhlekV3TjFOMUJ4enVyc2xKR0kxdVNwSkczYnZqbGV3MmJZVU4rZlMrQ2oxMkRKa3FFCitXTmdPZUw0T002NkFhTnNjWGtiMnZ6aVZLNDdaRDBJa2NHMXIvWC9QdGhWV0ZaTFJOS3FBQWRpQ1Q5Y0MxOWprNzdNUnBxSUxLTmpmCitpL3RiQ3BjdWc0MFNvb0F6NnROeWZMc09QYkJRaHNsc3JING4vRUNYTGErVHA3SVp2QnJ4YU9wckVYVTBGeDhpZjErL2EvcmkzaThlCisxem4xL1A4QTZCYTZvUjhoNllxWThzektzaHBhdWFXZE5DekJIa1ppZm1Zazc3OGZmQVp2SVU1UWczcE1zUWc0eGJTMkttY1pRS1BVCithcW1xSXRWaHFlRXFMOXJuR2hqemMzU2FaWHlZNjNRR0R2U3VKYVNjb2ZWZk1wNTdZc09QTFVrTFVuSGNRcGxYVUZmUVpyRlY1YksyCitYWmtsbDhTRVdSeDZNbkJCOUQrbUV5d3BwcVcwTitieS9VNlkrRXZYZFAxcmxySktrVk5uVk1BdFZUTHNyRGdTSjMwbmoyTzNwakx6Cis0WGhsWHIwZCtKV2g2ZUpRQ3kyYjZERU9LQVQrNTVoUXJZc05yVzk4VEgyUzJUb0FBVFlHNUd3STR3VXFTWVBadVNFQk5YQUlCTzJFCis4ZU8wVFo4VVpWdGY1aHZiRTdSSFlrUVJHNmtpeDdmMnd1TW5leGpyMFN2RFppcXBmNmRzSDMwRDEyYklLZTc3Z25hN1c3YllIYmJDCit0SUZkZjlSMC9SM1M5Vm1jcklKRkhoMDZ0L1BLUjVSYmsrdjBHTE1JU2sxQ0syd0UwM2JlZ1A4QUNIb21taHk2TE04empocU0wcWY5CitlZW9sakVqaG0zc0w3RDdiKytLbVhLOCtUaW45SzBsK2hjVWZsd1RyYkxYRkhDQUJmdFlkdnR0aGJqUkhOZ2pPc29pcUthYUo5VHF5CitrRldBS244OFZzaXA2SHdsZlp6VjhSK2tLZWlrZVNqUzEyOHdDRCsyTlQ0ZjU3eWZUUDBJOGpDbHRGV3lKSkVYdWwwdllrTGNlNEp4Cit0cVNmUlJvSjlLNS9XZE5kU1VPYjVhN2lXbWJVVlBFa1pJMW8zcUN0L3dCTUJteExMamNQK1AxSWpPcFd6dHZKYStselRKNlBNcUY5CitkSlZ4TExHNDdxd3VQcGJpMk1xUDBPcGQ5QnlWOUUyS05XRjk3QWJOaVdsdTJjck44Y0lBQklGeHlMN1lXMnlUWkdobE5yN2VsdHNjCituWkQwWmtweUkrKzErY01jVlZnM3NVVVdNeFJ0SHBiVmMzR0tyNHZvWXJNMDYzazMyWUVpOXQ5emhpVFhSREpWSEF6U0IzdW9LMkYvCitiRXdtNHU3T2FUMFVMOGNzOVRxSFBzcXlaRUgrbld4YVd2dXVzN0tCNmtlWW42RHRpNWd5U201Wm4wa3lmbHJHbEJkdGw3ZE5XcDZGCitGWTJhd1UzOVJqRnh4MWFOSEo5ZzZwZFdhNUxYM0o5TVMyN2FFMHV5SFhpU1JDRk45ckczT0VUaHlHeGFRaTlVZE9wWHd5Q1cxbXVECitiL1BiQzRKNFpja05kVFZNNXU2M3k1Y3B6ZWVtaWxDUUR6ZWJ1ZmY5Ylk5UjRlVjVjYWsrek16eFVKVWhWbWJVTlF0Nlc5YkMrK0xwCitXYVNPanZnVDFKSy93K2hvNW10SGw5WTFPRDZvMXBCOWhyUDVZeS9NaHhtNjk3R3AzV3kwYVhOaE5Nc0lZaTI5dTFqMnYzN1lxN2ZaCitMZXRCMDFhckU1REtWUWFSWThtKy93RGJIVXhUbnZRUnBsdmJjYVR1TCsvR0lYZE1ZMmJ3YnhGZDJ3WE50VUQwN0tNeXZxaWQzV0duCitMdnFzekYwUElCOG8vTGZFYWlyWk5UOUQxMDltWXpTbU1pUmFKVWtNYmpteElEQ3graHdhY3BORUthZGszTnEzOEhsRThvR3B2dzdzCit0aHZjS2RzTGxHNlRDVXQwamtickNzYVhyYW16Q0dTTnIxME1ta2ZOclVxdHhmc1FCdGpTOGVQOWh3ZjJmN2pKMjVLUys2THYvd0M2CitWQkRsUXEwbFNpcEVtL0RocXBaU2RkcjJJUkcwOEg1aUR0eGpHWGk1WEpRanQxZmE2TDd5UXJreDFuNnAwZEtTWndJd0FFNHZjYStCCitZOTczQisrS1hKeWZGZDlCL0xTMnhMVHE3TktiSVd6dk9mSHBhZVJ4R0ZXa2tuSUxmS0NGc0JlM3JnL2xLV1I0OGNyL0FEYnBIY21vCiszSkFPTHJqcUhQY3dpbzh1eWVhb2hjai9BSFVhU0pHQnY1anJVYWJXNFA2NHRUOFhIamp5bmszOXRYK3dyNWttNmpFclA0b1VNOE9kCisrSlVmTS96Qzk5L3JqVCtHWll2SFNSVjhsTlNWaVNtbUYyWFVyTTF3UWVmZTJOVHNwN3VpeC9oSldGS0ROYVVNVmlNMEU1QVlnc05KCitVaS8yR0tIbVIvQy9aUFdpNU1remd5a3hNWWxBQnN6Q3h1UDMyeFZVRnNHV1IrdzFMbTBjTkpIR0FKUkl3M1UzMDJiZmJuZTJJcGRzCitTT1hUOVVLcUVzSExKcUJIMEhiRktWcVNUTHFhYWRCeUovRDFGZ2JXMnZodU8wN0JiWFJ5ZFFab2N2cXFjbEpDVzMxWEEzSXNTZTF6CitmYkZpV0huZEMxa3JRZnlMcmw2VEk1S0tGTkZUR0RhVUxmVTF5R0ovTlFDZTJBeVlKSi9UMEhqa2t0azJsNnRtb1RtVkkwelNyQkVxCit3eVNHNVJtWnRoYzhBWEl4UHkzS0NaeTFPaWp4b2k2N3lpS1VmN2VITkkxWjczRER4UmNrK3Y4QTR4b3Uvd0NubFhiaS93Q0JxZjF4CisxN093UDRUQlcwNVJKcWlKVEo0akJRdTdYM080Tmo3akhtRkJUanlUTk56Y0hSbzZpb1VrNmNrcHJCWUdsQkZ4ZllmL0FJTWR3YVdpCitMVGV5YmxHWFJuTFlZV3FhaU93c2RERGY4N2pFTEZ5VlNPbE54L0NhYTVhYktLZGpDWkdMM0xOSTVZbkM1cFFkUlFVTGtyWnl6OFljCit3TloxRzNoRnJJZUIyL3kyUFJmQ1ljY052MlovbHU1VWhFY3VYRXJXWUhkaWJiRS8yeHExWlJIejRWcE5QMUJWVTFJMGkrUFJseXEyCithNVYxUC8yL1hGUHlvcFFUZm9KTGs5Rnk1VFJWa01qdkxUVk1wQTNackhldy9JL2J2aWp5VzlrU2cwdWlXSUsyUFNZYUdwWUE3Q3d2Cit4eVQzeHpVUkx2c2F1a3Eyb3BKU0tpQ1dKR0p0WkNkejlzSmxGZHBqTWMydE1iSk14UXFieU1DYjhqQVBJMXNjbFp5UG1NQloyWlpXCitHa2VKcUxhaXg0QSttTk9EcjBJYU5iTVlpRERKSUFiZ01CYlVwQU80RjlyMy9LK0oyeWFUN0FHZVZkVFl0SElHMVB1M3FUY2JuN244CitzV01VVlFTYjVDM21GYXlyR1lYYThiaHlyZGlEZGJIdnhoMFlKNkd6bnBVZGs5STlRSm11VVVjaU9DMDBhRVhPMWlBZjc0OGpOUEhjCitINmRHeTZuVWdOOFFPdWFmcHFsb3FHdHkrdGtyNW0zaWlGdzY4YWxiaGh4eHY2NGI0K0NlZGFhU1gzRVRsSEc3ZTdHTHBQTXpVOU9VCitsWlZSUzBrcmh2OEFRbFBuVWFqcHY3MnRoVFNnMnJ1Zy93QVNURnpyVE5aVEN5d2drcjlzTGpIbkpYNkRrNldqbUxyQ29hb3plV1I3CitzZFIyYnR2d2NlcThWVmpTUmxadnhBYVdjTkVwSzJmK2F4UEdMQ0VNTmRMVk1rV1lSbUpuOFVrcXBIdUxmODdlbUJ5eHVMdm9oN0xiCit5bk04d3BoclNTcmpCOHhXMWxKMi93QTdZb05LblFEZWc3SDFEWG9vQW1yRmNrV1VibjlyZHNROGE5Q3FEdEIxWFVKdlV6aDEyMDJzCitEdjYyNXRnSndYVkVwdEs3Q1k2amxxb2lzVHlnZ2dHeTdnZXVGY0Zka2NtL3BiT2RwYTd4cFF6Q1h6ZVFHMnMyN1dPTkNNS0hIcHBuCitsSGhxZzFLYmhodGZqa0czN2V1SkJlMlE4MXk5Mnk4dk02SFV5MkFJOHAzUDl0Ly9BRGdvWlZ5MGlZSjNRcVRoSTROQlZaSm1jM2JrCitxQjZmWEZsTnQyTnRjYTlsNWZBN3FXbHpUcDZQSjZpcE5QbVZJREdyZ2pWNGQvS3d2emE5dnRqem54WEJLR1I1SyttWDhtbDRtVlRnCitvZTBXUjFPbFI0VVVacmN3cUhVWFNkY3ZqazI5eUxBZmxqTjBwVy81TFhvaDVEQTFOTVpzenJLeXJuMDdMS2lva1lIb0ZISnVOeVRpCitaU2pKclZWK29LWDUyTHZYR2N3RHhJNDJCWWdqYmZlMjJIK1BpNXkyTHlUcFVjL1o5S1pjd1oyWWwyYS90N0RIcU1LU2pTTXZLOWd5CitWbHZaQ1J0cCt2cWNOUXR1bUZNaERmaklXaWZTOXdiM3RheHd2SkpLTE9pckxscGxqamRZaXVsbkYvS2ZOdU5oeDkrY1puUFRkQzNICitWQkNTalV4cVpGT2xQTUNVNzdrbmIyeEhOTjdZRk0zMGNrRVFJQVhUZlk2Zk1MZDhUcjJDeWZKbnNVS2xJVUxOZnNQbDU1UHB4aUpRCitWMkZHMGlrcUtvTGxScFJsYlNDakM0Ty9GcjhrKzk4YUVvL2NhSGFXWXlPVk1PWEJSSVdDU0hZajZmZkNaeFhhYklvTDVobDAvd0QwCis1V3lTSlFORWtRbVVSaGlXQ2tHMWp5UUwrK0VKcm10aklxaXA4eDhKcG5ua1JYWnlRTlBDMjduMTJ0alNpcTBUcnRrR090bG9jemlxCitzdWxscDU0U0dqa0RXYSszK1d3YzRLVWVNOXBrVzRTdUxPaStrZmpybHo5UHh3WjByMCtaSWdXVFNsMGYrb2ZYMHg1L1A4S3l3ZjhBCithM0grRFJ4K1ZDZjR0TUVaL3dERXVPb0IvQTZVakk4MGtqQy81ZW1CeC9EWjk1RHA1MTFFcnZNdW9qVnZwcHIxRXpYSmZnTDMydnpqCitTeCtMdzcwVjVaTDYyTFZYU3krTzVaakl4Tnk5dGdNWExWVVYzRm9pblFpRys3V05pQisrRDdBSnVXekdKMUszQlVjbjdFWWlVTFZFCit4ZE95NnFMTm9UbDFMSVdFcjJYU1ZJc0dOcjc3ZDdqYjljWnJ3dFhFN2w3RGRWWHhWRVRlVjR5YktvUTcyN20zYmZDZmt4VXJCY3JWCitVUUJYd3E3R0pabVhScUtBY3RmMCt3dzJLYTBDNEpuMVRuRVRWSTBzQ0MxaUJHUFUvcCszcHRqcEp2czVRUzlpMVEwSVZVY3RBbG11CitQQ2pCL2NrZzRhNXhZd1BVcGlpWjFzclBxSG5idzlUYWh5QUJ6dGErSWt2OFVSRm0rb3FBMEVvOFZER1YwTXFrRURtNFAxNCsrRU8wCis5REUxMlVibmxHdFBuMVZUaDJhTkpMSVZUYytWU0FSdHY1Z01hMktWd1VnWDJCWlV1Nm5VUmNYSlk3M3c3c0dTb085QVJVY25XdVVRCis1Z2l5VWsxUUlYUnZsODRLaS8zSXhXOHZsOG1UaTZkQjRHbGtYSXRYcWI0V1U4SlkwRWNTV081QXVBTVpHSDRuS0w0ejJXc25qcDdSCitBeW5vblRJZ25qVXBjQ3lnajh2M3dlZnprMXBuUXh2MlRPck9sQlQ1Uy9nUnFpcW9KMnRiZmNrK21FZU41dkxKOVRHU3hhS2xxS2Z3CitpZ2RHVWdIeTI1QjR4dlJtbjBVWlJOb2c4R2pTV1FlUUZqYnR0WVlsVFRsUjBvMHJMTDZPekNpcU1zaEsxRlBTTHBXTzdnYXJqNXUzCitZbm5GREtwcHZ0Ly9BRUZSVEhWWWFjZ1EwdWRRU015bldHUzR0enpxeFV0eWR5UVRpcTBZZnBzZUhMV2F3YVlDNnUza1BvQ3Z1YjRPCitPV3ZwYkk0ZXpiVGRKeEMwcjFYaEl4MWFXOG9VbjF2L0FKdml2UHpJMzlEc2RIeDVQdFVWUG9uZU9WcGF5UktsS1pmQ2FKaUNkeVR2CitjazJGL3VNYVhLbnBhdllpaU1uVzFZOU93cXhUdE82QzB5blFvSXVvMUFBNzgvOEFHSHk4YUw2WU4wZU0xNnJyNXFlSHhnZ3BwMEN6CithWXdMTXJuZFR5TEd4OU1RdkhqdmZSMStoUHJhbWV2cjZpYVNacEpKWlMydmdzZXh0OWhpeEdLakZKRTIyZlpibHRabXRjdExRd3kxCitGUSt5SkdOUnYrMXZmSFR5UWhIbmtkSW1NSlNmRkxaZXZ3MytFVWNFeVYyY3poNmxma1ZSNUVidFluaysvdGpCOG40bTh2MFlWUy9jCit1NHZHVVBxbDJYRkpsNU1BV1lhaWJENWY4dGpJazBYRWpOTmtTSXhhMmpmYS93Q1dCYSt4TmtIUE1uU2FqZGJnRUl3SWJ2NlhIcGdWCitxWEpCSlhvNXpxc25FV2RHaklXUzhvVlNHK1hVOWg5YmIzSGJIcG9aK1dIbitSUWxqcVZFSHFPa0VORkRTcWlNcTFVeFczSkY3SDdYCitYajY0ZDQ4N2x5djBoV1Jhcjh3SmswYXJWQ0oyUlVKSjFNZGxiaXhQb2JZdDVIY1cwVjBpeXNpeVRNYTZybzJwcU9pMFJ2ZEhqazFLCisrMndJQkpJeGs1cHdqYWJld294ZDJocEhSdlUxVG1GRlhWR1phcG9UZGpxS2dlM05qMkgwQXhYbDVlT01XbEhzT09DVFk3WmpVVFVtCitWd3JMTCtKclZHeUtDZGJEMVA4QUx6M09NekRINjNKYVRMa3A4WTE3S0c2azhPT0tvcEtHSXZJSTFHdXhCdHhiMkc1NS92ajBIanFUCitseW0vWlRsVlVoUHFxQS93V1JFVlM4VWhhK20rdzJJQi9MakdncHJtaERUSTJhd3V1VlV4bUxxSTQ5S3FleDFFMlB2dWNkR1Z6ZEUxCitTc0cwY2NrdFNxeFgxRHZiZ2VwL1BCdDByT2lyZWpwajRDOUlKUTVUTFdUeFhucVcxSzlpQ1l4OG90NkhuN2pIbWZpZmtQTmxVVTlMCisrVFZ3WS9sdy9ObDAwOUl2ZzJDZ1dzUmNjSEZTTnBXaVc3ZEdXaWp1QkdMWGJBUFlhMTJiV2owd0d4NzhXeE1sVVFVOWk5MUFxcFN6CitDVW53eXA0OThWY2psZEQ4Wno3RUlhVE9xZDZka2xsL0V1a2pXdUNRYmtxU2VOeWZYdHZqMEQ1VHh2a3ZWbFoxRmlQMURYdkptd2ljCitxUkNXTi9mVWY3M3hxZVBqVWNkcjJVTXN2cVBhNUxWVlZHODhkTks4UllCTktuaTNKdDYyd1h6NHhiaTJGeGJWMEZ1bTgwcUtldlNuCitxWlhwcDFrQ2hpbGliOGJZUjVHRlNpNVIyTGFmUmZHVzlSUjFGSEZCVXh6eUdNSlR1SXhwQWZnQVh0ZmIxOTc0OC9PRFQyV1l6MGU2CitsNkdPbldWelh4cjRuaHA4dXJVYjNCQmEvd0J6aFAxY3RmdUU2clpWT2UwYU5Dc2thdVhTTzdLdzBySU8yL3BlMzZZMXNHUnAwMlZwCit4ZFdLZWVTMDJWNVBHczBhTFVNUmFQdVNNYUdMbmx5V25vQnBSVnNRYXlwbHE1REpNUVZESFNuWmZZWTBJeFNXaFRkbHAvQjNwTVp0CitSelZrc1BpWGEyKzFnUDJBMk54dmpIK0plWThjbENKZjhURW11VE9tK2s4cEdVNVZCVDY5Y2lMdWJXMUgxQXhoT1RjbTM3TGNwV0h3CitCWURhL2UrRHU5QUw3bURHUnAzSU9xOXNRNHZvbS9aOVVKcVcxckViSHZnWkhKN0V2clZvNDhxcUJKSmE2RlRjSGs5dlU0UmR6aWtXCitJOU1wU29wWjZpdENVZEdvVUVrdXloVURYVzl6ZmJnYmNYeHRRbWxHNVMzL0FPQ3JrVDZpaVprbnc1cGF1cm1xNUpSbUZiSzVaMVNJCit5eHExNzI3THRmZTU3WVhrK0pUU1VJcWwrNEM4Wlc1Tmh2T3Nsb2FPa1pNd3pHS0lSLzhBdEpOVnJDTDhHeXhydWVSdGZBWWN1U1RrCis0eDMrbC95Rk9NVXRzcHZxNU10anJVZWpxRjhZZk0wYzByZ2VuenFQME9ON3hua2NXcHIrRFB5MWVpVDB2MTdYWlV3aHFKbWVFRUJKCitsVlF3UDlSTndkdS9Jd3J5UEFoa3VVZE1uSGxjZE10VEovaUhQRENHekZFWkpQS3IrRW1wYkRjdHBBNTlUdmpNbjRiYittaTFHUUtwCiswbXlkMnJNOHJxZW5nQzZwVWxkVzJLN1dVRWtYK3ZOaGJBNWF6L1JoaTIvMG9oZlJ1V2ltK3I4M0dkNTlQVnhLMGRLdmtwNDdXc2c5Cit2Zm5Ib2ZHd2ZJeHFEZHYyVWNrK1VyUU1qamFRckNwYnpEZzg0YmFRTk02SitEdWUwMlZ3ZmdjNVhSUzJEeFM2U0ZGK2RRL0t4KzJQCitNL0VjRGxrK2JEL1pxK1BsU2h4WmZGUFhVdFRSR3FwcWlPU01qVjRpc0NDUHJ4M3htOGxYMkQ0dXlUU0ZwUnJJSVU0T0tzNlRyUk9BCitUUWUvSUdIcU9oTGJzMVNlR2dZSG42Mkgxd3VTRFRiSzg2MnJxR09PWkRMcllBL0pKcEFKRzR2MjJ2NzJ4V1dKem1taC93QXhRVk1xCitQTWV0TWxvSkpIYU1aaFUySWpodGFGZTNIODNibkd2aitIWnNpL3hYN2xWK1JGTzNzV00rK0pPZFZrZmd6Vnk1ZlNxRHBwcVJMRURpCis1dHNQMFB0aS9nK0Y0b2JybCtiRXk4bHZyUWpWdWMxVXh2OEFpWnlwL3BBMyt1K05LT0NFVlZGZHpiN1lQZWVSeUxzN0c5enJhK0RTCitTQWI5bUk5UUcxaXJIY0RnNDZqaHg2VW5scWYvQUV6WVRJQzhiamN0WUVsU09EdGM3K24weFV6NDFIKzUvd0IvVXRZSnVYMFAvdjVBCiszcm1lcS9pMzhQcWxlTVU0MU9qQzEyTnorZ05oOWNUNFVZOE9jZlluTmFmRitoWmJielh2N1c3NHQwSURtUVFKSkk4MVRmU0dBdUR4Cit0ZSsvK2NZUmxiV2tHbDl4c2p6WWl0cElxWU1rc3FEUU5meUtDYmszMnZZSG4vNURGVDVTYWJsNkdxZFBRY3lqTkpUSTZaZk8xS3NWCit0YlU4dWdzeDMzSERBRGZqODhWOG1CTlhKWFk2R1Y5SWRzcytJV2Y1ZXBpL2lhVDZBQXlWRk9DUmUxaGRiZW81djJ4VmZpUTdpbXY5CitqVmxUN0M4SHhacm85NUlLQ2NLYkY0eTRKL1EvVEFmMGt2OEFJSnpoM1JFejc0cFZFMU5JYlU5RERHdDVKU1MrL1pGSUZ5MSt3MytnCiszd0VmRGNwVjJCTHlJcGZTVkQxRDFmNDBGVTVtOEpwemFPSlY4U1oxNTFNU2RNWU56dHV4eHE0UEQ0dGE2LzQvMTl5dFBOWWpQWFN5CitFK0NDdDk5aVN4UHFUeWNhS2lrVjA3QzJYNWJDbEkxYlZndEhUamRiN1NQdlpmenQrdUZTbkxrb3g3WVZMc2hWY2FSS3Nla2E3TnlOCitnYkwvQU00YkZ0blBRTFdPUW02cTVBQko4cDQ5VDdlK0Q1QWJaNlZ2bU5oMnNMOFk2eVZZUnkrcWVtcWFhZExpU0Z3NHNPYmR0OFJKCitjb3RQMkhHVGk3WFovOWs9CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9tdWx0aXBsZV9mb3JtX3R5cGVzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvbXVsdGlwbGVfZm9ybV90eXBlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzZhZjYzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvbXVsdGlwbGVfZm9ybV90eXBlcy5pbgpAQCAtMCwwICsxLDEzMSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzggMCBSIDkgMCBSIDEwIDAgUiAxMSAwIFIgMTIgMCBSXQorICAgIC9EUiA0IDAgUgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1Jlc291cmNlcyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCAzMDAgNjAwXQorICAvQ29udGVudHMgNiAwIFIKKyAgL0Fubm90cyBbNyAwIFIgOCAwIFIgOSAwIFIgMTAgMCBSIDExIDAgUiAxMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvRm9udCA8PAorICAgIC9GMSA1IDAgUgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvSGVsdmV0aWNhCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitCVAorMCAwIDAgcmcKKy9GMSAxMiBUZgorMTAwIDQ1MCBUZAorKFRlc3QgRm9ybSkgVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9CUyA8PAorICAgIC9XIDAKKyAgPj4KKyAgL1JlY3QgWzEwMCA0NTAgMTYwIDQ2MF0KKyAgL0EgPDwKKyAgICAvVHlwZSAvQWN0aW9uCisgICAgL1VSSSAoaHR0cHM6Ly93d3cuY3MuY2hyb21pdW0ub3JnLykKKyAgICAvUyAvVVJJCisgID4+CisgIC9GIDQKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvQ2gKKyAgL0ZmIDM5MzIxNgorICAvVCAoQ29tYm9fRWRpdGFibGUpCisgIC9EQSAoMCAwIDAgcmcgL0YxIDEyIFRmKQorICAvUmVjdCBbMTAwIDQwMCAyMDAgNDMwXQorICAvT3B0IFtbKGZvbykgKEZvbyldIFsoYmFyKSAoQmFyKV0gWyhxdXgpIChRdXgpXV0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDkgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvQ2gKKyAgL0ZmIDIwOTcxNTIKKyAgL1QgKExpc3Rib3hfTXVsdGlTZWxlY3RNdWx0aXBsZVNlbGVjdGVkKQorICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKKyAgL1JlY3QgWzEwMCAzNTAgMjAwIDM4MF0KKyAgL09wdCBbKEFscGhhKSAoQmV0YSkgKEdhbW1hKSAoRGVsdGEpIChFcHNpbG9uKV0KKyAgL1YgWyhFcHNpbG9uKSAoR2FtbWEpXQorPj4KK2VuZG9iagore3tvYmplY3QgMTAgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvVHgKKyAgL1QgKFRleHQgQm94KQorICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKKyAgL1JlY3QgWzEwMCAzMDAgMjAwIDMzMF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDExIDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL0J0bgorICAvRiA0CisgIC9QIDMgMCBSCisgIC9SZWN0IFsxMzUgMjUwIDE1NSAyNzBdCisgIC9UIChDaGVja2JveCkKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEyIDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL0J0bgorICAvRmYgMzI3NjgKKyAgL1QgKHJhZGlvQnV0dG9uKQorICAvVFUgKHJhZGlvQnV0dG9uMSkKKyAgL0tpZHMgWzEzIDAgUl0KKyAgL1YgL3ZhbHVlMworPj4KK2VuZG9iagore3tvYmplY3QgMTMgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvQnRuCisgIC9GIDQKKyAgL1AgMyAwIFIKKyAgL1BhcmVudCAxMiAwIFIKKyAgL1JlY3QgWzg1IDUwIDEwNSA3MF0KKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL211bHRpcGxlX2Zvcm1fdHlwZXMucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvbXVsdGlwbGVfZm9ybV90eXBlcy5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE4M2M5ZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL211bHRpcGxlX2Zvcm1fdHlwZXMucGRmCkBAIC0wLDAgKzEsMTUxIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzggMCBSIDkgMCBSIDEwIDAgUiAxMSAwIFIgMTIgMCBSXQorICAgIC9EUiA0IDAgUgorICA+PgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgMzAwIDYwMF0KKyAgL0NvbnRlbnRzIDYgMCBSCisgIC9Bbm5vdHMgWzcgMCBSIDggMCBSIDkgMCBSIDEwIDAgUiAxMSAwIFIgMTMgMCBSXQorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvRm9udCA8PAorICAgIC9GMSA1IDAgUgorICA+PgorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKz4+CitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL0xlbmd0aCA1MQorPj4KK3N0cmVhbQorQlQKKzAgMCAwIHJnCisvRjEgMTIgVGYKKzEwMCA0NTAgVGQKKyhUZXN0IEZvcm0pIFRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9CUyA8PAorICAgIC9XIDAKKyAgPj4KKyAgL1JlY3QgWzEwMCA0NTAgMTYwIDQ2MF0KKyAgL0EgPDwKKyAgICAvVHlwZSAvQWN0aW9uCisgICAgL1VSSSAoaHR0cHM6Ly93d3cuY3MuY2hyb21pdW0ub3JnLykKKyAgICAvUyAvVVJJCisgID4+CisgIC9GIDQKKz4+CitlbmRvYmoKKzggMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9DaAorICAvRmYgMzkzMjE2CisgIC9UIChDb21ib19FZGl0YWJsZSkKKyAgL0RBICgwIDAgMCByZyAvRjEgMTIgVGYpCisgIC9SZWN0IFsxMDAgNDAwIDIwMCA0MzBdCisgIC9PcHQgW1soZm9vKSAoRm9vKV0gWyhiYXIpIChCYXIpXSBbKHF1eCkgKFF1eCldXQorPj4KK2VuZG9iagorOSAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL0NoCisgIC9GZiAyMDk3MTUyCisgIC9UIChMaXN0Ym94X011bHRpU2VsZWN0TXVsdGlwbGVTZWxlY3RlZCkKKyAgL0RBICgwIDAgMCByZyAvRjEgMTIgVGYpCisgIC9SZWN0IFsxMDAgMzUwIDIwMCAzODBdCisgIC9PcHQgWyhBbHBoYSkgKEJldGEpIChHYW1tYSkgKERlbHRhKSAoRXBzaWxvbildCisgIC9WIFsoRXBzaWxvbikgKEdhbW1hKV0KKz4+CitlbmRvYmoKKzEwIDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvVHgKKyAgL1QgKFRleHQgQm94KQorICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKKyAgL1JlY3QgWzEwMCAzMDAgMjAwIDMzMF0KKz4+CitlbmRvYmoKKzExIDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvQnRuCisgIC9GIDQKKyAgL1AgMyAwIFIKKyAgL1JlY3QgWzEzNSAyNTAgMTU1IDI3MF0KKyAgL1QgKENoZWNrYm94KQorPj4KK2VuZG9iagorMTIgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9CdG4KKyAgL0ZmIDMyNzY4CisgIC9UIChyYWRpb0J1dHRvbikKKyAgL1RVIChyYWRpb0J1dHRvbjEpCisgIC9LaWRzIFsxMyAwIFJdCisgIC9WIC92YWx1ZTMKKz4+CitlbmRvYmoKKzEzIDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvQnRuCisgIC9GIDQKKyAgL1AgMyAwIFIKKyAgL1BhcmVudCAxMiAwIFIKKyAgL1JlY3QgWzg1IDUwIDEwNSA3MF0KKz4+CitlbmRvYmoKK3hyZWYKKzAgMTQKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAxNDkgMDAwMDAgbiAKKzAwMDAwMDAyMTIgMDAwMDAgbiAKKzAwMDAwMDAzNzcgMDAwMDAgbiAKKzAwMDAwMDA0MjggMDAwMDAgbiAKKzAwMDAwMDA1MDQgMDAwMDAgbiAKKzAwMDAwMDA2MDYgMDAwMDAgbiAKKzAwMDAwMDA3OTggMDAwMDAgbiAKKzAwMDAwMDEwMDIgMDAwMDAgbiAKKzAwMDAwMDEyNTIgMDAwMDAgbiAKKzAwMDAwMDEzODcgMDAwMDAgbiAKKzAwMDAwMDE1MTQgMDAwMDAgbiAKKzAwMDAwMDE2NjMgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgMTQKKz4+CitzdGFydHhyZWYKKzE3ODgKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9uYW1lZF9kZXN0cy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL25hbWVkX2Rlc3RzLmluCmluZGV4IGE5N2FlYmUuLmM3MWYyY2MgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL25hbWVkX2Rlc3RzLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL25hbWVkX2Rlc3RzLmluCkBAIC02NCw4ICs2NCw4IEBACiA+PgogZW5kb2JqCiAlIE9sZC1zdHlsZSB0b3AtbGV2ZWwgRGVzdHMgZGljdGlvbmFyeS4gTm90ZSB0aGF0IEZpcnN0QWx0ZXJuYXRlCi0lIGludGVudGlvbmFsbHkgcmVmZXJlbmNlcyBub24tZXhpc3N0YW50IHBhZ2UgMTEgYW5kIExhc3RBbHRlcm5hdGUKLSUgaW50ZW50aW9uYWxseSByZWZlcmVuY2VzIG5vbi1leGlzdGFudCBvYmplY3QgOTk5LgorJSBpbnRlbnRpb25hbGx5IHJlZmVyZW5jZXMgbm9uLWV4aXN0ZW50IHBhZ2UgMTEgYW5kIExhc3RBbHRlcm5hdGUKKyUgaW50ZW50aW9uYWxseSByZWZlcmVuY2VzIG5vbi1leGlzdGVudCBvYmplY3QgOTk5Lgoge3tvYmplY3QgMTQgMH19IDw8CiAgIC9GaXJzdEFsdGVybmF0ZSBbMTEgL1hZWiAyMDAgNDAwIDgwMF0KICAgL0xhc3RBbHRlcm5hdGUgIDw8L0QgWzk5OSAwIFIgL1hZWiAwIDAgLTIwMF0+PgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvbmFtZWRfZGVzdHMucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvbmFtZWRfZGVzdHMucGRmCmluZGV4IGI5OWNlYWQuLmRkY2M5ODUgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL25hbWVkX2Rlc3RzLnBkZgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9uYW1lZF9kZXN0cy5wZGYKQEAgLTY1LDggKzY1LDggQEAKID4+CiBlbmRvYmoKICUgT2xkLXN0eWxlIHRvcC1sZXZlbCBEZXN0cyBkaWN0aW9uYXJ5LiBOb3RlIHRoYXQgRmlyc3RBbHRlcm5hdGUKLSUgaW50ZW50aW9uYWxseSByZWZlcmVuY2VzIG5vbi1leGlzc3RhbnQgcGFnZSAxMSBhbmQgTGFzdEFsdGVybmF0ZQotJSBpbnRlbnRpb25hbGx5IHJlZmVyZW5jZXMgbm9uLWV4aXN0YW50IG9iamVjdCA5OTkuCislIGludGVudGlvbmFsbHkgcmVmZXJlbmNlcyBub24tZXhpc3RlbnQgcGFnZSAxMSBhbmQgTGFzdEFsdGVybmF0ZQorJSBpbnRlbnRpb25hbGx5IHJlZmVyZW5jZXMgbm9uLWV4aXN0ZW50IG9iamVjdCA5OTkuCiAxNCAwIG9iaiA8PAogICAvRmlyc3RBbHRlcm5hdGUgWzExIC9YWVogMjAwIDQwMCA4MDBdCiAgIC9MYXN0QWx0ZXJuYXRlICA8PC9EIFs5OTkgMCBSIC9YWVogMCAwIC0yMDBdPj4KQEAgLTExNywxNiArMTE3LDE5IEBACiAwMDAwMDAwNjM4IDAwMDAwIG4gCiAwMDAwMDAwNzY2IDAwMDAwIG4gCiAwMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAxMDYwIDAwMDAwIG4gCi0wMDAwMDAxMTg4IDAwMDAwIG4gCiswMDAwMDAxMDU5IDAwMDAwIG4gCiswMDAwMDAxMTg3IDAwMDAwIG4gCiAwMDAwMDAwMDAwIDY1NTM1IGYgCiAwMDAwMDAwMDAwIDY1NTM1IGYgCiAwMDAwMDAwMDAwIDY1NTM1IGYgCiAwMDAwMDAwMDAwIDY1NTM1IGYgCiAwMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAxMjgzIDAwMDAwIG4gCi0wMDAwMDAxMzkzIDAwMDAwIG4gCi10cmFpbGVyPDwgL1Jvb3QgMSAwIFIgL1NpemUgMjMgPj4KKzAwMDAwMDEyODIgMDAwMDAgbiAKKzAwMDAwMDEzOTIgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgMjMKKz4+CiBzdGFydHhyZWYKLTE0ODEKKzE0ODAKICUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9uYW1lZF9kZXN0c19vbGRfc3R5bGUuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9uYW1lZF9kZXN0c19vbGRfc3R5bGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBlNDVlZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL25hbWVkX2Rlc3RzX29sZF9zdHlsZS5pbgpAQCAtMCwwICsxLDU1IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Rlc3RzIDYgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDIKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgID4+CisgID4+CisgIC9Db250ZW50cyBbNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitCVAorL0YxIDIwIFRmCisxMDAgNjAwIFREIChQYWdlMSlUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9BcmlhbAorPj4KK2VuZG9iagorJSBPbGQtc3R5bGUgdG9wLWxldmVsIERlc3RzIGRpY3Rpb25hcnkuIE5vdGUgdGhhdCBGaXJzdEFsdGVybmF0ZQorJSBpbnRlbnRpb25hbGx5IHJlZmVyZW5jZXMgbm9uLWV4aXN0ZW50IHBhZ2UgMTEgYW5kIExhc3RBbHRlcm5hdGUKKyUgaW50ZW50aW9uYWxseSByZWZlcmVuY2VzIG5vbi1leGlzdGVudCBvYmplY3QgOTk5Lgore3tvYmplY3QgNiAwfX0gPDwKKyAgL0ZpcnN0QWx0ZXJuYXRlIFsxMSAvWFlaIDIwMCA0MDAgODAwXQorICAvTGFzdEFsdGVybmF0ZSAgPDwKKyAgICAvRCBbOTk5IDAgUiAvWFlaIDAgMCAtMjAwXQorICA+PgorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvbmFtZWRfZGVzdHNfb2xkX3N0eWxlLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL25hbWVkX2Rlc3RzX29sZF9zdHlsZS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY3ZjA0YQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL25hbWVkX2Rlc3RzX29sZF9zdHlsZS5wZGYKQEAgLTAsMCArMSw2OCBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvRGVzdHMgNiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAyCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgID4+CisgID4+CisgIC9Db250ZW50cyBbNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9MZW5ndGggMzcKKz4+CitzdHJlYW0KK0JUCisvRjEgMjAgVGYKKzEwMCA2MDAgVEQgKFBhZ2UxKVRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvQXJpYWwKKz4+CitlbmRvYmoKKyUgT2xkLXN0eWxlIHRvcC1sZXZlbCBEZXN0cyBkaWN0aW9uYXJ5LiBOb3RlIHRoYXQgRmlyc3RBbHRlcm5hdGUKKyUgaW50ZW50aW9uYWxseSByZWZlcmVuY2VzIG5vbi1leGlzdGVudCBwYWdlIDExIGFuZCBMYXN0QWx0ZXJuYXRlCislIGludGVudGlvbmFsbHkgcmVmZXJlbmNlcyBub24tZXhpc3RlbnQgb2JqZWN0IDk5OS4KKzYgMCBvYmogPDwKKyAgL0ZpcnN0QWx0ZXJuYXRlIFsxMSAvWFlaIDIwMCA0MDAgODAwXQorICAvTGFzdEFsdGVybmF0ZSAgPDwKKyAgICAvRCBbOTk5IDAgUiAvWFlaIDAgMCAtMjAwXQorICA+PgorPj4KK2VuZG9iagoreHJlZgorMCA3CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDgzIDAwMDAwIG4gCiswMDAwMDAwMTQ2IDAwMDAwIG4gCiswMDAwMDAwMzAwIDAwMDAwIG4gCiswMDAwMDAwMzg4IDAwMDAwIG4gCiswMDAwMDAwNjQzIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDcKKz4+CitzdGFydHhyZWYKKzc2MQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL25vX3BhZ2VfY291bnQuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9ub19wYWdlX2NvdW50LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2YjFhMmQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9ub19wYWdlX2NvdW50LmluCkBAIC0wLDAgKzEsNTAgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9LaWRzIFszIDAgUiAzIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvS2lkcyBbNCAwIFIgNCAwIFIgNCAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgPj4KKyAgPj4KKyAgL0NvbnRlbnRzIDYgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgorPj4KK2VuZG9iagorCit7e29iamVjdCA2IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitCVAorMjAgNTAgVGQKKy9GMSAxMiBUZgorKEhlbGxvLCB3b3JsZCEpIFRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL25vX3BhZ2VfY291bnQucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvbm9fcGFnZV9jb3VudC5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODg1ZGY4YwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL25vX3BhZ2VfY291bnQucGRmCkBAIC0wLDAgKzEsNjMgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9LaWRzIFszIDAgUiAzIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9LaWRzIFs0IDAgUiA0IDAgUiA0IDAgUl0KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgID4+CisgID4+CisgIC9Db250ZW50cyA2IDAgUgorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgorPj4KK2VuZG9iagorCis2IDAgb2JqIDw8CisgIC9MZW5ndGggNDQKKz4+CitzdHJlYW0KK0JUCisyMCA1MCBUZAorL0YxIDEyIFRmCisoSGVsbG8sIHdvcmxkISkgVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCA3CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTUyIDAwMDAwIG4gCiswMDAwMDAwMjE2IDAwMDAwIG4gCiswMDAwMDAwMzQyIDAwMDAwIG4gCiswMDAwMDAwNDIxIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDcKKz4+CitzdGFydHhyZWYKKzUxNgorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL25vbl9oZXhfZmlsZV9pZC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL25vbl9oZXhfZmlsZV9pZC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTkzNDM5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvbm9uX2hleF9maWxlX2lkLmluCkBAIC0wLDAgKzEsMjYgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbIDAgMCAyMDAgMjAwIF0KKyAgL0NvdW50IDEKKyAgL0tpZHMgWyAzIDAgUiBdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCis+PgorZW5kb2JqCit7e3hyZWZ9fQordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvSUQgWyhwZXJtYW5lbnQgbm9uLWhleCkgKGNoYW5naW5nIG5vbi1oZXgpXQorICB7e3RyYWlsZXJzaXplfX0KKz4+Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvbm9uX2hleF9maWxlX2lkLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL25vbl9oZXhfZmlsZV9pZC5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmYxMWViNgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL25vbl9oZXhfZmlsZV9pZC5wZGYKQEAgLTAsMCArMSwzMyBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFsgMCAwIDIwMCAyMDAgXQorICAvQ291bnQgMQorICAvS2lkcyBbIDMgMCBSIF0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorPj4KK2VuZG9iagoreHJlZgorMCA0CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTYxIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9JRCBbKHBlcm1hbmVudCBub24taGV4KSAoY2hhbmdpbmcgbm9uLWhleCldCisgIC9TaXplIDQKKz4+CitzdGFydHhyZWYKKzIxMgorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BhZ2VfdHJlZV9lbXB0eV9ub2RlLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGFnZV90cmVlX2VtcHR5X25vZGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE5YjkwMQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BhZ2VfdHJlZV9lbXB0eV9ub2RlLmluCkBAIC0wLDAgKzEsNDAgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9LaWRzIFszIDAgUiA0IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMAorICAvS2lkcyBbXQorICAvUGFyZW50IDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDIKKyAgL0tpZHMgWzUgMCBSIDYgMCBSXQorICAvUGFyZW50IDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDQgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDQgMCBSCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9wYWdlX3RyZWVfZW1wdHlfbm9kZS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9wYWdlX3RyZWVfZW1wdHlfbm9kZS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmY4MGExYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BhZ2VfdHJlZV9lbXB0eV9ub2RlLnBkZgpAQCAtMCwwICsxLDUzIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvTWVkaWFCb3ggWzAgMCAyMDAgMjAwXQorICAvS2lkcyBbMyAwIFIgNCAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMAorICAvS2lkcyBbXQorICAvUGFyZW50IDIgMCBSCis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMgorICAvS2lkcyBbNSAwIFIgNiAwIFJdCisgIC9QYXJlbnQgMiAwIFIKKz4+CitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCA0IDAgUgorPj4KK2VuZG9iagorNiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDQgMCBSCis+PgorZW5kb2JqCit4cmVmCiswIDcKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxNTIgMDAwMDAgbiAKKzAwMDAwMDAyMjYgMDAwMDAgbiAKKzAwMDAwMDAzMTEgMDAwMDAgbiAKKzAwMDAwMDAzNjIgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgNworPj4KK3N0YXJ0eHJlZgorNDEzCislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYXhpYWxfc2hhZGluZ19wb2ludF9hdF9ib3JkZXJfbm9fZXh0ZW5kX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYXhpYWxfc2hhZGluZ19wb2ludF9hdF9ib3JkZXJfbm9fZXh0ZW5kX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNGM5YjcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9heGlhbF9zaGFkaW5nX3BvaW50X2F0X2JvcmRlcl9ub19leHRlbmRfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEwMTIzNjkuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTAxMjM2OS5pbgppbmRleCA3ZjU2ZDM1Li5kYjFmYzVhIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTAxMjM2OS5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTAxMjM2OS5pbgpAQCAtNDYsNyArNDYsNyBAQAogICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0pQWERlY29kZV0KICAgL0hlaWdodCA2NAogICAvV2lkdGggNjQKLXt7c3RyZWFtbGVufX0KKyAge3tzdHJlYW1sZW59fQogPj4KIHN0cmVhbQogMDAwMDAwMGM2YTUwMjAyMDBkMGE4NzBhMDAwMDAwMTQ2Njc0Nzk3MDZhNzAzMjIwMDAwMDAwMDA2YTcwMzIyMDAwMDAwMDRmNmE3MDMyCkBAIC02Nyw3ICs2Nyw3IEBACiAgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvSlBYRGVjb2RlXQogICAvSGVpZ2h0IDY0CiAgIC9XaWR0aCA2NAote3tzdHJlYW1sZW59fQorICB7e3N0cmVhbWxlbn19CiA+Pgogc3RyZWFtCiAwMDAwMDAwYzZhNTAyMDIwMGQwYTg3MGEwMDAwMDAxNDY2NzQ3OTcwNmE3MDMyMjAwMDAwMDAwMDZhNzAzMjIwMDAwMDAwNGY2YTcwMzIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMDE1MjMzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEwMTUyMzMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJhNTIxZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMDE1MjMzLmluCkBAIC0wLDAgKzEsMTEzIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MDAgMjAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQ10KKyAgICAvQ29sb3JTcGFjZSA8PAorICAgICAgL0MxIFsvUGF0dGVybl0KKyAgICA+PgorICAgIC9QYXR0ZXJuIDw8CisgICAgICAvUDEgNSAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorMC4yNCAwIDAgMC4yNCAwIDAgY20KKy9DMSBjcworL1AxIHNjbgorODg4IDQwMCAxMDggNjAgcmUKK2YqCiswIDAgMCByZworODg4IDQ2MCBtCis4ODggNDAwIGwKK1MKKy9DMSBjcworL1AxIHNjbgorMTUzNiA0MDAgMTA4IDYwIHJlCitmKgorMCAwIDAgcmcKKzE1MzYgNDYwIG0KKzE1MzYgNDAwIGwKK1MKKy9DMSBjcworL1AxIHNjbgorMjE4NCA0MDAgMTA4IDYwIHJlCitmKgorMCAwIDAgcmcKKzIxODQgNDYwIG0KKzIxODQgNDAwIGwKK1MKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvUGF0dGVybgorICAvUGFpbnRUeXBlIDEKKyAgL1BhdHRlcm5UeXBlIDEKKyAgL1RpbGluZ1R5cGUgMQorICAvQkJveCBbMCAwIDEyOCAzMl0KKyAgL01hdHJpeCBbMC4yMDI0ODggMCAwIC0wLjQ0OTk0NyAwIDc5MS45OTldCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvSW1hZ2VDXQorICAgIC9YT2JqZWN0IDw8CisgICAgICAvUjE3IDYgMCBSCisgICAgPj4KKyAgPj4KKyAgL1hTdGVwIDEyOAorICAvWVN0ZXAgMzIKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMC4yNCAwIDAgMC4yNCAwIDAgY20KK3EKKzAgMTM0IDUzNCAtMTM0IHJlCitXIG4KK3EgNTMzLjMzMyAwIDAgLTEzMy4zMzMgMCAxMzMuMzMzIGNtCisvUjE3IERvCitRCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRGVjb2RlUGFybXMgPDwKKyAgICAvQ29sdW1ucyAxMjgKKyAgICAvQ29sb3JzIDMKKyAgICAvUHJlZGljdG9yIDE1CisgID4+CisgIC9GaWx0ZXIgWy9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL0hlaWdodCAzMgorICAvV2lkdGggMTI4CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0diIjBKWW1KMyImLVRpKWVZck4xajoyOyZUIV9zXE8uVHFWKmsnWWQ6JSxXYHJbbihRcVI/KjhsLzBxKFYxMi88UU1ySzc+UGJpJERzPzAtCiteU1FFUHJnKk84ckVLLS1vUGEhT2RfRFcuQ0gyQFc1aCNjNTdmU2VSL2NBb01cK0ZWJ2hwVlBrR2xgY2QqXnAKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTAxNTIzM19leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTAxNTIzM19leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWEzOWU3ZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMDE1MjMzX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTAxNTIzM19leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMDE1MjMzX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhMmE3MzYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTAxNTIzM19leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTAyMTc2Ml9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTAyMTc2Ml9leHBlY3RlZC5wZGYuMC5wbmcKaW5kZXggMzlkNTMxYS4uNmM0MzZjNyAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEwMjE3NjJfZXhwZWN0ZWQucGRmLjAucG5nCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMDIxNzYyX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTA3MjQ0MC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMDcyNDQwLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlZjRmZDYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTA3MjQ0MC5pbgpAQCAtMCwwICsxLDM5IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDw8CisgICAgL0ZpZWxkcyBbNCAwIFJdCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQW5ub3RzIFs0IDAgUl0KKyAgL01lZGlhQm94IFswIDAgMjAwIDIwMF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvVHgKKyAgL0YgNAorICAvRmYgODM4ODYwOAorICAvTWF4TGVuIDIKKyAgL1AgMyAwIFIKKyAgL1JlY3QgWzcwIDkwIDEzMCAxMTBdCisgIC9UICh6aXAgY29kZSkKKyAgL1YgKDExMTExKQorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEwNzI0NDBfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEwNzI0NDBfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmOGI2M2QKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTA3MjQ0MF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEwNzI0NDBfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMDcyNDQwX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjhkMWVmMAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMDcyNDQwX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEwNzI0NDBfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTA3MjQ0MF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2U0ZmJlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEwNzI0NDBfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEwOTk0NDYuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTA5OTQ0Ni5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OWQ2ZGFlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEwOTk0NDYuaW4KQEAgLTAsMCArMSw2NSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRXh0R1N0YXRlIDw8CisgICAgICAvRzEgNSAwIFIKKyAgICA+PgorICAgIC9QYXR0ZXJuIDw8CisgICAgICAvUDEgNiAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMjAwIDAgbQorMCAyMDAgbAorL0cxIGdzCisvUDEgU0NOCisvUDEgUworZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9CTSAvRGlmZgorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1BhdHRlcm4KKyAgL1BhdHRlcm5UeXBlIDEKKyAgL1Jlc291cmNlcyA8PAorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9HMSA1IDAgUgorICAgID4+CisgICAgL1BhdHRlcm4gPDwKKyAgICAgIC9QMSA2IDAgUgorICAgID4+CisgID4+CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzIwMCAwIG0KKzAgMjAwIGwKKy9HMyBncworL1AxIFMKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTA5OTQ0Nl9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTA5OTQ0Nl9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA3NGJkOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMDk5NDQ2X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTExNjg2OS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMTE2ODY5LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxMjNlMzgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTExNjg2OS5pbgpAQCAtMCwwICsxLDExNyBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNSAwIFIKKyAgL01lZGlhQm94IFswIDAgNDAwIDQwMF0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvRjEgNCAwIFIKKyAgICA+PgorICAgIC9QYXR0ZXJuIDw8CisgICAgICAvUDEgNiAwIFIKKyAgICA+PgorICAgIC9YT2JqZWN0IDw8CisgICAgICAvWDEwIDkgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEwIERvCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1BhdHRlcm4KKyAgL1BhdHRlcm5UeXBlIDIKKyAgL1NoYWRpbmcgNyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9TaGFkaW5nVHlwZSAyCisgIC9Db2xvclNwYWNlIC9EZXZpY2VDTVlLCisgIC9Db29yZHMgWzAuMCAwLjAgMS4wIDAuMF0KKyAgL0V4dGVuZCBbdHJ1ZSB0cnVlXQorICAvRnVuY3Rpb24gOCAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9GdW5jdGlvblR5cGUgMAorICAvQml0c1BlclNhbXBsZSAxCisgIC9Eb21haW4gWzAuMCAxLjBdCisgIC9GaWx0ZXIgL0FTQ0lJSGV4RGVjb2RlCisgIC9SYW5nZSBbMC4wIDEuMCAwLjAgMS4wIDAuMCAxLjAgMC4wIDEuMF0KKyAgL1NpemUgWzJdCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK2ZmCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9HNyAxMCAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCiswIDAgbQorMyAzMSBsCisvRzcgZ3MKK2YKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1NNYXMgPDwKKyAgICAvRyAxMSAwIFIKKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDExIDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisxIDEgMiAyIHJlCitXCisxMDAgMTAwIDIwMCAyMDAgcmUgcworVworMCBnCisvRjEgMTIgVGYKKzAgMCA2MCAzMCByZQorVworbSAxMDAgMTAwCisxMzAgMTUwIDIwMCAyMDAgMjUwIDIzMCBjCisvUGF0dGVybiBjcworL1AxIHNjbgorKEFCQykgVGoKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTExNjg2OV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTExNjg2OV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZmM2YxZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMTE2ODY5X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTEyODI4NC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMTI4Mjg0LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkZmRhOTcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTEyODI4NC5pbgpAQCAtMCwwICsxLDk0IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgID4+CisgID4+CisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCiswIGcKK0JUCisvRjEgLjEgVGYgMSAwIDAgMSAxMDAgMTAwIFRtCitbKGEpMTYwMDAoYikxNzAwMChjKV1USgorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTMKKyAgL0NoYXJQcm9jcyA8PAorICAgIC9hOTcgNiAwIFIKKyAgICAvYTk4IDcgMCBSCisgICAgL2E5OSA2IDAgUgorICA+PgorICAvRW5jb2RpbmcgOCAwIFIKKyAgL0ZpcnN0Q2hhciA5NworICAvRm9udEJCb3ggWzAgMCAxMDAgMTAwXQorICAvTGFzdENoYXIgOTkKKyAgL1dpZHRocyBbLTEwMCAtNTAgLTc1XQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorNiAwIDAgNDggNiAwIGNtCitCSQorL1cgNgorL0ggNDgKKy9CUEMgMQorL0lNIHRydWUKK0lECit4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHgKK0VJCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorNiAwIDAgNDggNiAwIGNtCitCSQorL1cgNgorL0ggNDgKKy9CUEMgMQorL0lNIHRydWUKK0lECishISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEKK0VJCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL0VuY29kaW5nCisgIC9CYXNlRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZworICAvRGlmZmVyZW5jZXMgWzk3IC9hOTcgL2E5OCAvYTk5XQorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzExMjgyODRfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzExMjgyODRfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhMGRmMzkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTEyODI4NF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzExMzkxMF9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTEzOTEwX2V4cGVjdGVkLnBkZi4wLnBuZwppbmRleCA1N2M2ZjA4Li4yNTBlYTczIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTEzOTEwX2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTEzOTEwX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTEzOTEwX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTEzOTEwX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKaW5kZXggNWIyMWY1YS4uZjZkOGZjYSAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzExMzkxMF9leHBlY3RlZF9tYWMucGRmLjAucG5nCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMTM5MTBfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTEzOTEwX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzExMzkxMF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzNjZDgxCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzExMzkxMF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTEzOTEwX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTEzOTEwX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmZjkxOTQuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzExMzkxMF9leHBlY3RlZF93aW4ucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzExNjEuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTE2MS5pbgppbmRleCAxZjAyYWI1Li5mMzMxN2UxIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTE2MS5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTE2MS5pbgpAQCAtMjEsNyArMjEsNyBAQAogPj4KIGVuZG9iagoge3tvYmplY3QgNSAwfX0gPDwKLXt7c3RyZWFtbGVufX0KKyAge3tzdHJlYW1sZW59fQogPj4KIHN0cmVhbQogcSAxIDAgMCAxIDUwIDUwIGNtIC9YMCBEbyBRCkBAIC00OCwyMCArNDgsMjAgQEAKIGVuZHN0cmVhbQogZW5kb2JqCiB7e29iamVjdCA3IDB9fSA8PAotL1R5cGUgL0V4dEdTdGF0ZQotL2NhIDAuMgotL0NBIDEKKyAgL1R5cGUgL0V4dEdTdGF0ZQorICAvY2EgMC4yCisgIC9DQSAxCiA+PgogZW5kb2JqCiB7e29iamVjdCA4IDB9fSA8PAotL1R5cGUgL1BhdHRlcm4KLS9UaWxpbmdUeXBlIDEKLS9QYXR0ZXJuVHlwZSAxCi0vQkJveCBbMCAwIDE4IDE4XQotL1BhaW50VHlwZSAxCi0vWVN0ZXAgMTgKLS9YU3RlcCAxOAote3tzdHJlYW1sZW59fQorICAvVHlwZSAvUGF0dGVybgorICAvVGlsaW5nVHlwZSAxCisgIC9QYXR0ZXJuVHlwZSAxCisgIC9CQm94IFswIDAgMTggMThdCisgIC9QYWludFR5cGUgMQorICAvWVN0ZXAgMTgKKyAgL1hTdGVwIDE4CisgIHt7c3RyZWFtbGVufX0KID4+CiBzdHJlYW0KIDAgMCAwIHJnCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTE2MV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMTYxX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2YTRmZWUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTE2MV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTIzNjgwNS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMjM2ODA1LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2NGYwNDgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTIzNjgwNS5pbgpAQCAtMCwwICsxLDg2IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvQ29udGVudHMgNiAwIFIKKyAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgNyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKyA+Pgorc3RyZWFtCitCVAorL1Q0IDEgVGYKKzAuMTIgMCAwIC0wLjEyIDk5Ljg0IDY4NC4xODAxIFRtCiswIGcKKy9HUzEgZ3MKKzAgVGMKKzAgVHcKKygCKVRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9Gb250IDw8CisgICAgL1Q0IDExIDAgUgorICA+PgorICAvUHJvY1NldCBbL1BERiAvVGV4dF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDExIDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTMKKyAgL0NoYXJQcm9jcyAxMiAwIFIKKyAgL0VuY29kaW5nIDEzIDAgUgorICAvRmlyc3RDaGFyIDAKKyAgL0ZvbnRCQm94IFs0IC0xOSA1MyA1Nl0KKyAgL0ZvbnRNYXRyaXggWzEgMC4wMTEyOTIwODc4OTA4MDQxNTkzMzI5MjA0MzM0IDAgLTEgMCAwXQorICAvTGFzdENoYXIgNAorICAvTmFtZSAvVDQKKyAgL1dpZHRocyBbNjAgMzggMzggMzggMjFdCis+PgorZW5kb2JqCit7e29iamVjdCAxMiAwfX0gPDwKKyAgIC9DViAxNyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEzIDB9fSA8PAorICAgL1R5cGUgL0VuY29kaW5nCisgICAvRGlmZmVyZW5jZXMgWzAgL0EwIC9DVSAvQ1YgL0QyIC9DWV0KKyA+PgorZW5kb2JqCit7e29iamVjdCAxNyAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMzggMCA1IC0xOSAzMiA1NiBkMQorcQorMjcgMCAwIDc1IDUuMSAtMTkuMSBjbQorQkkKKy9XIDI3CisvSCA3NQorL0JQQyAxCisvSU0gdHJ1ZQorSUQKK0VJCitRCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyMzY4MDVfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyMzY4MDVfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkNGVlYmUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTIzNjgwNV9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyMzZfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTIzNl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDgxMjVmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyMzZfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyMzc4OTguaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTIzNzg5OC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDVlNGM2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyMzc4OTguaW4KQEAgLTAsMCArMSw2MCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQW5ub3RzIFs0IDAgUl0KKyAgL01lZGlhQm94IFswIDAgMTAwIDEwMF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvQnRuCisgIC9GZiA2NTUzNgorICAvUCAzIDAgUgorICAvQlMgPDwKKyAgICAvUyAvUworICAgIC9XIDEKKyAgPj4KKyAgL01LIDw8CisgICAgL0kgNSAwIFIKKyAgPj4KKyAgL04gNiAwIFIKKyAgL1JlY3QgWzEgMiAzIDRdCisgIC9UIChmb28pCisgIC9UVSAoYmFyKQorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL05hbWUgL0YjZTlNCisgIC9Gb3JtVHlwZSAxCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyMzc4OThfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyMzc4OThfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxOTkzMmEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTIzNzg5OF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyNDE1ODcuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI0MTU4Ny5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWIxNjM3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyNDE1ODcuaW4KQEAgLTAsMCArMSw3OCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCAxMDAgMTAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgID4+CisgID4+CisgIC9Db250ZW50cyA0IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorQlQKKy9GMSAxIFRmCisocykgVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUzCisgIC9DaGFyUHJvY3MgPDwKKyAgICAvcyA2IDAgUgorICA+PgorICAvRW5jb2RpbmcgPDwKKyAgICAvRGlmZmVyZW5jZXMgWzExNSAvc10KKyAgPj4KKyAgL0ZpcnN0Q2hhciAxMTUKKyAgL0ZvbnRCQm94IFswIDAgMSAyXQorICAvTGFzdENoYXIgMTE1CisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL0ltMSA3IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvSW0xIERvCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9XaWR0aCA1MAorICAvSGVpZ2h0IDUwCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis3ODljZWRjMjMxMGQwMDAwMGMwM2EwN2YyYWFhYjNlYTdiY2YwMzg0MjY1NTU1NTU1NTU1NTU1NWY1YmYwMWNjNzgxOGRjCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyNDE1ODdfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyNDE1ODdfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxOTkzMmEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI0MTU4N19leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyNTg2MzQuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI1ODYzNC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjZjNzc4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyNTg2MzQuaW4KQEAgLTAsMCArMSw1MiBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0tpZHMgWzMgMCBSXQorICAvQ291bnQgMQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8L0ltMjUgNSAwIFI+PgorICAgIC9Qcm9jU2V0IFsvUERGIC9UZXh0IC9JbWFnZUMgL0ltYWdlSV0KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzUwIDAgMCA1MCAwIDAgY20KKy9JbTI1IERvCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9XaWR0aCA0NDcKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvTmFtZSAvWAorICAvSGVpZ2h0IDE1MAorICAvRGVjb2RlIFswLjAgMjU1LjBdCisgIC9GaWx0ZXIgWy9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZSAvSlBYRGVjb2RlXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitHaFFHX1l0aTFqJjtMNCsmaEhJOzhaQzNuJVUibSRqVSFcYyw5WHVZLHNeNGAjXCxUPj1MLDFVK242PlwhPjxgK006XnMnbVRlL2o9TFJZcworczguM0wrRF47S2dlVjlVITVtUjNCQEU8dVAnXWA6Yy1tQ2xkPi08MDRPQGhzKHQ5Xy5PSGhkUixgIW0+QjNZXTVmc1RyPCFSTmJyQ0QqJ3AKK3BCc1Y+SThCIV1OMFFwNToyWk1TIlkkUF1gTmoxRi1BRyQxLyYsZj5DRHFFWmM+YiVCP0sidWEqQyJQRThKQVdCQUYndG0taiRxNnFHZkJrCitlW3NHSCtuYlgzcD4jT0BHTUs1UDVKT2ooVG1RRjthbF5OWltnREZtOks5cWM4PkQ4OStjU2ktTEdUPiU9dFw5Mm1mWm4ufj4KK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI1ODYzNF9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI1ODYzNF9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZkNjZlYgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMjU4NjM0X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI1ODk2OC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMjU4OTY4LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMTMxOGYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI1ODk2OC5pbgpAQCAtMCwwICsxLDIxMSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL0NvbnRlbnRzIDEyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA3MjAgNTQwXQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUGF0dGVybiA8PAorICAgICAgL1AxIDEwIDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvTWFzaworICAvQkMgWzEuMF0KKyAgL1MgL0x1bWlub3NpdHkKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9FeHRHU3RhdGUKKyAgL0FJUyB0cnVlCisgIC9CTSAvTm9ybWFsCisgIC9DQSAxLjAKKyAgL09QIGZhbHNlCisgIC9PUE0gMQorICAvU0EgdHJ1ZQorICAvU01hc2sgNCAwIFIKKyAgL2NhIDEuMAorICAvb3AgZmFsc2UKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9Cb3VuZHMgWzAuMzAwMDAzXQorICAvRG9tYWluIFswLjAgMS4wXQorICAvRW5jb2RlIFswLjAgMS4wIDAuMCAxLjBdCisgIC9GdW5jdGlvblR5cGUgMworICAvRnVuY3Rpb25zIFs4IDAgUiA5IDAgUl0KKyAgL1JhbmdlIFswLjAgMS4wIDAuMCAxLjAgMC4wIDEuMF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9GaWx0ZXIgWy9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL04gMworICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitHaFNeU0c+cVBuKDVMNUxHQyN0LTBRXC5YbXFpJ2hdaCtKOSRIKCdmNlEnOiFUbnMzaidvNDdeO1FORGdgLjY1QDg/QFZWK1dyMUAlbkk3LgorQFBFXDxXKzhCTDhwa28wbilgWyphMV5CYUJDQnA5Zm1CQCEvY1svaCElb28sUTMmMiItZkJjK11AIUNKQSpEUS8hIT5AISEtOC4tWFIrMEgKKzBYI0Y8UC06Y0Y0XjZ0TXJeRiNHIUAzLU8xQTIkT2UldSYzQmlaUWYhISFdYUBTOFUsUmpJJycmWj1edDE8JnJpJlE5P0BgPS9OW2JTTVFSCitAWDBbVUk6ZjZNNStnTHNiajlFbT5LI05rMVlNIy8wbUFQI0YsbD4sQE8rNFcscm80KlkpJSJTPT1bKzVjNSNqZ0VHUltrUjEwLlIsZG4oPworWENNcDRNM3UzbCVzOF1ZJmNjbUhVYj1eZCRQbV5QIlFEZVpCNFUvclxPam1FXGZPTTpESmorLVRfaVxLZGw3RFtFQTNUQWIyZm5ubU1ZOFcKKzlPOW1fVD9tRiwxPy4kOTc3Rlg+XCROPW9bUDBIOVUvOmw0blNfJVRnWCNMSWpBWEFJPjQzUUFeW2ZRXSEuWmRPV20udDpDXklLTFp1Nig0CityblxfVFhvLzVqTVlib1RzMkI3c2lkIioyI1Z0ZEE5bGtBczl0MjEvTTdCNG5sW0x0biU9UmIwJ0NnN1xRXFkiRjhScjFXIkVcWT49O2JmagorNjlbT29QS0RoMk5XMixacyNCTU9vLlVPNSxdYFoiU2dZZEwxaEJvdVAsUjIhMkhSXT1pNmYqSnM0InU6KSJvPipTbmpIOk4/ODBZYzMtXTIKKztaWkgxMDBpQmohL11NXm1lWkMjJGMjNzRuXWN0a1MsPkRDVCo1LGlZJksqaU9qLVZzJ14kTVU6MWpuLzNNNHBBZitPX1chRCE4QTpdUkxcCisnQmZJLD9pYihwIiluOjReXmdSIUUiRUlaIVoiPDJsJHM6YjVwOT5AOGpGOUgjJ1BTWllSYFJCLUk7ZmhKOUdsOT5RZS1EJTwpc2hKYnJnaAorOVJwYmAoOydoWiYtUURiMS42Wy0rPmxcLzE1JTIkIzM1bzQ2MzBuMidGaSNLOEl1Q0Y2QTxialchb1xabENcNVUnRCprdSlTLTJbSypKIVwKK2NrblNLcjxnNWomWFddIkAyMmxMMk1FJFEvKm1lJV9ealhqMyIlP2hNckNkVyVHVXEqS0E1PUJuLXNVSiplZzYmRXNQJGUjUnNYJE4iSDlSCitOV15MWzgwWW9AZWZeZVsyOkAjXitJdSU2RVhOYVJBcnNKTSUjVFkyVVByJVstbS1xbydGVTFbPihcOnBlWS8icmcvLVYoPkdzOisvRiJJSworTilpQ2VVQCRAQmtVOk5jM1l1KFJZIXNMIlQwY21TJiJ0QXRZOyRrJiVBU2lkYFY8aTgwZSZKaVF1XkNsOUlvNixBY09XSVJEV0w9JDxUWnMKKyw7b2hOYCFXXnBmTlJWcm0hN3E/Rm9xT0Y4JlZDYy85InEqKGBYJmZLV0UqNWBMWG1VaVsvWFFHVV45YGhCIWJsQkIvVVIoJjE3Ry1iXlplCitKUjlOaic2RlBAS1EnNmJANkw8PWNwRzY5R1gtTEYsU0R0akcvT3E5UWFpJlg2VGUsVjhmVChpLS07NVc4RkU5VVAqISY5Rkk3MCRGSTJXXworOUlCKGU/LSJhMiFJNjMrTTB0MFhNIzlfbywlMlxTLyZATlIub0B0SS04P3E9PlM4XWgvYTRhcTtSL1FuPjRTSiJeWjo9Zj86bWAxPyZDKT0KKzddS2VbWysnb11TMjxbZz5XUEQ6PytPOztXOlZ0My4yZjRHTmY5a0U+R2JOYlRaZV5NRT0sJVtVcHM/KlBSV2pIYiU4XXUnZ3BOSnFHTDdqCitBXmtYc0lGTUQmKS1KS0MjaF8+bkhKLFgxVUdSWSQ2aEAuTmQ0L2ZXQlolMyRFW2wrNEVaRFZBRVwyPGFFcUFpb25oMEpRcSw3I2hxJyNRWAorJD9RR0lLaUVjbiRMSjAyJ2lCaG1NQlJrZk1MLSdrLyddUD9Qb1Ejajh1NS0tUGpVITxhcC0iXmIsXmE7LmViRj1XTWxoQVgoODZbV2EmR2kKKzs1TDgnVzI/TG9XTGQlWjxobFRSV0gkSWdlQlkqWFY5QDptbCJUYy5IOGc3UT8hNXVSPylXMztdaGEmQjZXW2NjN1pnMEBgXjxJUC06OVJkCitaViVQc0Yma3EuLm88OUNYJytiWzJJO2xIU1pLTHRdMTczUzdvcSc5QjlRKiZjQlBLRVktMl9vRFI4YTU0Z0xaYz9DIm9NaEpJXCI1IXFQNworSXVqUyciNShFQytQRUZFVFxnOz1abl5WW21QLFw4NjYiU3FuVmVCRjdaOXBZWS9XS0FjLE82PzFtN3AnLCpSMjZrR0RGWzByRV0iSFY/WW0KKz1kdTdVMjRFPltRU0o0ajAvRHVRczQsISVKbjdldEVTSFhtbCIuRVZaR1o2ZVEoXHI1QzlRLy5DUG04LW9kOHVXbE9Qbl4yTEx1MFJxWihZCitnTl9LL1tOYzIxLEZEP1JcOCRmLUYwZihkR0swJ1Fdb0JfQHJlMTUnJWBUIVglUyVQOlFLVHNbLzg4P0VtXG8qY0Y/SkpAbDlvaVJHTTtMQgorbEUnRXRGRGMmSG0lV2FdRnVlVj1sKU8zQGlkL2lBXFhUIStoc0haX11YdGxTQ0EvKVdMa2lIMFdDTlNZTjk7dEIzbVU8JilJPyFBYyFJYTUKK2YmIUk/MERNMmdyLWMkTk47MEZKWkAmLWhCRGxaRjxyNyU6UFBpPnJsaGhoMCheMD0xM1duPiteVkNrQCYhZ3JgalhrPFshXlhPZDQrXExYCitsTlV1KklpajdLI25FcEZHbk9qNT1yPnMsN0w9dFwzdVtmUmdiJC9fcjtKSWJBXHIiYSZYIWEyJlBXbC9PV0tYTU9lWWROOzYtSTA2bjpgSgorVUg7cWgwYkgtcUBjaXUnMCZPM2UsMVxmYCxeK0VkbVlcWGxmMmFCKDlOdWQjOiw3aElHOzozWyp1VFBicl1OJm5mdGErTm40aFErMFsiS0wKK206JjRnXTxKP2dkaTprUS0iZiFcMHNOS1IuYGpEWjgoKUxiRilsRW8lK2glU2EqaiowUEhsaVE0dUZiXUU5Xm45QTZOYjAvajJEczFmJmptCitiM1I+TGMsZSdGYT5EKmxhVy9SMmNlPWRFYlAxMEFiKGQzJ0E5UzxYVTdcRGtUcTY0dUUlSyRZVmBzOTxERkVwNzRSInQ3Pz5tUERyZypLKAorIWpAM1o9LnJbIjxjby5XKFRvRDI+T0IjdV5gJGxcX09AWDhSVlJpNTo5PSVuR0BXakZJSHBZTk1UZ3ItTWRDN1Znc0IzKjtTOS9XSSYkR1UKK2pxPExgSWBdWVhMSkBZKFVHZDBQcE1JMWo7UzIlIy5ELDR1Ujk8WzhnJiNlanE9VXI4XlQuKkVFR09SYl4nXj9lXiJZNnFHaFt0XjQpWz5dCisuOiQoUTNQSF9XN3A/X0FXak0nQWNGQkZzV2lgO3FtMzptMG1NYDI2VzlMODJXbmdfUV4rUXM2Vzg9WWpGZ3ByMC9cQzM/WWtKUm9Ga1BOVAorOk0hbmReM0JJYnFzUE5vNTElbFJkbmtIKEYibGU4UEsmRXVUIScjPTJdWWRZPC1JS0NAR110aixHQFc9UnIiUl9OW2MtUUJTTiIxYy1zXkIKK081OWBSai11JkVqLUJlTFsrO1BDaTQvOk9kcjQ5XSpCckczVT9hKWJBQlQyTmhzRVRyM0U9YztbSDRtQltPOFBGRyFwTl9TRyMmI2Vga0crCitsP2VgYCYiY11gO2glakFDckpFT1xgLltnazZvU10/LSdaNEYidXE9R1pTLyVyQ14iU0RLZ2tYcEtkTC1JLmBCS1B0TzlDNG0wIjA/OU5BUworcm4/VyZOOWZqaUNpNldRPjUrV2JfPjhwY0k1Wkxqck8yWUYyc2tMKyVQL0pXMnM8QUtuV3E0dC8lOXFGaFxdTlgxYmNSWXBzKUZzYVFPWjwKK1NaMDU4R0AwLktcW1FPLWgjbTslZFlDXjJXdWljVENBOlsrYTQ9K1dkQmQ9KEElZHJAKm9BJlBOQmQ6aHFrczAlYEQ9UU5XW0g9RFMjLmE2CitjOmlSWmhnRSQ1bCw5cFBCKyRMQTU+MiRocW1rU1Rtc105UFYwPWg0RzJgXSpgVCIpXzAsN2U3SVYmMlBDRydsImRIZ0dWJGhMMzUnXSdnVAorYkJWZTUwKFJpWjZMSzNlcWpKJmwrJClYX0lzZUpmXjo2YC8lSTlEUiJUfj4KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICAvQml0c1BlclNhbXBsZSA4CisgIC9EZWNvZGUgWzAuMCAxLjAgMC4wIDEuMCAwLjAgMS4wXQorICAvRG9tYWluIFswLjAgMS4wXQorICAvRW5jb2RlIFswLjAgMjU1LjBdCisgIC9GdW5jdGlvblR5cGUgMAorICAvT3JkZXIgMQorICAvUmFuZ2UgWzAuMCAxLjAgMC4wIDEuMCAwLjAgMS4wXQorICAvU2l6ZSBbMjU2XQorICAvRmlsdGVyIFsvQVNDSUk4NURlY29kZSAvRmxhdGVEZWNvZGVdCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0doUCRsQHM4I1AnRXVrUHJVNy4yZ1U+cVhbUFxeLGRxJi4uMVw6PW9QK3RzXUdEWS49UFAwZ0dnZFYrRVQ/O09IRzEvYHNMak9scSZLSShMCitmIS1cSGtJcTdCJnVWYVlsU1FvViExZzdeM0k+XWQoTj5MbGtSb0xQbGVyUmBgQUpeMWxhVUFhRFcyRkwyZVwwPGkzIzVXTFxsPjMnRC5BOQorTSdHLGBQMUM6L2pYR00xazwrL1k8SVRkK0M1LSZRMmB1R0ZHTi08JVVDWy01Y1RnQUVeMVtdOS8mKDhUcGIlJFJWZD8qKWlcck9qOm8hcigKK1k7am1jL2hYXCclc2VdPENXXGlnRGNVUVBLLD9AWmVoQlIsWlFAKVFdYi85Zi1GbzlQZHNrP0E/bCFmZ1VObkQwXW5pTU5eImJBViJYUycvCis9Oz5WUkIhJ21qQHRYZTFXMXFqXDstYyQ0RDZyN0UlXWw4WX4+CitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL0JpdHNQZXJTYW1wbGUgOAorICAvRGVjb2RlIFswLjAgMS4wIDAuMCAxLjAgMC4wIDEuMF0KKyAgL0RvbWFpbiBbMC4wIDEuMF0KKyAgL0VuY29kZSBbMC4wIDI1NS4wXQorICAvRnVuY3Rpb25UeXBlIDAKKyAgL09yZGVyIDEKKyAgL1JhbmdlIFswLjAgMS4wIDAuMCAxLjAgMC4wIDEuMF0KKyAgL1NpemUgWzI1Nl0KKyAgL0ZpbHRlciBbL0FTQ0lJODVEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitHaFcmcG4oN1RTNTZpcT4xJWBoYm4mIzNUKVtWPC4hJ0BeXW9gfj4KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1R5cGUgL1BhdHRlcm4KKyAgL0JCb3ggWy03OS4wOTQ3IC03NS4zMjI3IDI5LjIxMzEgMzIuOTg1MV0KKyAgL01hdHJpeCBbMi41ODAwOCAwLjAgMC4wIC0yLjU4MDA4IDAuMCA1NDAuMF0KKyAgL1BhaW50VHlwZSAxCisgIC9QYXR0ZXJuVHlwZSAxCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRXh0R1N0YXRlIDw8IC9HUzAgNSAwIFIgPj4KKyAgICAvU2hhZGluZyA8PCAvU2gwIDEzIDAgUiA+PgorICA+PgorICAvVGlsaW5nVHlwZSAzCisgIC9YU3RlcCAxMDguMzA4CisgIC9ZU3RlcCAxMDguMzA4CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKy9HUzAgZ3MKK0JYIC9TaDAgc2ggRVggUQorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDExIDB9fSA8PAorICAvVHlwZSAvUGF0dGVybgorICAvQkJveCBbMC4wIDAuMCAxMC4wIDEwLjBdCisgIC9NYXRyaXggWzAuODk5OTk0IDAuMCAwLjAgLTAuODk5OTk0IDAuMCA1NDAuMF0KKyAgL1BhaW50VHlwZSAxCisgIC9QYXR0ZXJuVHlwZSAxCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRXh0R1N0YXRlIDw8IC9HUzAgMTUgMCBSID4+CisgICAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQ10KKyAgPj4KKyAgL1RpbGluZ1R5cGUgMworICAvWFN0ZXAgMTAuMAorICAvWVN0ZXAgMTAuMAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvR1MwIGdzCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTIgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKy9QMSBzY24KK3EgMSAwIDAgMSAyNC4wODA0IDQ0MS4xNTk1IGNtCiswIDAgbQorMTQuOTU2IDE4LjczOCA0Mi41ODggMjEuNTUxIDYxLjcxOSA2LjI4MiBjCitCKgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDEzIDB9fSA8PAorICAvU2hhZGluZ1R5cGUgNAorICAvQW50aUFsaWFzIGZhbHNlCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0JpdHNQZXJDb29yZGluYXRlIDMyCisgIC9CaXRzUGVyRmxhZyA4CisgIC9Db2xvclNwYWNlIFsvSUNDQmFzZWQgNyAwIFJdCisgIC9EZWNvZGUgWy03OS4wOTQ3IDQ5LjgzNTggLTc1LjMyMjcgNzYuMTAxNiAwLjAgMS4wXQorICAvRnVuY3Rpb24gNiAwIFIKKyAgL0ZpbHRlciBbL0FTQ0lJODVEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitHaFFZOEo6ZGUwbXNBcE9eUmZLQzU2SmY1W11LTDlJYiJGMUAoSTxrbylHJi4yTlcoJmYnaVZsXlNPM0hgYTllZV5ZM1EwWklZODlzOFZrNAorMCspSydbZGE9WytXYG8ibS5lVSMydWMmR1lyKD44NUZxVF4sVixZZEorKDt1K0RdKDxfPmNVYmV0QjYqKC1WVzJeQUpiLkZccTVQcyZEPy0KK0hTPSYrckVsRDYkLTdFbGNpJkAsJC0zOSc9QzFwXzwnMWhKb3BPLmdzJ0BeNytSPnJkXGM4UiI4aktKLlYjTkE2ZFF0MURSZkIhQ0EtSzlzCiteO1MlTiFXWzZkTyslfj4KK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI1ODk2OF9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI1ODk2OF9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc3MGY3NwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMjU4OTY4X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI1ODk2OF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMjU4OTY4X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4ZjQyNzkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI1ODk2OF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI3MTU3OC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMjcxNTc4LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4MzdmNWIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI3MTU3OC5pbgpAQCAtMCwwICsxLDk1IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDEwMCAxMDBdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitCVAorNDAgMzAgVGQKKy9GMSAzNiBUZgorKCEpVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1RydWVUeXBlCisgIC9CYXNlRm9udCAvVGVzdAorICAvRmlyc3RDaGFyIDMzCisgIC9Gb250RGVzY3JpcHRvciA2IDAgUgorICAvTGFzdENoYXIgMzMKKyAgL1RvVW5pY29kZSA3IDAgUgorICAvV2lkdGhzIFs0MTVdCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvRm9udERlc2NyaXB0b3IKKyAgL0FzY2VudCA5MjIKKyAgL0NhcEhlaWdodCAxMTUxCisgIC9EZXNjZW50IC0xOTYKKyAgL0ZsYWdzIDQKKyAgL0ZvbnRCQm94IFswIC0yMjggMjAwMCA5MjFdCisgIC9Gb250RmlsZTIgOCAwIFIKKyAgL0ZvbnROYW1lIC9UZXN0CisgIC9JdGFsaWNBbmdsZSAwCisgIC9NaXNzaW5nV2lkdGggNzUwCisgIC9TdGVtViAwCis+PgorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvQ0lESW5pdCAvUHJvY1NldCBmaW5kcmVzb3VyY2UgYmVnaW4gMTIgZGljdCBiZWdpbiBiZWdpbmNtYXAgL0NJRFN5c3RlbUluZm8gPDwKKy9SZWdpc3RyeSAoVGVzdCkgL09yZGVyaW5nIChVQ1MpIC9TdXBwbGVtZW50IDAgPj4gZGVmCisvQ01hcE5hbWUgL1Rlc3QgZGVmCisxIGJlZ2luY29kZXNwYWNlcmFuZ2UgPDIxPiA8MjE+IGVuZGNvZGVzcGFjZXJhbmdlCisxIGJlZ2luYmZyYW5nZQorPDIxPiA8MjE+IDwwNjI5PgorZW5kYmZyYW5nZQorZW5kY21hcCBDTWFwTmFtZSBjdXJyZW50ZGljdCAvQ01hcCBkZWZpbmVyZXNvdXJjZSBwb3AgZW5kIGVuZAorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9GaWx0ZXIgWy9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAge3tzdHJlYW1sZW59fQorICAvTGVuZ3RoMSAxMTUyCis+Pgorc3RyZWFtCitHaFY3WTYiZ290J1JfZERTI2dITTcxZ2BgWkBTW2pfNCVhKFFWYDlma2JVbWVhQFdYMFJQci0mJnNAYls3KGBrYTJcP1EtM0pmLVIsKUNMNQorKzonIyYlcG0wcT40PGAxPTpZUlBxSVhwaVhFc0YnP1p0Vkc1UCttInM3OkZYISJAZzknRk1mZ0MkT0xGb2JXLTk3clJEWlIzUTMjNSFLdGUKK2AoQk9RTVhORFdvXipDaDZmLGoiXVFVWDVVQ3UtXGM4dUQsUWZeTjdoOUgsbiNKIic+SD82Lj1kbDMsX185ai9BIi4pSEM+KVBMQ28vay0xCisiclsiLz4vL1JjR1NsMC5yT1YuKlwobm4uMzFOZTFHXWg/OT8+TWphTmBDWnBWcUdhLU1LZSk2cT5RVj0mIlE/LXBtQVk+NFdoanNgdXE0YworbVY7YE8qXj1vRCpbQEctXFJBM1JYVE9GLFcvRkRlVCMpYXM2XiZIVFVnSGghKlgxOzNBRF5IQi8hUUtiOkhAbXJHTzA8RW1MTWhcIzRsbEUKK0EnO11lLSssSUtHPVVsRmU+Kko9RmJLXjpGJz1NbS1jRGJdNnIvMDJLRCN0TDNDSHVJbjRpJT9Rc0pqcjcpNW9JWylJdCQ5Mlw6LGNlLUJgCis0c0dULUMtbkBPRzM4VU1mUGtmT0lRLUpqQEYoWS5oVzIoSXE+K2ApWGdIWGpIbDlDZTlhIk4rKGJDTzwpNkFZQyM0J0RSMVlBUzVDaUcmVgorP188TGgvKksmMy87W2pALyloLm4vYE9ZUGdQQ1Y0OUg5YkBKZUcoc1VWa0JWW2U5NiFCVVE0cmEhKUcjWldoR2U3OTRWLFxfOmRPMlg1MHQKKzIhYi43MTByPk9pOCViQFdIOicqKCNdW3I9ailOOj1CSUhTVFxTdDlwSy0/XUosXlMhIS00aWhAZn4+CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyNzE1NzhfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyNzE1NzhfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMGJiZGIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI3MTU3OF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyNzE1NzhfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI3MTU3OF9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzE4ZWYyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyNzE1NzhfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyODZfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI4Nl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDQ0MmU0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyODZfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyODc0MDkucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyODc0MDkucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NzM4MjIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI4NzQwOS5wZGYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyODc0MDlfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyODc0MDlfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwNTA3ZTEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI4NzQwOV9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyODc0MDlfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI4NzQwOV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjAwNTU0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyODc0MDlfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyODhfMV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMjg4XzFfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY2Yjg3ZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMjg4XzFfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyODhfMl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMjg4XzJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E4Y2JlZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMjg4XzJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyOTZfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTI5Nl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Mjg4NTZjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEyOTZfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzMDQ3MTQuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMwNDcxNC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzZkOTAxCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzMDQ3MTQuaW4KQEAgLTAsMCArMSwxMDcgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9BY3JvRm9ybSBbNCAwIFIgNiAwIFIgOCAwIFJdCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0Fubm90cyBbNCAwIFIgNiAwIFIgOCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL1R4CisgIC9QIDMgMCBSCisgIC9BUCA8PAorICAgIC9OIDUgMCBSCisgID4+CisgIC9GIDQKKyAgL0ZmIDEKKyAgL1JlY3QgWzIwIDEwIDE4MCAxOTBdCisgIC9UIChSZWQgYm90dG9tIGxheWVyKQorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAxNjAgMTgwXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisxIDAgMCByZworMCAwIDE2MCAxODAgcmUKK2YKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL1R4CisgIC9QIDMgMCBSCisgIC9BUCA8PAorICAgIC9OIDcgMCBSCisgID4+CisgIC9GIDQKKyAgL0ZmIDEKKyAgL1JlY3QgWzgwIDkwIDEzMCAxMzBdCisgIC9UIChHcmVlbiBtaWRkbGUgbGF5ZXIpCis+PgorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQorICAvQkJveCBbMC4wIDAuMCA1MCA0MF0KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMCAxIDAgcmcKKzAgMCA1MCA0MCByZQorZgorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvVHgKKyAgL1AgMyAwIFIKKyAgL0FQIDw8CisgICAgL04gOSAwIFIKKyAgPj4KKyAgL0YgNAorICAvRmYgMQorICAvUmVjdCBbOTAgMTAwIDEyMCAxMjBdCisgIC9UIChCbHVlIHRvcCBsYXllcikKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDkgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9Gb3JtVHlwZSAxCisgIC9CQm94IFswLjAgMC4wIDMwIDIwXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCiswIDAgMSByZworMCAwIDMwIDIwIHJlCitmCitRCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzMDQ3MTRfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzMDQ3MTRfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4Yjc2MDAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMwNDcxNF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzMDhfMV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMwOF8xX2V4cGVjdGVkLnBkZi4wLnBuZwppbmRleCA0NGMwNDQ2Li4zM2E0NWMwIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMwOF8xX2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMwOF8xX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMwOF8xX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMwOF8xX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwZDBmMjMuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzMDhfMV9leHBlY3RlZF93aW4ucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzMDhfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzMDhfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IDFjMzY5NDQuLjEwMTNmYjEgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzA4X2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMwOF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzMDhfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzA4X2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3MGY5OTIuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzMDhfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzA4X2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMwOF9leHBlY3RlZF93aW4ucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYWNkODI1Li4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzA4X2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMzMF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzMwX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhZTU3YzcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMzMF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMzOF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzM4X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2OThlNjQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTMzOF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM1NS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzU1LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwMGZjZjEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM1NS5pbgpAQCAtMCwwICsxLDg1IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyBbNiAwIFJdCisgIC9SZXNvdXJjZXMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgMjAwIDIwMF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9Qcm9jU2V0IFsvUERGIC9UZXh0XQorICAvRm9udCA8PAorICAgIC9GMSA1IDAgUgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUwCisgIC9CYXNlRm9udCAvSG9uTWluY2hvLU0KKyAgL0VuY29kaW5nIC85MHB2LVJLU0otSAorICAvRGVzY2VuZGFudEZvbnRzIFs3IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0JUCisvRjEgNCBUZgorNiAwIDAgNiAxNTAgMTUwIFRtCiswIDAgMCAxIGsKKzxlYjViPlRqCistMTAgMCBURAorPGViNjk+VGoKKzAgLTggVEQKKzxlYjZhPlRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9CYXNlRm9udCAvSG9uTWluY2hvLU0KKyAgL0NJRFN5c3RlbUluZm8gPDwKKyAgICAvT3JkZXJpbmcgKEphcGFuMSkKKyAgICAvUmVnaXN0cnkgKEFkb2JlKQorICAgIC9TdXBwbGVtZW50IDIKKyAgPj4KKyAgL0RXIDEwMDAKKyAgL0ZvbnREZXNjcmlwdG9yIDggMCBSCisgIC9TdWJ0eXBlIC9DSURGb250VHlwZTIKKyAgL1cgWzEgWzI1MF0gMTggMTkgNTAwIDU0IFs4MzNdIDgxIFs1ODNdXQorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCisgIC9Bc2NlbnQgODgwCisgIC9DYXBIZWlnaHQgNzA5CisgIC9EZXNjZW50IC0xMjAKKyAgL0ZsYWdzIDYKKyAgL0ZvbnRCQm94IFstMTY1IC0yMjEgMTA2NiA5NTJdCisgIC9Gb250TmFtZSAvSG9uTWluY2hvLU0KKyAgL0l0YWxpY0FuZ2xlIDAKKyAgL1N0ZW1WIDgxCisgIC9TdHlsZSA8PAorICAgIC9QYW5vc2UgPDAxMDUwMjAyMDUwMDAwMDAwMDAwMDAwMD4KKyAgPj4KKyAgL1hIZWlnaHQgNDUwCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM1NV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM1NV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2JkMjNhZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzU1X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM1NV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzU1X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhZTgxMWIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM1NV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM1NjE0OS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzU2MTQ5LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZDY1MDIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM1NjE0OS5pbgpAQCAtMCwwICsxLDIxNiBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgMTAwIDEwMF0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Qcm9jU2V0IFsvUERGIC9UZXh0XQorICAgIC9Gb250IDw8CisgICAgICAvVDFfMCA1IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitCVAorL1QxXzAgMTAgVGYKKy0wLjAyIFRjIDAuMDIgVHcKKzEgMCAwIDEgMTAgMjAgVG0KK1soXDIwMSktMy42KFwwMjdcMDM2KS01LjQoXDAwNyktNi42KFwwMDcpLTUoXDAyNiktMi41KFwwMzRcMDMzKV1USgorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9KWFVJUU4rQmVybmhhcmRHb3RoaWMtSHZ5CisgIC9FbmNvZGluZyA2IDAgUgorICAvRmlyc3RDaGFyIDEKKyAgL0ZvbnREZXNjcmlwdG9yIDcgMCBSCisgIC9MYXN0Q2hhciAxNzMKKyAgL1dpZHRocyBbNjY1IDU3NiA1NzYgNjI1IDU3NiAyNTUgNTM1IDYxNiAyNDcgMCAyNTAgNTI5IDk3MCA1NDAgNTM0IDUyOSA1MzEgNTQyCisgICAgICAgICAgIDUxOCA3MTQgNTIyIDIzOCA0NDcgMzUyIDM3MiA0ODcgMjAwIDM5OSAyMzUgNTM4IDQ5OSAwIDAgMCAwIDAgMCAwIDAgMAorICAgICAgICAgICAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAKKyAgICAgICAgICAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwCisgICAgICAgICAgIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTQzIDU3NiA1MzUgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDYyMAorICAgICAgICAgICAwIDYzNSA1NjEgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTQyIDAgMCAzMzIgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAKKyAgICAgICAgICAgNTAwXQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL0VuY29kaW5nCisgIC9CYXNlRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZworICAvRGlmZmVyZW5jZXMgWzEgL0ggL3plcm8gL3R3byAvTiAvb25lIC9wZXJpb2QgL28gL1YgL2NvbW1hIC8ubm90ZGVmCisgICAgICAgICAgICAgICAgL3F1b3Rlc2luZ2xlIC9FIC9XIC9uIC9kIC9iIC91IC9wIC9maSAvdyAvZSAvbCAvYyAvdCAvciAvYQorICAgICAgICAgICAgICAgIC9zcGFjZSAvcyAvaSAvaCAvVCAxMjcgL2cgL3RocmVlIC9TIDE0MSAvQyAxNDMgL0QgL0IgMTU3IC9QIDE2MAorICAgICAgICAgICAgICAgIC9mIDE3MyAvYnVsbGV0XQorPj4KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCisgIC9Bc2NlbnQgMTAwMAorICAvQ2FwSGVpZ2h0IDY2NgorICAvQ2hhclNldCAoL0ggL3plcm8gL3R3byAvTiAvb25lIC9wZXJpb2QgL28gL1YgL2NvbW1hIC9xdW90ZXNpbmdsZSAvRSAvVyAvbiAvZAorICAgICAgICAgICAgL2IgL3UgL3AgL2ZpIC93IC9lIC9sIC9jIC90IC9yIC9hIC9zcGFjZSAvcyAvaSAvaCAvVCAvZyAvdGhyZWUgL1MgL0MKKyAgICAgICAgICAgIC9EIC9CIC9QIC9mIC9idWxsZXQpCisgIC9EZXNjZW50IC01MDAKKyAgL0ZsYWdzIDQKKyAgL0ZvbnRCQm94IFstNTAwIC01MDAgMTUwMCAxMDAwXQorICAvRm9udEZhbWlseSAoQmVybmhhcmQgR290aGljKQorICAvRm9udEZpbGUzIDggMCBSCisgIC9Gb250TmFtZSAvSlhVSVFOK0Jlcm5oYXJkR290aGljLUh2eQorICAvRm9udFN0cmV0Y2ggL05vcm1hbAorICAvRm9udFdlaWdodCA3MDAKKyAgL0l0YWxpY0FuZ2xlIDAKKyAgL1N0ZW1WIDE0NAorICAvWEhlaWdodCA0NzIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9TdWJ0eXBlIC9UeXBlMUMKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorNzg5Yzk1OTc2OTU0MTQ2N2JhYzdhYjY4YWJhYjE1NmQxN2FjMTFhYWI0YWExMTcxMTc4YzE5NjNkNDhjCiswYjZlODhhOGI4YTAwOGNhOGUwMjJhNDhkM2IyZWY0Mjc3NTc3NTc1NzUwMzBhYTI0MDIzYzhlZTgyMDIKK2M2MGRkY2UzNzYzNDg5YTI0OTI2NjM3MjMzMjc2NjcyNmVjYzc4MjdiOWYxMjllZWNiOWM3MzVmMjY1ZgorZTZlM2JkYTczZjc0OWZkM2Q1ZWZmYjJjZmZlN2Y3ZmM5YjI0NDZiODExMjQ0OWIyNDE2MWExZWJiNzZjCis5YTEzOTA2MDRjNDk4YzMxYzZhZjRiMzUyNTI2YzVjZDBiY2NjODFlZmVkNmEwNzJhNDNhNzk4NGNkNjYKKzk3YTkyOTg0Yzc3MzcxMGM3ODhkODU5MDcxOTAzMWJlNjNmMmQ4ZjMxMzA4Mzc5MjdjZmZjMzk5YWI2NgorYmRiNzc4ZjEwMmMzZjZjNDA0YzNkYWQ0MTQ5MzYxNTVlYWMxNDMzMTI5ZDk4NmY1Mjk3MTdlNzMwZDJiCis4MzgzMGQ1YjkzZjYyNTlhZDIwZDViMTNkMjEzOGMxOTA5ZjE4MTA5MzFmODAyODJjNDJmMjI5MTIwYzYKKzEwYzQ1ODgyMThhZjIxN2MzNGM0MmM4MmYwMjc4OGY3MDhlMjhmMjRiMTg4MjQwMjc0YzQ0NjgyZDhlYworNDY2Y2QzMTA2MTA0NjEyMjg4ODMwNDM5YzE0MGNjMjBlNjEyN2VjNDdjNGQ4MDI2OTBkODQ0ODQxMGRiCitjODFkNjQ4Y2VlMDA5MWUyNjZkNDY0MTJjZGM0MzcwNDMxMTMyNzQ4OGNjMDg3ZmIxMjExNDQyZWYxODQKK2Y0MjE4YmM4YmZiOWU1Yjk3ZGE5ZDlhMjY5MWY5MTM4ZTI0N2VhMjBmNTQyM2I0MzliYWU2ZGEzNTlkYQorNDliZmQwZWRkNjc1OGU5YzNjZjJlNGE4ODA1MWE2NTE5N2RjZDdiYTk3OGYyNjQ3MDc4ZmVlMWEyMzhjCiszOTNiZTYzZmY0NmVmYWVjYTE3ZTNkN2E2NzczYTk3NTJlNTI4ZmVlYWE5ZWQwNDFjMjQyZDU5MzY5ODEKKzBlMGE3OTY4NWI1MDA3YTU0N2Y3NmRhZTVmNWMyNDkwM2Y2OGRlMjEwMzczYTJjNmUxNzBiNWVhYmE2ZQorZDZmNmY0YjI3NzEzM2VkZTE1OTk5NDFjMTVkZDc2ZThhYTk5YjdkYTZjNTZmNjcwNDY5NDMxODVkN2EzCisxYmM1MzA4M2JjMDUzMzM0YjBlNzMxZDNiM2JmMzMzNjM2MzkzOTI2YjZmMzQwY2ZjN2VkZWQxZmYzZmEKKzEyZjA1MDU3YzIyNGIyMDM3ODI4MDA2ZjhkM2EwM2JlNjE5MDEwMTdiMDZjNTlkYzAwMDgzMGU1ZDJkNworMmY1ZWY2MmU0MzA2MWViY2FiMTk4OGY0MDUxNmY5NDdlY2M5NGI4ZGUzMTc4N2M0ZjkyMjNmMTZlZDc5Cis4YjI2ODIxZjJjZmMxOTNjMjE5NWQ3ZGI1YzgzMzQwZWQzMDQ1MzM0MmEzMWU4Y2ZhMDU5MDU5NGQ1MjYKKzViNTk1MWNlNTEwZWYyY2E3ZTdiNTIyMjZiYTY0NWJhMGNmZDkzMmFhNWNiOTY0YjI2MzE0ZjJhZjM5MgorYTRlMWIwNjE4MWEyMTU0ZjRhOGQ1Mjg3NGViYzYwNmI3M2IxNGVkYWE5NGE5NGRlMDY2M2Q1MjVlMDQ1CitjMjVmYzFhMGY5NWM2ZDYyN2U1ZTQzZGQ2OWU5ZWVlY2UxY2U5ZjRhOGY0ZjJkNGIyOTRjMTM5MjAzODIKKzkwNjZmN2ZhZTI3Y2NmMzk4OGEzZDQ5NTVhMDc0Y2E0YWM4NzkzYzQ3NDRlZDQ0ZTk1Y2Y1ZmFhYWFiZAorZjhkNGViY2VkYjg2NDcwMzJjOTA4YjVlMjFiNzc5MDEzYjY2NDVmM2ZhMjNlMGE1YWU4MDNmOTBmMDJkCiswZWZhZWZlYTFkZTZmNTRhNDczOTc1YjlhM2IxYjY5ZDZiNmY0YTRmMjkxMTRiMmMyNTQyY2U1ZWUzYTEKK2Q1MjE2NjhiZTc5YjhjZmIzYjM3YjA5MWYxZjFiYjYzNjJkYTZmMjRmMzQ4YmI5ZTlhZGJmNzRkZTg4ZgorMWMzMDQwZmMwMmUzOWUyN2RmMDllYzE2YWU1Y2FhNmVmZTg0ZmQ2MWM5OTdiMzU3ZmM2OWQ3Y2EwNDVlCis1ZjUxMDAxMzIxMTBmNGUwMDNlM2M5NDc2MDgwNTllMGEzODExOGU4NjE5YzRkNDdlZDhkZGNiMzJiN2IKK2I3ODc0NjI3MDVhNjE1ZGJjYjBmMDlhMmJhOGE3MWJhMmFlNTdhZWU0MWNmYTFkOGE4YzgwMzFiZjI0YgorNjUyNTViOTBjMDhiNDJmMzgwNjQ2NGNiNzA1NWU1NjI3YmE2ZmRhMGUzNDM0ZjkxNTZkMDE3OTQ0ODZmCiszNGFmMjg0YmUwOWQxMjk1ZmJlOGYxOTEwNzFjYWMwMGI3ZWY4MDdkOTE3YzJiYTg1M2U4NmQ2ZGJhNzYKKzgzMDVhZGNmMTc2OGZlYjI1NDZiZDY1MjVlZmZhNDAwMzg3NTI5ZjA2NDMzY2NkMmE4OWZhYmMwZjQ0NAorZjk3N2FjZTQ1MDEwZjI0N2VmYTNjZDY4MWJmOGExZjcyMWY4YmI5ZmNlZGZiZTI3OTgyYmY2ZjVlNzM0Cis5OTJiOGI0ZTc5NDVlZDA5NDlkZmM4MTk5NjdjMGZhMzYxZGNhYmQ3MzBlMjVhNjc1MWMyM2RjMWVlNmMKK2JiNzliMmQ1NTk1OWQzZTBhNWZmNGIwMTRjNTYzZjgyYTllNDEzOWM3MjA1Zjg2YTIwMDEzYzE4ZjU3ZAorZGFkMTdjNTQ2ZWUwYzBmZGNmMGJkMTQ0ZTRiMWY4NDNlNDkxNWQ2YTczNjQwYWY4NGE3N2U2OTg0ODE1CiszZTdkNTQ3YThmODM0ODJjYWJkOWIwMGI3NmEwMGY2MDIxMGFkYmIyYTEzODdiYWQ1MDYyYTU2NDcxNTgKKzJhNGE5MTNkNGZjOWQyMzlmNjJiZTlkOTZjMDkzZGU0NGI5YmU5MzhjYmZlMjNmMWJjZGU4OGU1ZjIwZQorM2M2MDAzMmVmNDNkOThhOTUxNGQ4M2YzOThhMTAwOGJkNjE5YWM2Y2E0Y2FlODIxN2YxYTJiNGZjYTkwCitmNmYyNjJiMjRkMTQwYmQ0YTU5MjY3MDM0YzQwOTdhY2Q0M2JmYTQ3OTlhYWQ0N2VhNTdkYWEyZGQ3ZDYKK2MwNDQ1NDJmNTExMDQ0NDNhZjlkZDI4M2M2ZTZjMjM5YjA3MGRlNDVkZTg2YjkyMDgxOWY0NjQ1ODM3ZQorMGM1YWFjYzUzMTg5YWM1YzIyMTdjOGQ5YmE0YzM5YWY5ODJkYTU1MTFjYjI0MzI0NWQ0MWRiZTU1YTdiCiswNzJmZDdjOWM3ZWQ0Nzc1YjJjZGU2MTBkMDIyMmQxZTUzMGIyYjliZTU2MjM5NTc2NzNmMmNlNzk1YjIKKzM5ZjRkMDMyOWM4NGI4NTY0YWMxYjExNTdhZDk2YzM2YzljY2MzNDJhZDFkN2ZiMGYzZTI3NWU5MDY1NQorNDFjMzQ4YjBjZGMyZjM1MzJhNjU4YTQ5YmM5NDIyNjY0OGY5M2FkYmYwNjFiMGY0NWY0ZmNhYmM3ODRjCithYTk1NGU4YjRmM2QxNTVhNWQ0ZDJiZjQzOWM3NGQ0NzFkYWY3Zjg2Njc5Mzc1NjExYTE4YTAxOGNmN2EKK2RmNjAwMDUzNDZjYjViZWNjMTk0OTliNjBmZWQ5MzhiYTUwMzUyMmM2NTA2ODM4M2I2ZGVhNzJjMGY2ZAorYzdlYmQ5NzI1YTg2MzA3NWQyZDAyNGFhZGMyNjQ5MGE1ZjJkOWQ5NmJhNzllOTMzY2E0OWNiZWEyNGFhCis5Mjk2OWZjYmU3NmMwZDcyYjkxN2JlNWE2MWQxMmM5MWMyOTU5MDU4MmIyZTQ0MDZhZjJjMWYzZTFhNjUKKzBkNzlhODM0YTUyZmM0ZDU5YjgzZGIyMmMyNDRmMjMxY2M4MGU1NTg3MmIwNGYzZGNiMzgxYjJiYjBjZQorMDdhZTQ3MDQyYzBiZGZiZDI0YTc1NDc2ZTYwODY4MjFmY2MwYzhhNWQ0YjEzMDY3ZGM3ZTE2ZjdjYzlkCisyZWEzOGI3MTVkMGVmMGUyN2U1Yjk2NTRhYTMzODMxZjhkMmY5NTU5YTk1MjNhMjEzNTg4MGYzYzcxYjAKK2Y3YTgyYWE3NzQ5NGZiZTQ2Njc1YzM2NWUxNTVmNzlkYmZmZGM0YzI1NDM0ZTIwZDVhYjQyNGQ1NjI5YworY2RlYmIzMGEzMGYyZDY2MWU0ZjVjMTRjNTg4ODY5YTJkYWQ1ZDdjYzI3Y2I1N2I0N2VjNGExZjEzM2U2CithMjUxZGU4ZjgzNjA3Njk0ZjAyY2EzMjkzYjg5NGQ4YTNmMTAxZGJlZTM3NDVmMzBiZjc4M2FiNWZlYzUKK2I3ODk3ZmUxYzBlYmNkNmIxOGRiNTlkYTU2ZDAyYzE4YWZlZDY5OWZkZDUxZThmMDVjZDU5OGQyNzQ4MQorYmQ3OGU2NzRkZjhkNGI5OTExN2RiYzdlM2JlNjc5Mzk0YzIxNjEwZDllNzJiNTE4OGI2NDI4MDcxOWNhCitiNWNhZjUwNjljZWI1MWVkMTM3NDUxN2I4NDM2ODk5MWQ2NzViYzc1YjdiODVmY2FkMTU5NjAzMTJkMzkKK2NhNWU1YTdlOTNlZjdiMzk2OWU4ZmM4ZTU2YjQ5N2FjNGQ5MmMzNTYyZDdhZTkxZmZlZGUzZWY1YjdjMQorMDkwY2YyYmUyNjU5NzNlMzMzYjY4ODE2MzQwMjM1YTI3MWQwMmQzYTczYmI3MjdiMjUwNWNkODliNjliCis1ZGQxNmQ5YjY1MzNkODg3YWU4MDUzYmQyYTJiOGQ3ZGM3NWIyYjRlMmEwZTJmOWI2Y2IzOTdmMzdhZjUKKzhmZjgzMDVmMTdmOTNmM2IwNzc5MDZmMTU3OTFmZjkwMmYwYTU2YmRkMWU2MjEwZjM0NWRkNWEzMTlmMQorZDBmOWNmZjc3MGViNTkwODFmMzI0MGQ3ZTA4Nzk0M2ViMGUwMWZlMGZkZmFjNjZmNjQwYjFlMDExZjk4CithNDgxYmJiMDgwODkzYjk4MTIxNzlmNzRmNjQyZDc5OWNlMGIzZDFkMDc2Mjc5ZTQ4NDJlZTZkYzJjYWEKK2YxZDYyOWU3NGRlZTZlOGI2OTQ3ODU1MDE3OWI1NjllYzg0ZDVmYjZkNjdmZjY5NzJiZGU1Y2VkYTk2OQorM2QyM2Q0ZWQwNjhmY2VjY2FlYTJkYmQyNjMyZjNjNDlkNDU5NzM1M2ExOGJiZjdjNjg1NWM3OWZiODJkCis5YjhiOGM2YjA0YmRiMTAwYzY0MjI5YzZlYTY2MTc3OTEzNWYxYTAyYWMwNjM2YzEyYmE2YjZhM2M2ZDEKK2MxN2Q3YTM5NzI0ZDQwZjhjZWI1MjkwNThlNWE0YzRjMDhhNzJhNjA5MDQxZjNkMjdmZGYzOGIyNTUyZQorYjI2N2ViZWMyNmI5YzA4YzE1NTQzZWI0OWE5MmU4MTgzMWFiMzQ4ZDhmYmNmMzU1ZGEwYjBlZTZmZWY3CisyZjU4OTE5Y2ZmMmY2ODc0NzRiZTM1Mzc0YzcwNDAwNmE1MzcxNDYwNDg0YjMwOGVhYzg3YzkxYTc1YjkKK2JhOTQzOTE3YjViMTYxMGI4N2E2MTgxMDgxNzgzNDA1MDg0NDgyZDdhZDg3YWVhZTViYzJhNmI3NTRkYQorM2U2MzQ5MzJiNzZlZTdjZGNmOWVmNWRkN2M3MmVlNmM1ZTVhYjNhMGNmMmM4MGYxMzg3NDBmMDg3NWUxCis3M2E2YzJjNmUxZDBmZjBlOTM5OWNjYjQ3YzBiN2UzYWVhZGFmMzY3MWY1ZjdmN2NhNmM2OWNkMTIyY2MKK2M3ZGFjZTk3NzNlNTJjNWU0ZWI3MWQyOWMxZDU1NWZiNzAxZTI2Y2E0MjJiZTE5NDEyMjkxYjhmYjA1NgorNWEwZWEwNGU0NGU3ZDllMzM4MzQ2ZTFhNzI0MzVlNjgxYTY4YTZjMmNjODFkYjc1MzdiZTE1MWMwYTU1Cis1YzZmM2U3MzhiYjVkMzhhZWE0ZTM5NjhlNTBiYzcyMzRhYmYzZjFmZjNlMjM4Yjg5M2YwMDE1YzYwNmUKKzM1NzQzNGY1NzFmZDE3NTNjMjRmMDhlZDY4MGU5Mzk5YmFhZjI4OGUwYjBlNmZiZDllMjVjMGI3MzI1NQorZGUyNjU3YjViMDIwZjhmZjI3NjJkMTc0YTRjMWU5N2EyM2VmNzdkZTMwZjVjNWQ3YTdiYmZiYjE5ZjMwCis2MjU5YjdlMDQ1ZmMwNDc4OGQ1MzdkOGY5MTBkOWY0ODE0OGFhNjI1YjMxODIxYzY0ODY1MTRjY2Q2NWEKKzZiNmRlNTUyOTM0ZTZhYjA1NTNiNTkwNWQzNDBlMTY1NDg4MjkxYjIwYzI0NzI5N2E5ZTcxODQ5ZTdlYgorOWE5YTliOWEwYmIyNGVmMjU3NjAyNDc1MmUzNGYxNzgyYzk3N2FhODM0ZGYyNDZjZGE5NzFlOGMyNjk0CitkOWNhY2FiMDRkZDAxN2ExZWRlMGZlMTRjNjQwMDk0Y2MwNzVlNDYxMmIwODFhNzgwYmRmMzM2ODJiNmQKKzRjY2EyYjRiZTQ0Mjc2ZjczZjFjZThiZjMxZDA1NjZkY2QzZjJkYzBmYzAxZTZmMmFhYTVhN2YxMGE5YgorOGQwODFmOWM4NWU3ZGI2OWUwNzFiMWQ2NTFkNzJiNmM5MDhjYzZmNTVjNjg3NGQ1ZTkwODIxMDI2OWE4CitkNGZiN2ZjZTdkY2VjMWI0ZTcyZjYxOGVlMDkwMWM4ZTdmZjEyZTk5NTJlOGZiMTU4ZjhlZDVmMmZhNWMKKzhjYWNiZmMyMjRkOGU4MjJhZjgzMzdlNjA1ZGVkODUxODM2YjE5YjQyODE1NmI2Yzk4Zjg0N2VjMDU3MgorOGU0ZWQ5NjA0ZmIyYjJjMzE4ZTViMWM2NDQzYTQ3M2EyY2E1ZjI1MmE2OTQyYjE1ZTk0NDk4NDM1YjFhCithYzc3MmU2MDM3MDM3YmU5ZGFiMzRkMTU2ZDVjN2ZhMzcxOGI2MGE1MjVlNDhiNWQ5MDE1OWJhMDU4MWUKK2ZmMjZiZjhjYzUzZTQ4MmFlM2MxNGZkMWUyYzkzZmVmYzIxMTQxMTJiNjkxZWQ5Njk2OTI1M2ZjYmQ4YworZTA5ZWI1ZGNjZTVjOGI2OWJkZjAyYjJlZTMxOWE1YjdmYzBhNmVjYjczZGM5NjNjMDgyNDdiYjBkM2JiCithOGM2MzM4ZWExNzgwYTA0NmRiNTFhNGZjOWMwMzE1N2EyMmZlZDg5OGM4ZmQ5MWRkMTFkN2RlNTZhNzcKK2VmNzVmYzhiY2YzMDAwNzgxNzc5MTVmN2IxMTdkYjM0Yjk0YzBlNTYxNjYwYmRhMWZmYzIyYjY4OTE5OAorNjQ0ZWUyNjFhNjQzMmJiNjQ5NGYxZmIwMzI1ZDBlNmYzMGYyMWQzZjI5NWZlMTM3MzRkZjQ0ZTlmMzcxCis2OWJlODZiMTc4YzE3YWMzMDJiYzRlYmE1NTFmZTY1ODQ2ZTVhZTcwMTYxZjEyODQwNTZkYjJlMWU0NzkKK2IzNTQyOGU1ZjA1NmMwMmJlYmI4ZTQ5MDlhNzVkMjM5YTlhNjFhOWZhODQwM2E3NWIyZmRiOGQyY2UzZAorMzg5NWIyNDQyOGEzZDEzMGUxOGJhNDFjYzkzODVjODk1Y2E5NDQ1NzA2MzM2OWE5NGE2YWVkYzY0NTUwCis3MDYzZTY1M2U1ZjQ1MTViZTU1MWI2NDFhYTk3NmFmOGVmOGI5N2Y1MjMzZGI3Njg3NTY2OTg5ZjMwMGMKK2Y2NzE2MGM1YWJhNTFlYTY0MDFhNGU0YjFkMDM4NWNjZmFkMDJkOWJiNjg2ZGY3ZWZjNTlmZjlkYzcwZgorMmU4N2FkZTU4MTU3MTg5ODhjZTc5NzQ0OTNmMTJjNTM0ODg3MGM2OGNhYWZkM2IwYjQ3YzQwMDM2ZWUwCitjZGViMGI0YjYwMmNkMjBlYTczNzkxYmM4YjVkNzAwODNlMGRjMmMwOWI5MTYxMWI1NWQ1ZDZlMDY4ZTQKKzllNWU4ZDU4YjcyZTIyM2MyODM1YmRiMmRlMjRhMGY5NzAxNDI3NWYxMTEzODczNWUwYzBjYmQyNGNjNworZDI1OTUyYTFmOWY3YmRlYzhiNTExYzQyMTU3NWQ1NThjZjczYzBiZGZkMDcwZTkwNDcwNGI2ZjExZjJkCis0YWRkYjU1YWQwYTMyMDVjY2IwNzc4NTlkYzAxMmYwZDA0YWE3YjE5NjQzMDUxZDViYjFkOWJkMDNjMzYKKzQ4ZGMyYTg2ZjM0NWUwNGIxZjgxOWQ5NGMzZTY3NGIwMmYzYjJlZGYzYzc1Y2M5MmQ3YzA3N2MzNTRhYQorZWE3MDg5OTJjMmVkNGFjY2RhYjMxNzFmZTU1ZjgwYjM2ODAyMzdmMjBjZjA5ZjAyYTc1MWRkZDU4Zjk4CiswYjViZjdkNDg2NzIzZTRiZDYyYzU4NzUyYmY0Njc5MzUwNjdhMTlhY2FhYTBiYjNkOGNjOWNjMmQ0ZDgKKzk4OTNhZGM5ZmM3NjNmMmFhNmZmNWVlNjNkZWVkN2FmM2Y3ZDdkZTdlMDk1MWRjZDQyN2FkNWUxY2FiZAorNTViYTQzOTVjNTk1MjdkOGZhZmE5M2E3ZGEyZjY1MWZlYWMyZGE4OTJjMDViZGJhY2Q0NTdlM2ExY2VlCis4MGJhOWE0MTNhYmJmYzEyN2I5MzBhZjlkODcxZDY1ZTZiYWJhY2M0MTg0MjA2Nzk5OGMzMTI4YjlkNmEKKzg5OWMyZmM3Nzg5NmQyZDIzYTJhNTgyYmExMTE4ZjQ0MDk2ZGE1YWNmNGNhY2YzN2JkZWFlZGFkZTllOAorZTVmN2ZkNDhlNTFkYjA0ODk5NWM1MjY2Y2IxNTAxOGZlMTA5MDUzNzQzOGJiZGJmYzk4MjdkZjM4MDhiCitlYzA2NWYwYzZiNGNlNDM0MzU4ZTQxYmU1YTdiOTZkZDY0NjQ4ZmQwMzI0YWE3ZDJkMjEyZjNmNjczNTEKK2I5Y2QwMzgyMDMwYmU1MDMxYzRiYjlhZGJhOWU5NWViZjA5ZmNjMmExZDlhNjFkNmNhMjY0YTJlYjY2NQorZTdiMjIyMWViYWNkNzg0YWUzMmIyMjhmYTZmMTIxYWVmYjdiOWY3MTU3NWIyYWNmZGYxNTJhMWMyNzc2CitjMjFmZGFhOGMyMGJjNTBmN2I3MDA2NzY1ODQ0MWRhMzZiZTUyNmI5OWQ5NzVkZjY1YWI5NWFhNzA3YmMKKzM5ZDU0MDE3MzliODEzZDcxNThkYmUzYTFkMTlkMTU4Yzg0NDFlMjg2MzJlYTQyMjZlMGYyNDBmNmRjNQorYzQzMDgzMjcxMmMxYTRlZWEwZjRhMTYwODQ0YzEyMjY0Mzg2MDZlYzZhMjhiMzMxMmM2YzYzNzA3ZmQ4CitjMzQ3N2RmZDhmMWVlZWVhMGYxNmY0ZmJmZThkYWExMGE1MmU2MDA2ZmVlZjg4ZGMyNGZkYmYxODVjOGUKK2VlMGQ5M2ExNGE1ZDQwZTliM2ViZDQ3ODQ1MzkwZTFiNmFjYjE1MmRjYWI4ZGNhYWQwZTAzMTBhNzg3NworNzU2MGEyZGFjZjhjZmE1ZmQwOWI0YmEyCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzNTYxNDlfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzNTYxNDlfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzODI3YTgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM1NjE0OV9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzNzI2NTEuZXZ0IGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzNzI2NTEuZXZ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViNzYyZWIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM3MjY1MS5ldnQKQEAgLTAsMCArMSw0IEBACisjIE9wZW4gdGhlIGRyb3Bkb3duCittb3VzZW1vdmUsMTQwLDE0NQorbW91c2Vkb3duLGxlZnQsMTQwLDE0NQorbW91c2V1cCxsZWZ0LDE0MCwxNDUKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzcyNjUxLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzNzI2NTEuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTViMTk0OAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzcyNjUxLmluCkBAIC0wLDAgKzEsNzEgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9BY3JvRm9ybSA8PAorICAgIC9EQSAoL0hlbHYgMCBUZiAwIGcpCisgICAgL0RSIDw8CisgICAgICAvRm9udCA8PAorICAgICAgICAvSGVsdiA0IDAgUgorICAgICAgPj4KKyAgICA+PgorICAgIC9GaWVsZHMgWzUgMCBSIDYgMCBSXQorICA+PgorICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Bbm5vdHMgWzUgMCBSIDYgMCBSXQorICAvTWVkaWFCb3ggWzAgMCAyMDAgMjAwXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvSGVsdmV0aWNhCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL0NoCisgIC9EViAoSXRlbTMpCisgIC9GIDQKKyAgL0ZmIDEzMTA3MgorICAvSSBbMl0KKyAgL01LIDw8CisgICAgL0JHIFsxLjBdCisgID4+CisgIC9PcHQgWyhJdGVtMSkgKEl0ZW0yKSAoSXRlbTMpXQorICAvUCAzIDAgUgorICAvUmVjdCBbNzAgMTM1IDE1MCAxNTVdCisgIC9UIChEcm9wZG93bikKKyAgL1YgKEl0ZW0zKQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9CdG4KKyAgL0YgNAorICAvRmYgNjU1MzYKKyAgL01LIDw8CisgICAgL0JHIFswLjVdCisgID4+CisgIC9QIDMgMCBSCisgIC9SZWN0IFs1MCA5MCAxNTAgMTEwXQorICAvVCAoQnV0dG9uKQorICAvVFUgKEJ1dHRvbiBUb29sdGlwKQorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzNzI2NTFfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzNzI2NTFfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3Mzg2YTEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM3MjY1MV9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzNzI2NTFfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzcyNjUxX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc0OWQ2MwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzcyNjUxX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzNzI2NTFfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM3MjY1MV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTgyM2YzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzNzI2NTFfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzODM3MDguaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4MzcwOC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzExNGY2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzODM3MDguaW4KQEAgLTAsMCArMSwxMDAgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9SZXNvdXJjZXMgNSAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzEwMCAwIDAgMjAgNTAgNTAgY20KKy9JMSBEbworUQorcQorODAgMCAwIDIwIDUwIDEwMCBjbQorL0kyIERvCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUldCisgIC9YT2JqZWN0IDw8CisgICAgL0kxIDYgMCBSCisgICAgL0kyIDggMCBSCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgMQorICAvQ29sb3JTcGFjZSBbL0luZGV4ZWQgL0RldmljZVJHQiAxIDcgMCBSXQorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICAvSGVpZ2h0IDUKKyAgL1dpZHRoIDE3NworICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis3ODljZmJmZjFmMWI2ODYwYzAwZWIwMmFmZWRmODA0MzE4ODcyMTVjMDA5NGFjNDM0OQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvRmxhdGVEZWNvZGVdCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzc4OWNiYjcwZTVjNmZmZmZmZmI5MDAxN2U4MDU4NAorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIFsvSW5kZXhlZCAvRGV2aWNlUkdCIDM5IDkgMCBSXQorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICAvSGVpZ2h0IDE1CisgIC9XaWR0aCA1OAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis3ODljOWQ5MjhiMTI4MjIwMTA0NTRkN2M1NTEwYTIxNjZhNjFiZWZkZmYzZjBjMzEwMTUxYTdjOTNiYjAKK2VjZWM3MGI4MmMwMzg0NWM0MTE0MDVmMDkwODZiMjFjMGU4MTRlNjhkYmExNzM4NGVjZGY1Y2ZkYTI2NAorNTkyYTkzNWE4MThkOWIwMTk2YjljZDNlMzkxNzRjZDg0NzA4MzA4NDdjOWQ1MzJlYmFlNzRjN2VkNzNjCithNTE0MzA0YWQzN2NlNTM5YzY2OTRlOTg0MTI2NzExYzNmNmYzYzI0M2ZmYjk0NTU5MWU0OWRlNzc5OTcKKzJiMGY1ZDBlOGRlZGNhNzdlOTM5MjVmODIxODViNzVmNjVjNzkzYmNjZTVjODA4ZGYxNDU2NGRkZjA4MworMWI5ZWQ1N2QxNDYwNjJhOWQ2YTQxOGYyZjI3YTBiYTAzZDQ5YjU2MDk3NWNiNjIxNDQyYTljZDQ3ZTUxCisxNDc1ODIyYmEyMzZlOGU3NWJlYWIwOGQ4ZmY0YmYzZTdkNDkyMzA4CitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorNzg5YzAxNzgwMDg3ZmYyYzMzMzlmZmNjMDBmZmZmY2NhOTc2MDBlYmQxN2ZlN2M4NTVmZmRkNDhjYzk5CiswMGY2ZTliZmZmZDMxZGQ0YTkyMzk4ODczZGZmZmZmZmZmZWU5MzY1NWUzZWI2ODMwMGViZDA2N2Q4YmYKKzdmZGRhOTAwZmZlMzYxYmU4YjAwZmZjZjBkZmZkODMxZmZlODdhZTNiZDNkZmZmM2FhZGRjMzdmYmU5MQorMThkOWE5MGYzMzMzMzNkNWExMDBmZmY4YmVmZmZmZGRhZTdiMDBjODk0MDBlN2NkN2ZlYWI2MDBkZWIyCisyNGQ0YTAwMGRiYTcwMDkyYTU0OTE0CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzODM3MDhfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzODM3MDhfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwMGVlZGMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4MzcwOF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzODM3MDhfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4MzcwOF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDg3ODY1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzODM3MDhfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzODhfMl9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4OF8yX2V4cGVjdGVkLnBkZi4wLnBuZwppbmRleCA0MjJhN2UyLi4zNDdmM2UwIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4OF8yX2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4OF8yX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4OF8yX2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzODhfMl9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjkzZTg1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzODhfMl9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4OF8yX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4OF8yX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIxYTQ4NDMuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzODhfMl9leHBlY3RlZF9tYWMucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzODhfMl9leHBlY3RlZF93aW4ucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzODhfMl9leHBlY3RlZF93aW4ucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OGExNGY0Li4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzg4XzJfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzg4XzNfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4OF8zX2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3Mjc0NDAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4OF8zX2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzg4XzNfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzg4XzNfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI5N2E5Ni4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4OF8zX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4OF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzg4X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViMzQ4YzgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM4OF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM5NTY0OC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzk1NjQ4LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjMzhmYjEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM5NTY0OC5pbgpAQCAtMCwwICsxLDY3IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyBbNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDgwIDgwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9NYXNrIDUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzQwIDUgMCA2MCAxMCAxMCBjbQorL01hc2sgRG8KK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvRmxhdGVEZWNvZGVdCisgIC9IZWlnaHQgNTAKKyAgL1NNYXNrIDYgMCBSCisgIC9XaWR0aCA1MAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis3ODljZWRjMjMxMGQwMDAwMGMwM2EwN2YyYWFhYjNlYTdiY2YwMzg0MjY1NTU1NTU1NTU1NTU1NWY1YmYwMWNjNzgxOGRjCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZUdyYXkKKyAgL0hlaWdodCA1MAorICAvTWF0dGUgWzAuMCAwLjIgMV0KKyAgL1dpZHRoIDUwCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzc4OWNhYmFhMWEwNWEzODA4ZTQwNjExNDhjMDI3YTAyODM1MTMwMGFlODA5MjQ2YzEyOGEwMjdlMDAyMDA2NWM5YzkwZAorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzk1NjQ4X2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzk1NjQ4X2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWNhNjVlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzOTU2NDhfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzk1NjQ4X2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzOTU2NDhfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBhOTQ0YgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzk1NjQ4X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzk2MjY2LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzOTYyNjYuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRlYWY0MwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xMzk2MjY2LmluCkBAIC0wLDAgKzEsOTggQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKworJSBBIHBhZ2Ugd2l0aCBzY2FsZWQgY29waWVzIG9mIGEgbWFza2VkIGltYWdlLiBBbnkgc2NhbGVkIGltYWdlIHdpdGggYW4gYXJlYQorJSBsZXNzIHRoYW4gOCB0aW1lcyB0aGUgc3RlbmNpbCBtYXNrJ3Mgb3JpZ2luYWwgYXJlYSAoNjR4NjQgKiA4ID0gMzIsNzY4KSBmb3JjZXMKKyUgYmlsaW5lYXIgaW50ZXJwb2xhdGlvbiBvZiB0aGUgc3RlbmNpbCBtYXNrLCB3aGljaCB0cmlnZ2VycyB0aGUgYnVnLgore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgNDMyIDI4OF0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvTWFza2VkIDUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKworJSAzMngzMiBpbWFnZSBoYXMgYW4gYXJlYSBvZiAxLDAyNCwgc28gaXQgaXMgaW50ZXJwb2xhdGVkLgorcQorICAzMiAwIDAgMzIgNjQgMjQwIGNtCisgIC9NYXNrZWQgRG8KK1EKKworJSA2NHg2NCBpbWFnZSBoYXMgYW4gYXJlYSBvZiA0LDA5Niwgc28gaXQgaXMgaW50ZXJwb2xhdGVkLgorcQorICA2NCAwIDAgNjQgNDggMTYwIGNtCisgIC9NYXNrZWQgRG8KK1EKKworJSAxMjh4MTI4IGltYWdlIGhhcyBhbiBhcmVhIG9mIDE2LDM4NCwgc28gaXQgaXMgaW50ZXJwb2xhdGVkLgorcQorICAxMjggMCAwIDEyOCAxNiAxNiBjbQorICAvTWFza2VkIERvCitRCisKKyUgMjU2eDI1NiBpbWFnZSBoYXMgYW4gYXJlYSBvZiA2NSw1MzYsIHNvIGl0IGlzIG5vdCBpbnRlcnBvbGF0ZWQuCitxCisgIDI1NiAwIDAgMjU2IDE2MCAxNiBjbQorICAvTWFza2VkIERvCitRCisKK2VuZHN0cmVhbQorZW5kb2JqCisKKyUgQSAzeDMgYmFzZSBpbWFnZSB3aXRoIGEgc3RlbmNpbCBtYXNrLgore3tvYmplY3QgNSAwfX0gPDwKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIC9BU0NJSUhleERlY29kZQorICAvSGVpZ2h0IDMKKyAgL01hc2sgNiAwIFIKKyAgL1dpZHRoIDMKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorQjhDM0U5IDc3OTNEQiBDM0NFRUYKKzhDQURGMiAxQjc0RTggQkZENUZCCitDMkQzRkEgOUZCREY4IEQ5RTVGQworZW5kc3RyZWFtCitlbmRvYmoKKworJSBBIDY0eDY0IHN0ZW5jaWwgbWFzayB3aXRoIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIGxpbmVzLgore3tvYmplY3QgNiAwfX0gPDwKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDEKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL0hlaWdodCA2NAorICAvSW1hZ2VNYXNrIHRydWUKKyAgL1dpZHRoIDY0CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzc4REE2MzYwODA4MEZBRkYxMEUwMDBFNUMzNjg3RkE4Mzg4Q0Y2ODE4QTYzRDA1MDAzMzBFODAyQTgzQzQxQkExRUFBOUUxMDVEMDM1NTRGCiszNkNEMEMzNTg3NkNGQTBGRDQxQ0RBRDNGMkZGNjk0RDAzMDAyNTEyQ0EwQQorZW5kc3RyZWFtCitlbmRvYmoKKwore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzOTYyNjZfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzOTYyNjZfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjYWNkZGYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM5NjI2Nl9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzOTYyNjZfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTM5NjI2Nl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODcyYzJjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzEzOTYyNjZfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE0MDJfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE0MDJfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IGNmOTEzYmQuLjc1MWQ2M2YgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDAyX2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTQwMl9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE0MDJfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDAyX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2MDI4MjAuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE0MDJfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDAyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE0MDJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM0Yjc4ZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDAyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDMwMzMzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE0MzAzMzMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTcxNWY4ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDMwMzMzLmluCkBAIC0wLDAgKzEsNDQgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRXh0R1N0YXRlIDw8CisgICAgICAvQTMgPDwKKyAgICAgICAgL1R5cGUgL0V4dEdTdGF0ZQorICAgICAgICAvQ0EgMC41CisgICAgICAgIC9jYSAwLjUKKyAgICAgID4+CisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKy9BMyBncworLTEwMCAxMCBtCisxNDAgMjAgbAorYgorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDMwMzMzX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDMwMzMzX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWZjM2U5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE0MzAzMzNfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDMwMzMzX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE0MzAzMzNfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTZhMTgyNwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDMwMzMzX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDY5LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE0NjkuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGViOTcwZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDY5LmluCkBAIC0wLDAgKzEsOTggQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDMwMCAxMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgJSBBbGwgMyBpbWFnZXMgYXJlIEJHUkEgd2l0aCB0aGUgc2FtZSBkYXRhIGJ1dCBpbnRlcnByZXRlZCBkaWZmZXJlbnRseS4KKyAgICAgIC9JbU5vU01hc2tJbkRhdGEgNSAwIFIKKyAgICAgIC9JbVNNYXNrSW5EYXRhMCA2IDAgUgorICAgICAgL0ltU01hc2tJbkRhdGExIDcgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzAgMSAwIHJnCiswIDAgMzAwIDEwMCByZSBmCitRCitxCis2NCAwIDAgNjQgMCAwIGNtCisvSW1Ob1NNYXNrSW5EYXRhIERvCitRCitxCis2NCAwIDAgNjQgMTAwIDAgY20KKy9JbVNNYXNrSW5EYXRhMCBEbworUQorcQorNjQgMCAwIDY0IDIwMCAwIGNtCisvSW1TTWFza0luRGF0YTEgRG8KK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDY0CisgICUgTm8gL1NNYXNrSW5EYXRhIGhlcmUuCisgIC9XaWR0aCA2NAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit7e2luY2x1ZGUgLi4vYnVnXzE0NjkuanAyfX0KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDY0CisgIC9TTWFza0luRGF0YSAwCisgIC9XaWR0aCA2NAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit7e2luY2x1ZGUgLi4vYnVnXzE0NjkuanAyfX0KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDY0CisgIC9TTWFza0luRGF0YSAxCisgIC9XaWR0aCA2NAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit7e2luY2x1ZGUgLi4vYnVnXzE0NjkuanAyfX0KK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTQ2OV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTQ2OV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg3Yjc5ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDY5X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTQ5MS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDkxLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5NzNiMmIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTQ5MS5pbgpAQCAtMCwwICsxLDQ0IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL09wZW5BY3Rpb24gNiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvTWVkaWFCb3ggWyAwIDAgMjAwIDIwMCBdCisgIC9Db3VudCAxCisgIC9LaWRzIFsgMyAwIFIgXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvdW50IDEKKyAgL0tpZHMgWyA0IDAgUiBdCis+Pgore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAzIDAgUgorICAvQ29udGVudHMgNSAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzAuNSAwLjUgMC41IHJnCis1MCA1MCAxMDAgMTAwIHJlIEIKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvQWN0aW9uCisgIC9TIC9Hb1RvCisgIC9EIFsgMyAwIFIgL0ZpdCBdCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTQ5MV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTQ5MV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjFlOTM3NQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDkxX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTQ5MV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNDkxX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5YzVmMDgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTQ5MV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTUxOS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNTE5LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2ODExNTYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTUxOS5pbgpAQCAtMCwwICsxLDQ4IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCA0MDAgNDAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0dTMSA8PAorICAgICAgICAvY2EgMC41CisgICAgICA+PgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCisvR1MxIGdzCiswIDAgMSByZworMCAwIG0KKzEzMCAxMzAgbAorMTUwIDE1MCAxODAgMTgwIDIwMCAyMDAgYworNDAwIDQwMCBsCiszMDAgMzAwIGwKKzQwMCA0MDAgbAorMzAwIDMwMCBsCitmCitRCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE1MTlfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE1MTlfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNmNjMTkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTUxOV9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE1NDYuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTU0Ni5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjQyM2QwCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE1NDYuaW4KQEAgLTAsMCArMSw3NyBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL1NoYWRpbmcgPDwKKyAgICAgIC9TMCA1IDAgUgorICAgID4+CisgID4+CisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCAyMDAgMzAwXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvUzAgc2gKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvU2hhZGluZ1R5cGUgNAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9CaXRzUGVyQ29vcmRpbmF0ZSAxNgorICAvQml0c1BlckZsYWcgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9EZWNvZGUgWy0zMjc2OCAzMjc2NyAtMzI3NjggMzI3NjcgMCAxXQorICAvRmlsdGVyIC9BU0NJSUhleERlY29kZQorICAvRnVuY3Rpb24gNiAwIFIKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMDA4MDBhODAwYTAwMDA4MDBhODBjOGZmMDA4MDY0ODBjODAwCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL0Z1bmN0aW9uVHlwZSAzCisgIC9Cb3VuZHMgWzAuNV0KKyAgL0RvbWFpbiBbMCAxXQorICAvRW5jb2RlIFswIDEgMCAxXQorICAvRnVuY3Rpb25zIFs3IDAgUiA4IDAgUl0KKyAgL1JhbmdlIFswIDEgMCAxIDAgMV0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9GdW5jdGlvblR5cGUgMgorICAvQzAgWzEgMCAwXQorICAvQzEgWzAgMSAwXQorICAvRG9tYWluIFswIDFdCisgIC9OIDEKKyAgL1JhbmdlIFswIDEgMCAxIDAgMV0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9GdW5jdGlvblR5cGUgMgorICAvQzAgWzAgMSAwXQorICAvQzEgWzAgMCAxXQorICAvRG9tYWluIFswIDFdCisgIC9OIDEKKyAgL1JhbmdlIFswIDEgMCAxIDAgMV0KKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNTQ2X2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNTQ2X2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTkzYmYxCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE1NDZfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNTcxLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE1NzEuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRhOTRlMQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNTcxLmluCkBAIC0wLDAgKzEsMTEyIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9Db250ZW50cyA0IDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUldCisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0dTMSA1IDAgUgorICAgICAgL0dTMyA2IDAgUgorICAgID4+CisgICAgL1BhdHRlcm4gPDwKKyAgICAgIC9QYTIgNyAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorMSAwIDAgMSA1MCAxMDAgY20KKzEgMSAxIFJHCisvR1MzIGdzCisvUGF0dGVybiBjcworL1BhMiBzY24KKy9HUzEgZ3MKKy03IDcgbQorLTcgLTcgbAorLTcgLTcgbAorNyAtNyBsCis3IC03IGwKKzcgNyBsCis3IDcgbAorLTcgNyBsCitoCitCKgorUQorcQorMSAwIDAgMSAxNTAgMTAwIGNtCisvUGF0dGVybiBjcworL1BhMiBzY24KKy9HUzEgZ3MKKy03IDcgbQorLTcgLTcgbAorLTcgLTcgbAorNyAtNyBsCis3IC03IGwKKzcgNyBsCis3IDcgbAorLTcgNyBsCitoCitCKgorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9FeHRHU3RhdGUKKyAgL2NhIDEKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9FeHRHU3RhdGUKKyAgL0NBIDAKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9QYXR0ZXJuCisgIC9QYWludFR5cGUgMQorICAvUGF0dGVyblR5cGUgMQorICAvVGlsaW5nVHlwZSAyCisgIC9CQm94IFswIDAgMC4yNSAwLjI1XQorICAvTWF0cml4IFsxLjQxNCAtMS40MTQgMS40MTQgMS40MTQgLTk1LjA0MyAtMzgxLjI5NF0KKyAgL1BhaW50VHlwZSAxCisgIC9SZXNvdXJjZXMgPDwKKyAgICAlIEFjcm9iYXQgcmVxdWlyZXMgdGhpcyBkaWN0aW9uYXJ5LCBldmVuIGlmIGl0IGlzIGVtcHR5LgorICA+PgorICAvWFN0ZXAgMC4yNQorICAvWVN0ZXAgMC4yNQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvRGV2aWNlUkdCIENTIDAuOTQxIDAgMCBTQworL0RldmljZVJHQiBjcyAxIDEgMSBzYworMCAwIDAuMjUgMC4yNSByZQorZgorMC4wOTQgdworMCAwIG0KKzAuMjUgMCBsCiswLjA5NCB3CiswLjEyNSAwIG0KKzAuMTI1IDAuMjUgbAorUworZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNTcxX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNTcxX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lM2Q1NGI4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE1NzFfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNjM4LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE2MzguaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZkZWEzOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNjM4LmluCkBAIC0wLDAgKzEsNTcgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDQwMCA0MDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRXh0R1N0YXRlIDw8CisgICAgICAvR1MxIDw8CisgICAgICAgIC9jYSAxLjAKKyAgICAgID4+CisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKy9HUzEgZ3MKKzAgMCAxIHJnCislIFRoZSAxc3Qgc3ViIHBhdGguCis1MCAzNTAgbQorMjAwIDMyMCBsCis1MCAzNTAgbAorJSBUaGUgMm5kIHN1YiBwYXRoLgorMTAwIDMwMCBtCis1MCAzMDAgbAorMjAwIDMwMCBsCiszMDAgMjAwIGwKKzI3MCAyMzAgbAorJSBUaGUgM3JkIHN1YiBwYXRoLgorMjAwIDUwIG0KKzM1MCA1MCBsCisyMDAgNTAgbAorMjAwIDEwMCBsCisyMDAgNTAgbAorZgorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNjM4X2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNjM4X2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2EzOWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE2MzhfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNjM4X2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE2MzhfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VmMTUyZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNjM4X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNjM5XzEuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTYzOV8xLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyODNhZjcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTYzOV8xLmluCkBAIC0wLDAgKzEsNTAgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRXh0R1N0YXRlIDw8CisgICAgICAvR1MxIDw8CisgICAgICAgIC9jYSAxLjAKKyAgICAgID4+CisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKy9HUzEgZ3MKKzAgMCAxIHJnCislIEEgaG9yaXpvbnRhbCBwYXRoLgorMjAgMTgwIG0KKzE4MCAxODAgbAorJSBBIHZlcnRpY2FsIHBhdGguCis1MCAxNjAgbQorNTAgMTAwIGwKKyUgQSBkaWFnb25hbCBwYXRoLgorMjAgNTAgbQorMTgwIDEwMCBsCitmCitRCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE2MzlfMV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTYzOV8xX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzM0NDYyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE2MzlfMV9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE2MzlfMV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNjM5XzFfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE1M2YxMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNjM5XzFfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE2OTMuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTY5My5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTliNWY4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE2OTMuaW4KQEAgLTAsMCArMSwxMDEgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgMjAwIDIwMF0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Qcm9jU2V0IFsvUERGIC9JbWFnZUNdCisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0czIDQgMCBSCisgICAgICAvRzggNSAwIFIKKyAgICA+PgorICAgIC9QYXR0ZXJuIDw8CisgICAgICAvUDcgNiAwIFIKKyAgICA+PgorICA+PgorICAvQ29udGVudHMgNyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9CTSAvTm9ybWFsCisgIC9jYSAxCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvQk0gL05vcm1hbAorICAvY2EgLjUKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9QYXR0ZXJuCisgIC9QYWludFR5cGUgMQorICAvUGF0dGVyblR5cGUgMQorICAvVGlsaW5nVHlwZSAxCisgIC9CQm94IFswIDAgNDAwIDQwMF0KKyAgL01hdHJpeCBbMjU2IDAgMCAzMiAwIDBdCisgIC9YU3RlcCA1MTIKKyAgL1lTdGVwIDUxMgorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQ10KKyAgICAvRXh0R1N0YXRlIDw8CisgICAgICAvRzMgNCAwIFIKKyAgICA+PgorICAgIC9YT2JqZWN0IDw8CisgICAgICAvWDQgOCAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCisxIDAgMCAtOCAwIDggY20KKy9HMyBncworL1g0IERvCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMSAxIDEgUkcKKzEgMSAxIHJnCisvRzMgZ3MKKy9QYXR0ZXJuIENTCisvUGF0dGVybiBjcworL1A3IFNDTgorL1A3IHNjbgorL0c4IGdzCiswIDAgMjAwIDE1MCByZQorZgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvV2lkdGggNTAKKyAgL0hlaWdodCA1MAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorNzg5Y2VkYzIzMTBkMDAwMDBjMDNhMDdmMmFhYWIzZWE3YmNmMDM4NDI2NTU1NTU1NTU1NTU1NTVmNWJmMDFjYzc4MThkYworZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNjkzX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNjkzX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjViZDBkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE2OTNfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzIzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3MjMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFjMDRkMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzIzLmluCkBAIC0wLDAgKzEsNjEgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKyAgL01lZGlhQm94IFswIDAgMzAwIDQwMF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIFs0IDAgUl0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Db2xvclNwYWNlIDw8CisgICAgICAvRGVmYXVsdENNWUsgL0RldmljZVJHQgorICAgID4+CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9JbWcgNSAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMjAwIDAgMCAzMDAgNTAgNTAgY20KKy9JbWcgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlQ01ZSworICAvRmlsdGVyIC9BU0NJSUhleERlY29kZQorICAvSGVpZ2h0IDgKKyAgL1dpZHRoIDgKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorRkYwMDAwMDAgRkYwMDAwMDAgRkYwMDAwMDAgRkYwMDAwMDAgICAwMEZGMDAwMCAwMEZGMDAwMCAwMEZGMDAwMCAwMEZGMDAwMAorRkYwMDAwMDAgRkYwMDAwMDAgRkYwMDAwMDAgRkYwMDAwMDAgICAwMEZGMDAwMCAwMEZGMDAwMCAwMEZGMDAwMCAwMEZGMDAwMAorRkYwMDAwMDAgRkYwMDAwMDAgRkYwMDAwMDAgRkYwMDAwMDAgICAwMEZGMDAwMCAwMEZGMDAwMCAwMEZGMDAwMCAwMEZGMDAwMAorRkYwMDAwMDAgRkYwMDAwMDAgRkYwMDAwMDAgRkYwMDAwMDAgICAwMEZGMDAwMCAwMEZGMDAwMCAwMEZGMDAwMCAwMEZGMDAwMAorCiswMDAwRkYwMCAwMDAwRkYwMCAwMDAwRkYwMCAwMDAwRkYwMCAgIDAwMDAwMEZGIDAwMDAwMEZGIDAwMDAwMEZGIDAwMDAwMEZGCiswMDAwRkYwMCAwMDAwRkYwMCAwMDAwRkYwMCAwMDAwRkYwMCAgIDAwMDAwMEZGIDAwMDAwMEZGIDAwMDAwMEZGIDAwMDAwMEZGCiswMDAwRkYwMCAwMDAwRkYwMCAwMDAwRkYwMCAwMDAwRkYwMCAgIDAwMDAwMEZGIDAwMDAwMEZGIDAwMDAwMEZGIDAwMDAwMEZGCiswMDAwRkYwMCAwMDAwRkYwMCAwMDAwRkYwMCAwMDAwRkYwMCAgIDAwMDAwMEZGIDAwMDAwMEZGIDAwMDAwMEZGIDAwMDAwMEZGCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3MjNfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3MjNfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2ZGNlYjcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTcyM19leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3MzMuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTczMy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODEyYTAzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3MzMuaW4KQEAgLTAsMCArMSwxMDcgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDEwMCAxMDBdCisgIC9Db3VudCAyCisgIC9LaWRzIFszIDAgUiA0IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDUgMCBSCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA5IDAgUgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNSAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDEwIDAgUgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorMTAwIDAgMCAxMDAgMCAwIGNtCisvWDEgRG8KK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDEKKyAgL0hlaWdodCAxCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIC9BU0NJSUhleERlY29kZQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitGRjAwMDAKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDEKKyAgL0hlaWdodCAxCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIC9BU0NJSUhleERlY29kZQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitGRkZGMDAKK2VuZHN0cmVhbQorZW5kb2JqCislIFRoaXMgb2JqZWN0IHN0cmVhbSBjb250YWlucyB0d28gZGlmZmVyZW50IGNvcGllcyBvZiBvYmplY3QgOSBhbmQgb2JqZWN0IDEwLgorJSBUbyBkaXNhbWJpZ3VhdGUgdGhlbSwgYSBwYXJzZXIgbXVzdCB1c2Ugb2JqZWN0IDExIDAgYmVsb3csIHRoZSBjcm9zcy1yZWZlcmVuY2UKKyUgc3RyZWFtLCB0byBsb29rIHVwIHRoZSB0eXBlIDIgZW50cmllcy4gVGhvc2UgZW50cmllcyByZWZlcmVuY2UgdGhpcyBvYmplY3QsCislIGFuZCB0aGUgcG9zaXRpb24gb2YgdGhlIG9iamVjdHMgd2l0aGluIHRoaXMgb2JqZWN0Lgore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL09ialN0bQorICAvTiA0CisgIC9GaXJzdCAyMAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis5IDAgOSAxMyAxMCAyNiAxMCAzOTw8L1gxIDYgMCBSPj48PC9YMSA3IDAgUj4+PDwvWDEgNiAwIFI+Pjw8L1gxIDcgMCBSPj4KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxMSAwfX0gPDwKKyAgL1R5cGUgL1hSZWYKKyAgL0ZpbHRlciAvQVNDSUlIZXhEZWNvZGUKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgMTEKKyAgL1cgWzEgMiAyXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCiswMCAwMDAwIEZGRkYKKzAxIDAwMEYgMDAwMAorMDEgMDA0NCAwMDAwCiswMSAwMEEzIDAwMDAKKzAxIDAxMTAgMDAwMAorMDEgMDE3RSAwMDAwCiswMSAwMUNGIDAwMDAKKzAxIDAyOEIgMDAwMAorMDEgMDQ2QSAwMDAwCiswMiAwMDA4IDAwMDAKKzAyIDAwMDggMDAwMworZW5kc3RyZWFtCitlbmRvYmoKK3t7c3RhcnR4cmVmb2JqIDExIDB9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzMzX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzMzX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTZjODQ3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3MzNfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzMzX2V4cGVjdGVkLnBkZi4xLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzMzX2V4cGVjdGVkLnBkZi4xLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTQ5MGRhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3MzNfZXhwZWN0ZWQucGRmLjEucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzQ2LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3NDYuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2EyYTRiMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzQ2LmluCkBAIC0wLDAgKzEsMTIyIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvTWVkaWFCb3ggWzAgMCAyMDAgMjAwXQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0dTMCA4IDAgUgorICAgID4+CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgID4+CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9JbWcgOSAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorL0dTMCBncworcQorMCAxIDAgcmcKK0JUCisvRjEgMiBUZgorMSAwIDAgMSA1MCA1MCBUbQorKGEpVGoKK0VUCitRCitxCiswIDAgMSByZworQlQKKy9GMSAyIFRmCisxIDAgMCAxIDcyIDgwIFRtCisoYSlUagorRVQKK1EKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTMKKyAgL0NoYXJQcm9jcyA8PAorICAgIC9hMCA3IDAgUgorICA+PgorICAvRW5jb2RpbmcgNiAwIFIKKyAgL0ZpcnN0Q2hhciA5NworICAvRm9udEJCb3ggWzAgMCAxMDAwIDEwMDBdCisgIC9Gb250TWF0cml4IFsxIDAgMCAxIDAgMF0KKyAgL0xhc3RDaGFyIDk3CisgIC9XaWR0aHMgWzYwXQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL0VuY29kaW5nCisgIC9CYXNlRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZworICAvRGlmZmVyZW5jZXMgWzk3IC9hMF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzUwIDAgNCAtMSA0OCA0NSBkMQorcQorNCAtMSBtCis0IDQ1IGwKKzQ4IDQ1IGwKKzQ4IC0xIGwKK2gKK1cgbgorcQorNDQgMCAwIDQ2IDQuMSAtMS4xIGNtCisvSW1nIERvCitRCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL0V4dEdTdGF0ZQorICAvQ0EgMC41CisgIC9jYSAwLjUKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDkgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCAxCisgIC9EZWNvZGUgWzEgMF0KKyAgL0RlY29kZVBhcm1zIFtudWxsIDw8L0NvbHVtbnMgNDQgL0sgLTE+Pl0KKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9DQ0lUVEZheERlY29kZV0KKyAgL0hlaWdodCA0NgorICAvSW1hZ2VNYXNrIHRydWUKKyAgL1dpZHRoIDQ0CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzI2YTA4NjgwZGUwODFlMTFlMTg3ODQwODMwZjQxMzdhNGRmMGVmNGRiZWRiZmZmZjZmZmRhZjBjMmYxZgorZmZmMjFiMzRjODJlMzMwNDRlN2MxMWEwOWMyMDVlMTA1ZTk3YTVlOTdhNWZmYTVmZTBhM2Y1ZmZhZmZmCitiNWM5YWFhMzBiZWQyN2FkYjRhZDcwZGE0ZGE1YjYxMjhmMGM0MjZiMjE2ODE4NTAwMTAwMTAwYQorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzQ2X2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzQ2X2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGM0MWQxCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3NDZfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzQ2X2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3NDZfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFiMjFmOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzQ2X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzUwLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3NTAuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UwZjQ2ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzUwLmluCkBAIC0wLDAgKzEsODMgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAxMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL0ltZzEgNiAwIFIKKyAgICAgIC9JbWcyIDggMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzYwIDAgMCA2MCAyMCAyMCBjbQorL0ltZzEgRG8KK1EKK3EKKzYwIDAgMCA2MCAxMjAgMjAgY20KKy9JbWcyIERvCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gWworICAvSW5kZXhlZAorICAvRGV2aWNlR3JheQorICAxCisgIDw4OCBjYz4KK10KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDEKKyAgL0NvbG9yU3BhY2UgNSAwIFIKKyAgL0hlaWdodCA0CisgIC9XaWR0aCA0CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzAwMDAKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA3IDB9fSBbCisgIC9JbmRleGVkCisgIC9EZXZpY2VHcmF5CisgIDMKKyAgPDExIDQ0IDg4IGNjPgorXQorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgMQorICAvQ29sb3JTcGFjZSA3IDAgUgorICAvSGVpZ2h0IDQKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMDAwMAorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzUwX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzUwX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTc0ZTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3NTBfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzUyLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3NTIuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJhNGE0MQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzUyLmluCkBAIC0wLDAgKzEsNzUgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvRjEgNCAwIFIKKyAgICA+PgorICA+PgorICAvQ29udGVudHMgNiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UcnVlVHlwZQorICAvQmFzZUZvbnQgL05vdG9TYW5zUmVndWxhcgorICAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZworICAvRmlyc3RDaGFyIDY1CisgIC9MYXN0Q2hhciA3MQorICAvRm9udERlc2NyaXB0b3IgNSAwIFIKKyAgL05hbWUgL0YxCisgIC9XaWR0aHMgWzI1MCAyNTAgMjUwIDI1MCA4MDAgODAwIDgwMF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9Gb250RGVzY3JpcHRvcgorICAvQ2FwSGVpZ2h0IDc1MAorICAvRGVzY2VudCAtMjUwCisgIC9GbGFncyAzMgorICAvRm9udEJCb3ggWy01MDMgLTI1MCAxMjQwIDc1MF0KKyAgL0ZvbnRGaWxlMiA3IDAgUgorICAvRm9udE5hbWUgL05vdG9TYW5zUmVndWxhcgorICAvRm9udFdlaWdodCA0MDAKKyAgL0l0YWxpY0FuZ2xlIDAKKyAgL1N0ZW1WIDUyCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitCVAorMjAgMTAwIFRkCisvRjEgNzAgVGYKKyhBQkNEKSBUagorMCAtODAgVGQKKyhFRkcpIFRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvRmxhdGVEZWNvZGVdCisgIHt7c3RyZWFtbGVufX0KKyAgL0xlbmd0aDEgMTEyMDAKKz4+CitzdHJlYW0KK3t7aW5jbHVkZSAuLi9idWdfMTc1Ml90cnVldHlwZV9mb250LmZyYWdtZW50fX0KK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTc1Ml9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTc1Ml9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ5YmUxMAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzUyX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTc1Ml9leHBlY3RlZF9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3NTJfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGNiM2JhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3NTJfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTc1Ml9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzUyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljYjQxYjgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTc1Ml9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTc3Mi5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzcyLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNmI3MTMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTc3Mi5pbgpAQCAtMCwwICsxLDkzIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyBbNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDEwMCAxMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvVGV4dF0KKyAgICAvQ29sb3JTcGFjZSA8PAorICAgICAgL0NTMSBbL1BhdHRlcm5dCisgICAgPj4KKyAgICAvRm9udCA8PAorICAgICAgL0YxIDUgMCBSCisgICAgPj4KKyAgICAvUGF0dGVybiA8PAorICAgICAgL1AxIDYgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0JUCisvQ1MxIENTCisvUDEgU0NOCisvRjEgMSBUZgorMSBUcgorMjAgMCAwIDIwIDIwIDMwIFRtCisoUykgVGoKK0VUCitCVAorL0NTMSBDUworL1AxIFNDTgorL0YxIDQgVGYKKzEgVHIKKzUgMCAwIDUgNTAgODAgVG0KKyhTKSBUagorRVQKK0JUCisvQ1MxIENTCisvUDEgU0NOCisvRjEgMjAgVGYKKzEgVHIKKzEgMCAwIDEgNzAgNDAgVG0KKyhTKSBUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9IZWx2ZXRpY2EKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9QYXR0ZXJuCisgIC9QYXR0ZXJuVHlwZSAyCisgIC9TaGFkaW5nIDcgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICAvU2hhZGluZ1R5cGUgMworICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9Db29yZHMgWzAuMCAwLjAgMC4wIDAuMCAwLjAgMC4wMDVdICUgQ29uY2VudHJpYyBjaXJjbGVzCisgIC9GdW5jdGlvbiA4IDAgUgorICAvRXh0ZW5kIFt0cnVlIHRydWVdCisgPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL0Z1bmN0aW9uVHlwZSAyCisgIC9Eb21haW4gWzAuMCAxLjBdCisgIC9DMCBbMCAwIDBdCisgIC9DMSBbMCAxIDBdCisgIC9OIDEKKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzcyX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzcyX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDU2ZDg3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3NzJfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzcyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3NzJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc3YjJhMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzcyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzc0LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE3NzQuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDgwYjQyOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzc0LmluCkBAIC0wLDAgKzEsNDcgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgMjAwIDIwMF0KKyAgL0NvbnRlbnRzIDQgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCiswLjAwMSB3CiszMCAxNTAgbQorMTcwIDE1MCBsCitTCitRCitxCiswLjAxIHcKKzMwIDk1IG0KKzE3MCA5NSBsCitTCitRCitxCiswLjEgdworMzAgNDAgbQorMTcwIDQwIGwKK1MKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTc3NF9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTc3NF9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJiY2JhMwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzc0X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTc3NF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xNzc0X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZWM3NGUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTc3NF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTgyMi5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODIyLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwNzViYjcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTgyMi5pbgpAQCAtMCwwICsxLDM0IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCA0MDAgNDAwXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorWzEuOCAxLjhdIDk2NjM2NzYwIGQKKzEgaQorMTAwIDMwMCBtCisyMDAgMzAwIGwKK1MKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTgyMl9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTgyMl9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTEzZjMzZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODIyX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTgyMl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODIyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0NjdiNzkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTgyMl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTg0NS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODQ1LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmZDgwNTIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTg0NS5pbgpAQCAtMCwwICsxLDgwIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCA5NiA5Nl0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvWDAgNSAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagorCislIENyb3NzIGZvcm1lZCBieSByZWQgaG9yaXpvbnRhbCByZWN0YW5nbGUgb3ZlcmxhaWQgd2l0aCBibHVlIHZlcnRpY2FsCislIHJlY3RhbmdsZS4KK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKyAgJSBSZWQgaG9yaXpvbnRhbCByZWN0YW5nbGUgZGVmaW5lZCBieSBjbGlwLgorICA4IDMyIDgwIDMyIHJlIFcqIG4KKyAgMSAwIDAgcmcKKyAgMCAwIDk2IDk2IHJlIGYKK1EKK3EKKyAgJSBCbHVlIHZlcnRpY2FsIHJlY3RhbmdsZSBkZWZpbmVkIGJ5IG1hc2tlZCBpbWFnZS4KKyAgMzIgMCAwIDgwIDMyIDggY20KKyAgL1gwIERvCitRCitlbmRzdHJlYW0KK2VuZG9iagorCislIFNpbmdsZSBwaXhlbCBpbWFnZSB3aXRoIC9TTWFzayB0byB0cmlnZ2VyIG1hc2tlZCBpbWFnZSByZW5kZXJpbmcuCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDEKKyAgL0hlaWdodCAxCisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvU01hc2sgNiAwIFIKKyAgL0ZpbHRlciAvQVNDSUlIZXhEZWNvZGUKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMDAgMDAgRkYKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDEKKyAgL0hlaWdodCAxCisgIC9Db2xvclNwYWNlIC9EZXZpY2VHcmF5CisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0ZpbHRlciAvQVNDSUlIZXhEZWNvZGUKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorODAKK2VuZHN0cmVhbQorZW5kb2JqCisKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODQ1X2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODQ1X2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjQ2MjcyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE4NDVfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODQ3LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE4NDcuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJkNGVmOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODQ3LmluCkBAIC0wLDAgKzEsNjUgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9NZWRpYUJveCBbMCAwIDQwMCA0MDBdCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0Fubm90cyBbNCAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0hpZ2hsaWdodAorICAvQVAgPDwKKyAgICAvTiA1IDAgUgorICA+PgorICAvRiA0CisgIC9QIDMgMCBSCisgIC9SZWN0IDYgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQorICAvQkJveCA2IDAgUgorICAvUHJvY1NldCBbL1BERl0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9SMCA8PAorICAgICAgICAvVHlwZSAvRXh0R1N0YXRlCisgICAgICAgIC9BSVMgZmFsc2UKKyAgICAgICAgL0JNIC9NdWx0aXBseQorICAgICAgPj4KKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvUjAgZ3MKKzEgMSAwIHJnCisxIHcKKzcyIDMwNSBtCis2OCAzMDkgNjggMzE3IDcyIDMyMSBjCisxMzIgMzIxIGwKKzEzNiAzMTcgMTM2IDMwOSAxMzIgMzA1IGMKK2YKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fQorWzY3IDMwNCAxMzcgMzIyXQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTg0N19leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTg0N19leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU5ZDdmYgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODQ3X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTg0N19leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODQ3X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyMDFmOGUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTg0N19leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTg4My5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5NTkzYmIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTg4My5pbgpAQCAtMCwwICsxLDkyIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgNAorICAvS2lkcyBbMyAwIFIgNCAwIFIgNSAwIFIgNiAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvQW5ub3RzIFs3IDAgUiA4IDAgUl0KKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL1BhcmVudCAyIDAgUgorICAvUm90YXRlIDAKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9Bbm5vdHMgWzcgMCBSIDggMCBSXQorICAvTWVkaWFCb3ggWzAgMCA3OTIgNjEyXQorICAvUGFyZW50IDIgMCBSCisgIC9Sb3RhdGUgOTAKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9Bbm5vdHMgWzcgMCBSIDggMCBSXQorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvUGFyZW50IDIgMCBSCisgIC9Sb3RhdGUgMTgwCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvQW5ub3RzIFs3IDAgUiA4IDAgUl0KKyAgL01lZGlhQm94IFswIDAgNzkyIDYxMl0KKyAgL1BhcmVudCAyIDAgUgorICAvUm90YXRlIDI3MAorPj4KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5lCisgIC9BUCA8PAorICAgIC9OIDkgMCBSCisgID4+CisgICUgTm9Sb3RhdGUKKyAgL0YgMTYKKyAgL0wgWzEwMCA1MCAxMDAgMTUwXQorICAvUCAzIDAgUgorICAvUmVjdCBbOTAgMzcwIDI3MCA1MDBdCis+PgorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0xpbmUKKyAgL0FQIDw8CisgICAgL04gOSAwIFIKKyAgPj4KKyAgL0YgMAorICAvTCBbMTAwIDUwIDEwMCAxNTBdCisgIC9QIDMgMCBSCisgIC9SZWN0IFsxOTAgNDcwIDM3MCA2MDBdCis+PgorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQorICAvQkJveCBbMCAwIDM2MCAxMzBdCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzEwIHcKKzEgMCAwIFJHCiszMCA2NSBtCisxNTAgNjUgbAorUworMTIwIDQ1IG0KKzE1MCA2NSBsCisxMjAgODUgbAorUworZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YmM2OTkyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE4ODNfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkLnBkZi4xLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkLnBkZi4xLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMThjMWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE4ODNfZXhwZWN0ZWQucGRmLjEucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkLnBkZi4yLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkLnBkZi4yLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzA5M2ZmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE4ODNfZXhwZWN0ZWQucGRmLjIucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkLnBkZi4zLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkLnBkZi4zLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNmUzOTg4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE4ODNfZXhwZWN0ZWQucGRmLjMucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE4ODNfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU2MGJmZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkX3NraWEucGRmLjEucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE4ODNfZXhwZWN0ZWRfc2tpYS5wZGYuMS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY2MDg3NwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkX3NraWEucGRmLjEucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkX3NraWEucGRmLjIucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE4ODNfZXhwZWN0ZWRfc2tpYS5wZGYuMi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjAwNTBmOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkX3NraWEucGRmLjIucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkX3NraWEucGRmLjMucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE4ODNfZXhwZWN0ZWRfc2tpYS5wZGYuMy5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhkM2UyNQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xODgzX2V4cGVjdGVkX3NraWEucGRmLjMucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTIyLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5MjIuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdiMDA1YgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTIyLmluCkBAIC0wLDAgKzEsNjYgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDEwMCAxMDBdCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDUgMCBSCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvRm9udCA8PAorICAgICAgL0YxIDQgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UcnVlVHlwZQorICAvQmFzZUZvbnQgL1RpbWVzTmV3Um9tYW4sQm9sZAorICAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZworICAvRmlyc3RDaGFyIDMyCisgIC9MYXN0Q2hhciAxMjEKKyAgL1dpZHRocyBbCisgICAgMjMwLjc2OSAzMDcuNjkyIDUzOC40NjIgNTM4LjQ2MiA1MzguNDYyIDExNTMuODQ2IDg0Ni4xNTQgMzA3LjY5MgorICAgIDMwNy42OTIgMzA3LjY5MiA1MzguNDYyIDUzOC40NjIgMjMwLjc2OSAzMDcuNjkyIDIzMC43NjkgMzA3LjY5MgorICAgIDUzOC40NjIgNTM4LjQ2MiA1MzguNDYyIDUzOC40NjIgNTM4LjQ2MiA1MzguNDYyIDUzOC40NjIgNTM4LjQ2MgorICAgIDUzOC40NjIgNTM4LjQ2MiAzMDcuNjkyIDMwNy42OTIgNTM4LjQ2MiA1MzguNDYyIDUzOC40NjIgNTM4LjQ2MgorICAgIDkyMy4wNzcgNjkyLjMwOCA2OTIuMzA4IDY5Mi4zMDggNjkyLjMwOCA1MzguNDYyIDUzOC40NjIgNjkyLjMwOAorICAgIDY5Mi4zMDggMzA3LjY5MiA1MzguNDYyIDY5Mi4zMDggNjE1LjM4NSA4NDYuMTU0IDY5Mi4zMDggNzY5LjIzMQorICAgIDYxNS4zODUgNzY5LjIzMSA2OTIuMzA4IDYxNS4zODUgNjE1LjM4NSA2MTUuMzg1IDY5Mi4zMDggMTAwMC4wMDAKKyAgICA2OTIuMzA4IDYxNS4zODUgNjE1LjM4NSAzMDcuNjkyIDMwNy42OTIgMzA3LjY5MiA2MTUuMzg1IDUzOC40NjIKKyAgICAzMDcuNjkyIDQ2MS41MzggNDYxLjUzOCA0NjEuNTM4IDQ2MS41MzggNDYxLjUzOCAzMDcuNjkyIDUzOC40NjIKKyAgICA1MzguNDYyIDMwNy42OTIgMzA3LjY5MiA2MTUuMzg1IDMwNy42OTIgNzY5LjIzMSA1MzguNDYyIDQ2MS41MzgKKyAgICA0NjEuNTM4IDQ2MS41MzggNDYxLjUzOCA0NjEuNTM4IDMwNy42OTIgNTM4LjQ2MiAzODQuNjE1IDYxNS4zODUKKyAgICA0NjEuNTM4IDQ2MS41MzgKKyAgXQorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMiBKCitCVAorMCAwIDAgcmcKKy9GMSAyMCBUZgorMTAgNDAgVGQKK1soVSkgLTEwNy43MjM1NzE3OCAobikgLTE0LjY4OTYzNjIzIChpKSAzMS4wMTEzMjIwMgorKHYpIC0xMjUuNjc3NDU5NzIgKGUpIDE0LjY4OTU3NTIgKHIpIDM1LjkwNzg2NzQzIChzKSA1Ny4xMjYxNTk2NworKGkpIDMxLjAxMTMyMjAyICh0KSAtMTEuNDI1MjAxNDIgKHkpIC00OC45NjUyNDA0OF1USgorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5MjJfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5MjJfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczMDU3YWMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTkyMl9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5MjJfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTkyMl9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2FhNDFhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5MjJfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NDkuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk0OS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTdhZmQzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NDkuaW4KQEAgLTAsMCArMSwxMzMgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDQ0IDI0XQorICAvUmVzb3VyY2VzIDw8CisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0dTSGFsZkFscGhhQ29uc3RhbnQgNSAwIFIKKyAgICAgIC9HU0hhbGZBbHBoYU1hc2sgNiAwIFIKKyAgICA+PgorICAgIC9YT2JqZWN0IDw8CisgICAgICAvSGFsZkFscGhhU3F1YXJlIDggMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKworJSBPcGFxdWUgYmxhY2sgYmFja2dyb3VuZC4KK3EKKyAgMCAwIDAgcmcKKyAgMCAwIDQ0IDI0IHJlCisgIGYKK1EKKworJSBUcmFuc3BhcmVuY3kgZ3JvdXAgZHJhd24gd2l0aCBjb25zdGFudCBhbHBoYS4KK3EKKyAgMSAwIDAgMSA0IDQgY20KKyAgL0dTSGFsZkFscGhhQ29uc3RhbnQgZ3MKKworICAvSGFsZkFscGhhU3F1YXJlIERvCitRCisKKyUgVHJhbnNwYXJlbmN5IGdyb3VwIGRyYXduIHdpdGggYSBzb2Z0IG1hc2suCitxCisgIDEgMCAwIDEgMjQgNCBjbQorICAvR1NIYWxmQWxwaGFNYXNrIGdzCisKKyAgL0hhbGZBbHBoYVNxdWFyZSBEbworUQorCitlbmRzdHJlYW0KK2VuZG9iagorCislIEdyYXBoaWNzIHN0YXRlIHdpdGggYSAwLjUgbm9uLXN0cm9raW5nIGFscGhhIGNvbnN0YW50Lgore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0V4dEdTdGF0ZQorICAvY2EgMC41Cis+PgorZW5kb2JqCisKKyUgR3JhcGhpY3Mgc3RhdGUgd2l0aCBhIHNvZnQgbWFzayBjb250YWluaW5nIGEgMC41IGFscGhhIGNlbnRyYWwgaG9sZS4KK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9FeHRHU3RhdGUKKyAgL1NNYXNrIDw8CisgICAgL1R5cGUgL01hc2sKKyAgICAvUyAvTHVtaW5vc2l0eQorICAgIC9HIDcgMCBSCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvQkJveCBbMCAwIDE2IDE2XQorICAvR3JvdXAgPDwKKyAgICAvVHlwZSAvR3JvdXAKKyAgICAvUyAvVHJhbnNwYXJlbmN5CisgICAgL0NTIC9EZXZpY2VHcmF5CisgICAgL0kgdHJ1ZQorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCisgIDEgZworICAwIDAgMTYgMTYgcmUKKyAgZgorCisgIDAuNSBnCisgIDQgNCA4IDggcmUKKyAgZgorUQorZW5kc3RyZWFtCitlbmRvYmoKKworJSBUcmFuc3BhcmVuY3kgZ3JvdXAgY29udGFpbmluZyBhIDAuNSBhbHBoYSB3aGl0ZSBzcXVhcmUuCit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvQkJveCBbMCAwIDE2IDE2XQorICAvR3JvdXAgPDwKKyAgICAvVHlwZSAvR3JvdXAKKyAgICAvUyAvVHJhbnNwYXJlbmN5CisgICAgL0kgdHJ1ZQorICA+PgorICAvUmVzb3VyY2VzIDw8CisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0dTSGFsZkFscGhhQ29uc3RhbnQgNSAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCisgIC9HU0hhbGZBbHBoYUNvbnN0YW50IGdzCisKKyAgMSAxIDEgcmcKKyAgMCAwIDE2IDE2IHJlCisgIGYKK1EKK2VuZHN0cmVhbQorZW5kb2JqCisKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTQ5X2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTQ5X2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjE1MDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NDlfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTQ5X2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NDlfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ0ZWE2ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTQ5X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTYzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NjMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc5NTYwYgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTYzLmluCkBAIC0wLDAgKzEsNzMgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMzAwIDUwMCAzNTAgNTMwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSA1IDAgUgorICAgICAgL1gyIDYgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKyAgMSAwIDAgMSAzMDEuNjUgNTE1LjQgY20KKyAgL1gxIERvCitRCitxCisgIDEgMCAwIDEgMzA0LjA1IDUwMy43IGNtCisgIC9YMiBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9CQm94IFszMDEuNjUgNTE1LjQgMzQyLjc1IDUyNy40XQorICAvTWF0cml4IFsxIDAgMCAxIC0zMDEuNjUgLTUxNS40XQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisxIDAgMCBSRworMiB3CiszMDUuNDAwIDUyMS40MDAgbQorMzM5LjAwMCA1MjEuNDAwIGwKK1MKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvQkJveCBbMzA0LjA1IDUwMy43IDM0NS4xNSA1MTUuN10KKyAgL01hdHJpeCBbMSAwIDAgMSAtMzA0LjA1IC01MDMuN10KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMSAwIDAgUkcKKzIgdworMzA3LjgwMCA1MTAuMDAwIG0KKzM0MS40MDAgNTA5LjQwMCBsCitTCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NjNfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NjNfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyYWVjOGMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk2M19leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NjNfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk2M19leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDlkZGFlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NjNfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NjYuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk2Ni5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTJhNmNiCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NjYuaW4KQEAgLTAsMCArMSwxMjEgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKyAgL01lZGlhQm94IFswIDAgMTI4LjU3MSAxMjguNTcxXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNyAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvSW0xIDQgMCBSCisgICAgPj4KKyAgICAvUGF0dGVybiA8PAorICAgICAgL1AxIDUgMCBSCisgICAgICAvUDIgNiAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDEKKyAgL0ZpbHRlciAvQVNDSUlIZXhEZWNvZGUKKyAgL0hlaWdodCA0MAorICAvSW1hZ2VNYXNrIHRydWUKKyAgL1dpZHRoIDgwCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDAwMDAwMDAwMDAwRkZGRgorRkZGRjAwMDAwMDAwMDAwMEZGRkZGRkZGMEZGRkZGRkZGRkYwRkZGRkZGRkYwRkZGRkZGRkZGRjBGRkZGCitGRkZGMEZGRkZGRkZGRkYwRkZGRkZGRkYwRkZGRkZGRkZGRjBGRkZGRkZGRjAwMDAwMDAwMDAwMEZGRkYKK0ZGRkYwMDAwMDAwMDAwMDBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgorRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCitGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKK0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgorRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGCitGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYKK0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgorRkZGRjAwMDAwMDAwMDAwMEZGRkZGRkZGMDAwMDAwMDAwMDAwRkZGRkZGRkYwRkZGRkZGRkZGRjBGRkZGCitGRkZGMEZGRkZGRkZGRkYwRkZGRkZGRkYwRkZGRkZGRkZGRjBGRkZGRkZGRjBGRkZGRkZGRkZGMEZGRkYKK0ZGRkYwMDAwMDAwMDAwMDBGRkZGRkZGRjAwMDAwMDAwMDAwMEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgorRkZGRkZGRkZGRkZGRkZGRkZGRkYKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvUGF0dGVybgorICAvUGFpbnRUeXBlIDEKKyAgL1BhdHRlcm5UeXBlIDEKKyAgL1RpbGluZ1R5cGUgMQorICAvQkJveCBbMCAwIDEyOC41NzEgMTI4LjU3MV0KKyAgL1hTdGVwIDEyOC41NzEKKyAgL1lTdGVwIDEyOC41NzEKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorMC4wIDAuMCAwLjAgcmcKKzAgMTI4LjU3MSBtCisxMjguNTcxIDEyOC41NzEgbAorMTI4LjU3MSA2NCBsCiswIDY0IGwKK2YKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvUGF0dGVybgorICAvUGFpbnRUeXBlIDEKKyAgL1BhdHRlcm5UeXBlIDEKKyAgL1RpbGluZ1R5cGUgMQorICAvQkJveCBbMCAwIDEyOC41NzEgMTI4LjU3MV0KKyAgL1hTdGVwIDEyOC41NzEKKyAgL1lTdGVwIDEyOC41NzEKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorJSBzZWNvbmQgcGF0dGVybgorcQorMC4wIDAuMCAwLjAgcmcKKzAgNjQgbQorMTI4LjU3MSA2NCBsCisxMjguNTcxIDAgbAorMCAwIGwKK2YKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCisvUGF0dGVybiBjcworL1AxIHNjbgorcQorMTI4LjU3MSAwIDAgMTI4LjU3MSAwIDAgY20KKy9JbTEgRG8KK1EKKy9QMiBzY24KK3EKKzEyOC41NzEgMCAwIDEyOC41NzEgMCAwIGNtCisvSW0xIERvCitRCitRCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTY2X2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTY2X2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2QxMmJkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NjZfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTY2X2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NjZfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM0Y2E2NAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTY2X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTcyXzEuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Ml8xLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1MzdlOTQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Ml8xLmluCkBAIC0wLDAgKzEsMzYgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgMjAwIDEwMF0KKyAgL0NvbnRlbnRzIDQgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCis1IDAgMCA1IDAgMCBjbQorMCAxIDAgUkcKKzAgMCBtCisxNjAwMCAxNDIwIGwKK1MKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Ml8xX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTcyXzFfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjYTMwZGYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Ml8xX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Ml8yLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NzJfMi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzFhZDk1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NzJfMi5pbgpAQCAtMCwwICsxLDM2IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAxMDBdCisgIC9Db250ZW50cyA0IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorNSAwIDAgNSAwIDAgY20KKzAgMSAwIFJHCistOTAwMCAtOTAwMCBtCis1MDAgNTAwIGwKK1MKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Ml8yX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTcyXzJfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5YjhjOGEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Ml8yX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Ml8zLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NzJfMy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDg0ZGY3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NzJfMy5pbgpAQCAtMCwwICsxLDM2IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAxMDBdCisgIC9Db250ZW50cyA0IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorNSAwIDAgNSAwIDAgY20KKzAgMSAwIFJHCiswIDAgbQorMiAxMDAwMCAyMCA5MDAwIDQwIC0xMDAwMCBjCitTCitRCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NzJfM19leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Ml8zX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMGY5N2M5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NzJfM19leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NzMuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3My5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDU2MDJkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5NzMuaW4KQEAgLTAsMCArMSw4MSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWyAzIDAgUiBdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWyAyNDAgNTcwIDM0NSA2NTAgXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9JbWcgNSAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagorCislIENvbnRlbnQgc3RyZWFtIG1hdGNoaW5nIGNvb3JkaW5hdGVzIGluIGZvcm1fYnV0dG9uMC5wZGYuCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCisgIDg5LjU1NTk2OCAwIDAgNjcuMTY2OTc2IDI0Ny43MjIyIDU3Ni44MzMzIGNtCisgIHEKKyAgICAxIDAgMCByZworICAgIDAgMCAxIDEgcmUKKyAgICBmCisgIFEKKyAgL0ltZyBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKKworJSBBIDEwMjR4NzY4IGltYWdlIHdpdGggYSBzaW5nbGUgKDB4MDApLCBpbmRleGVkIGNvbG9yICgweDAwRkYwMCkuCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSBbIC9JbmRleGVkIC9EZXZpY2VSR0IgMCA8MDBGRjAwPiBdCisgIC9GaWx0ZXIgWyAvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlIF0KKyAgL0hlaWdodCA3NjgKKyAgL1dpZHRoIDEwMjQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorNzhEQUVEQzEzMTAxMDAwMDAwQzJBMEY1NEY2RDA2N0ZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UwMzAwQjQwMDAxCitlbmRzdHJlYW0KK2VuZG9iagorCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3M19leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3M19leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQ3NWI2MgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTczX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Ni5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTc2LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NmY1ZGEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Ni5pbgpAQCAtMCwwICsxLDgzIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCA5NiA5Nl0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvWDAgNSAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagorCislIEdyZWVuIGFuZCByZWQgY2hlY2tlcmJvYXJkLiBXaGVuIHNjYWxlZCBkb3duLCB0aGUgZ3JlZW4gYW5kIHJlZCBzaG91bGQgYmxlbmQKKyUgdG9nZXRoZXIgaW50byBhIGRhcmtlciB5ZWxsb3cuCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCisgICUgU29saWQgZ3JlZW4gc3F1YXJlLgorICAwIDEgMCByZworICAxNiAxNiA2NCA2NCByZSBmCitRCitxCisgICUgVHJhbnNwYXJlbnQgYW5kIHJlZCBjaGVja2VyYm9hcmQuCisgIDY0IDAgMCA2NCAxNiAxNiBjbQorICAvWDAgRG8KK1EKK2VuZHN0cmVhbQorZW5kb2JqCisKKyUgU2luZ2xlIHBpeGVsIGltYWdlIHdpdGggL1NNYXNrIHRvIHRyaWdnZXIgbWFza2VkIGltYWdlIHJlbmRlcmluZy4KK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0ZpbHRlciAvQVNDSUlIZXhEZWNvZGUKKyAgL0hlaWdodCAxCisgIC9TTWFzayA2IDAgUgorICAvV2lkdGggMQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitGRiAwMCAwMAorZW5kc3RyZWFtCitlbmRvYmoKKworJSBHcmF5c2NhbGUgY2hlY2tlcmJvYXJkIHRvIHRyaWdnZXIgOC1iaXQgdG8gOC1iaXQgc2NhbGluZy4gU2NhbGluZyBkb3duIGJ5IGEKKyUgbXVsdGlwbGUgb2YgMiB1c2luZyBuZWFyZXN0IG5laWdoYm9yIGdpdmVzIHBhcnRpY3VsYXJseSBiYWQgcmVzdWx0cy4KK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VHcmF5CisgIC9GaWx0ZXIgWy9BU0NJSTg1RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL0hlaWdodCAxMjgKKyAgL1dpZHRoIDEyOAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitHaFZRMjBiIipfI2YmLmxSaVg/Q0JJNywkZHFRbCJpb2ZMZmtORCRra05EJGtrTkQka2tORCRra05EJGtrTkQka2tORCRra05EJGtrTkQkawora05EJGtrTkQka2tORCRra05EJGtrTkQka2tOQD9RP2hlM2tkSn4+CitlbmRzdHJlYW0KK2VuZG9iagorCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Nl9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk3Nl9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTliZmM4NAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTc2X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk4My5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTgzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxNjcyNTgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk4My5pbgpAQCAtMCwwICsxLDQzIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyBbNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDEwMCAxMDBdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisyMCB3CitxCisxIDAgMCAxIDIwIDEwIGNtCisxIEoKKyUgVGhlIGZpcnN0IGRvdAorMTAgNDAgbQoraAorUworJSBUaGUgc2Vjb25kIGRvdAorNTAgNDAgbQorNTAgNDAgbAoraAorUworUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTgzX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTgzX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTU5OTc0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5ODNfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTgzX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5ODNfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUzNDFhYwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTgzX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTg2LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzE5ODYuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUzNWZiMwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTg2LmluCkBAIC0wLDAgKzEsNjEgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL0ltMCA1IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCis2MTIgMCAwIDc5MiAwIDAgY20KKy9JbTAgRG8KK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0ZpbHRlciBbNiAwIFIgL0xaV0RlY29kZSA3IDAgUl0KKyAgL1dpZHRoIDYxMgorICAvSGVpZ2h0IDc5MgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis4MDAwMjA0MGMzNTE0MDQwMjAwNjgyOTBlMGE4MTAwMDI4NjYzYTFlNGUwNmEzODBjODQxMGQwMDQ1MjJkMGQxNmM2OGQxMGQwYjFhNGQwNgorNDM5NDA4MDYxODgxMDA4YzgwMDAxODFjMGYxODAwMDNjYzY2ZjM2MWM4MDMzMDA4NDM1OGQxYTMxYmZjOWVmZjI4ODAwNWYxODk1NDlhNTEKKzMwYTI0YWU1OTQ3YTQ0YjAwZTAxMDBkM2VhMzUwN2Y5NDgwMDBjODZkNDAwYTA0MDIwMDAwMmZmMmUwMDAyNjQwMjAxMjA5MDUwYjM1YTJjCitmNjliNGJmZTU2MjVhZjEwY2U0NjUzMDlkMGNhNjQxMDE4OGYyMjAyNzljMGNhNmUyNTE0MDhhNDcxMDFkOGNhNzIzOTlhNGRlNmUxMDBjOAorNWMzMzE3MGMxZmU5MDAwNDMyMzAzZmFmM2ZkMjZjZjVhMTQwMjI1MDJhMmJkZmU3ZjM2OWEwYjQ4MDk4MGMxMjA5N2QxODAxYmU4MDFjMDUKKzAwMDVjNTdiZjgxOGRhYTZlZTVmZWQ5ODAxCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNiAwfX0KKy9BU0NJSUhleERlY29kZQorZW5ib2JqCit7e29iamVjdCA3IDB9fQorL0pQWERlY29kZQorZW5ib2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk4Nl9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk4Nl9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTFiM2Q0MwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTg2X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk5NS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTk1LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0OGZhNTgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk5NS5pbgpAQCAtMCwwICsxLDgxIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvR3JvdXAgPDwKKyAgICAvVHlwZSAvR3JvdXAKKyAgICAvUyAvVHJhbnNwYXJlbmN5CisgID4+CisgIC9NZWRpYUJveCBbMCAwIDQwIDQwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0dTTWFzayA8PAorICAgICAgICAvU01hc2sgPDwKKyAgICAgICAgICAvVHlwZSAvTWFzaworICAgICAgICAgIC9TIC9BbHBoYQorICAgICAgICAgIC9HIDUgMCBSCisgICAgICAgID4+CisgICAgICA+PgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCisgIDEgMCAwIDEgNSA1IGNtCisKKyAgJSBSZWQgc3F1YXJlLgorICAxIDAgMCByZworICAwIDAgMzAgMzAgcmUKKyAgZgorCisgICUgQmx1ZSBzcXVhcmUgd2l0aCBzb2Z0IG1hc2sgZGljdGlvbmFyeS4KKyAgL0dTTWFzayBncworICAwIDAgMSByZworICAwIDAgMzAgMzAgcmUKKyAgZgorUQorZW5kc3RyZWFtCitlbmRvYmoKKworJSBTb2Z0IG1hc2sgZGljdGlvbmFyeSB3aXRoIGEgY2VudHJhbCBob2xlLgore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0JCb3ggWzAgMCAzMCAzMF0KKyAgL0dyb3VwIDw8CisgICAgL1R5cGUgL0dyb3VwCisgICAgL1MgL1RyYW5zcGFyZW5jeQorICAgIC9JIHRydWUKKyAgPj4KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorICAwIDAgMCBSRworICAxNSB3CisgIDAgMCAzMCAzMCByZQorICBTCitRCitlbmRzdHJlYW0KK2VuZG9iagorCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk5NV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk5NV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFmZjNlOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTk1X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk5NV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18xOTk1X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3YWMwMWYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMTk5NV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMjAwMS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMjAwMS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjczODMxZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18yMDAxLnBkZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMjAwMV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMjAwMV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQzNTNhOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18yMDAxX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMjM3NTI3XzEuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMjM3NTI3XzEuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTAzZmEyYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18yMzc1MjdfMS5pbgpAQCAtMCwwICsxLDM3IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Bbm5vdHMgWzQgMCBSXQorICAvTWVkaWFCb3ggWzAgMCAzMDAgMzAwXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9BIDw8CisgICAgL1R5cGUgL0FjdGlvbgorICAgIC9TIC9VUkkKKyAgICAvVVJJICh3d3cuZ29vZ2xlLmNvbSkKKyAgPj4KKyAgL0JvcmRlciBbMCAwIDFdCisgIC9DIFswIDEgMV0KKyAgL0ggL0kKKyAgL1JlY3QgWzEwMCAxMDAgMjAwIDEyMF0KKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18yMzc1MjdfMV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMjM3NTI3XzFfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4YzgxNDgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMjM3NTI3XzFfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18yMzc1MjdfMV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18yMzc1MjdfMV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWY1NzdlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzIzNzUyN18xX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18yMzc1MjdfMi5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18yMzc1MjdfMi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDRlZWZhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzIzNzUyN18yLmluCkBAIC0wLDAgKzEsNDIgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0Fubm90cyBbNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDMwMCAzMDBdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0xpbmsKKyAgL0EgPDwKKyAgICAvVHlwZSAvQWN0aW9uCisgICAgL1MgL1VSSQorICAgIC9VUkkgKGh0dHA6Ly93d3cuZ29vZ2xlLmNvbSkKKyAgPj4KKyAgL0JTIDw8CisgICAgL1R5cGUgL0JvcmRlcgorICAgIC9TIC9VCisgICAgL1cgMQorICA+PgorICAvQm9yZGVyIFswIDAgMV0KKyAgL0MgWzAgMSAxXQorICAvSCAvSQorICAvUmVjdCBbMTAwIDEwMCAyMDAgMTIwXQorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzIzNzUyN18yX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18yMzc1MjdfMl9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTRiMDRkZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z18yMzc1MjdfMl9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzMwNF9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMzA0X2V4cGVjdGVkLnBkZi4wLnBuZwppbmRleCBlMWIzZDQzLi42MmRlODdiIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMzA0X2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfMzA0X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNDUxMzY2X2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzQ1MTM2Nl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGI0NTI0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzQ1MTM2Nl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNDkxX2ludmlzaWJsZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z180OTFfaW52aXNpYmxlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxOGEyNjYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNDkxX2ludmlzaWJsZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNDkxX3Vuc3BlY2lmaWVkX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzQ5MV91bnNwZWNpZmllZF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDY2NWFjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzQ5MV91bnNwZWNpZmllZF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNDkxX3Zpc2libGVfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNDkxX3Zpc2libGVfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA2NjVhYwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z180OTFfdmlzaWJsZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNDkyLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzQ5Mi5pbgppbmRleCA0NWM0YTZmLi5lMjkyMmRiIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNDkyLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z180OTIuaW4KQEAgLTM1LDcgKzM1LDcgQEAKICAgL0pTIDIxIDAgUgogPj4KIGVuZG9iagotJSBKUyBwcm9ncmFtIHRvIGV4ZXh1dGUKKyUgSlMgcHJvZ3JhbSB0byBleGVjdXRlCiB7e29iamVjdCAyMSAwfX0gPDwKID4+CiBzdHJlYW0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfMV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzFfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IGVhYmY5NTcuLmE3ZTFmZDcgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfMV9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M18xX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzFfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzFfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM4ZTlmMwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfMV9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzFfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfMV9leHBlY3RlZF9tYWMucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODViOWQwLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfMV9leHBlY3RlZF9tYWMucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M18xX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzFfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJjMTM0YS4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzFfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfMl9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzJfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IDA0MzA0ZmUuLjRkZDI2NzIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfMl9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M18yX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzJfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzJfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNiZjIxZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfMl9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzJfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfMl9leHBlY3RlZF9tYWMucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlY2VkZTdkLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfMl9leHBlY3RlZF9tYWMucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M18yX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzJfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzg2ZDk2My4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzJfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfM19leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzNfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IGVhYmY5NTcuLmE3ZTFmZDcgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfM19leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M18zX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzNfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzNfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc5NDM1NQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfM19leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzNfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfM19leHBlY3RlZF9tYWMucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODViOWQwLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfM19leHBlY3RlZF9tYWMucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M18zX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzNfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJjMTM0YS4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzNfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfNF9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzRfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IGVhYmY5NTcuLmE3ZTFmZDcgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfNF9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M180X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzRfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzRfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc5NDM1NQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfNF9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzRfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfNF9leHBlY3RlZF9tYWMucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODViOWQwLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfNF9leHBlY3RlZF9tYWMucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M180X2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzRfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJjMTM0YS4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzRfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfNV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzVfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IGVhYmY5NTcuLmE3ZTFmZDcgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfNV9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M181X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzVfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzVfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc5NDM1NQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfNV9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzVfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfNV9leHBlY3RlZF9tYWMucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODViOWQwLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfNV9leHBlY3RlZF9tYWMucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M181X2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzVfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJjMTM0YS4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzVfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfNl9leHBlY3RlZF9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M182X2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlZGNjMmQuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M182X2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzdfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M183X2V4cGVjdGVkLnBkZi4wLnBuZwppbmRleCAwNDMwNGZlLi40ZGQyNjcyIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzdfZXhwZWN0ZWQucGRmLjAucG5nCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfN19leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M183X2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M183X2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzYmYyMWYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzdfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M183X2V4cGVjdGVkX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzdfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWNlZGU3ZC4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI0MDQzXzdfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjQwNDNfN19leHBlY3RlZF93aW4ucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M183X2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4NmQ5NjMuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyNDA0M183X2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI4MTAzX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjgxMDNfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IDVjMGMyNTQuLjc5MjQwZGQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjgxMDNfZXhwZWN0ZWQucGRmLjAucG5nCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjgxMDNfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjgxMDNfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI4MTAzX2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMjNiNTUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI4MTAzX2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjgxMDNfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181MjgxMDNfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2IwMjhmOS4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI4MTAzX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI4MTAzX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTI4MTAzX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjY2RhMjMuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzUyODEwM19leHBlY3RlZF93aW4ucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU0MzAxOF8xX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NDMwMThfMV9leHBlY3RlZC5wZGYuMC5wbmcKaW5kZXggZWFiZjk1Ny4uYTdlMWZkNyAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU0MzAxOF8xX2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTQzMDE4XzFfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NDMwMThfMV9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NDMwMThfMV9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzk0MzU1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU0MzAxOF8xX2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NDMwMThfMV9leHBlY3RlZF9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU0MzAxOF8xX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4NWI5ZDAuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU0MzAxOF8xX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTQzMDE4XzFfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NDMwMThfMV9leHBlY3RlZF93aW4ucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmMxMzRhLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NDMwMThfMV9leHBlY3RlZF93aW4ucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU0MzAxOF8yX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NDMwMThfMl9leHBlY3RlZC5wZGYuMC5wbmcKaW5kZXggZWFiZjk1Ny4uYTdlMWZkNyAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU0MzAxOF8yX2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTQzMDE4XzJfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NDMwMThfMl9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NDMwMThfMl9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzk0MzU1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU0MzAxOF8yX2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NDMwMThfMl9leHBlY3RlZF9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU0MzAxOF8yX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4NWI5ZDAuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU0MzAxOF8yX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTQzMDE4XzJfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NDMwMThfMl9leHBlY3RlZF93aW4ucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmMxMzRhLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NDMwMThfMl9leHBlY3RlZF93aW4ucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU1MTI1OF8xX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NTEyNThfMV9leHBlY3RlZC5wZGYuMC5wbmcKaW5kZXggZWFiZjk1Ny4uYTdlMWZkNyAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU1MTI1OF8xX2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTUxMjU4XzFfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NTEyNThfMV9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NTEyNThfMV9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzk0MzU1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU1MTI1OF8xX2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NTEyNThfMV9leHBlY3RlZF9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU1MTI1OF8xX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4NWI5ZDAuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU1MTI1OF8xX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTUxMjU4XzFfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NTEyNThfMV9leHBlY3RlZF93aW4ucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMmMxMzRhLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NTEyNThfMV9leHBlY3RlZF93aW4ucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU1NDE1MV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTU0MTUxX2V4cGVjdGVkLnBkZi4wLnBuZwppbmRleCAwOGMxMWIwLi41Yjk5YTRkIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTU0MTUxX2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTU0MTUxX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTU3MjIzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU1NzIyMy5pbgppbmRleCBhY2IxZmYyLi5jMGMwNmI2IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTU3MjIzLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181NTcyMjMuaW4KQEAgLTc1LDcgKzc1LDcgQEAKIHRyYWlsZXIgPDwKICAgICAvSW5mbyA2IDAgUgogICAgIC9Sb290IDEgMCBSCi0gICAgL1NpemUgNworICAgIHt7dHJhaWxlcnNpemV9fQogPj4KIHt7c3RhcnR4cmVmfX0KICUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTg1X2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU4NV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDllMjFlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzU4NV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNTkxMTM3X2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181OTExMzdfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IDI2NWU2ODIuLjc0YzVjNjQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181OTExMzdfZXhwZWN0ZWQucGRmLjAucG5nCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z181OTExMzdfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182MDEzNjJfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzYwMTM2Ml9leHBlY3RlZC5wZGYuMC5wbmcKaW5kZXggNWQ4NjhkNS4uNDlkYjhkOSAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzYwMTM2Ml9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzYwMTM2Ml9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzYwMTM2Ml9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182MDEzNjJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM3MWIzYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182MDEzNjJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzYzMl9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNjMyX2V4cGVjdGVkLnBkZi4wLnBuZwppbmRleCAzODA3ZDkzLi40ZmM2MDgxIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNjMyX2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNjMyX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNjMyX2V4cGVjdGVkLnBkZi4xLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182MzJfZXhwZWN0ZWQucGRmLjEucG5nCmluZGV4IDE0MWYzZDguLmVlMTFjZTYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182MzJfZXhwZWN0ZWQucGRmLjEucG5nCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182MzJfZXhwZWN0ZWQucGRmLjEucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182MzJfZXhwZWN0ZWRfc2tpYS5wZGYuMS5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNjMyX2V4cGVjdGVkX3NraWEucGRmLjEucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwMmRjYmEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNjMyX2V4cGVjdGVkX3NraWEucGRmLjEucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182NjA4NTBfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNjYwODUwX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NGY0NWIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNjYwODUwX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182NjU0NjcuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNjY1NDY3LmluCmluZGV4IDZlZjJjMWMuLjI4OWU4ZGUgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182NjU0NjcuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzY2NTQ2Ny5pbgpAQCAtNCw5NiArNCw2NiBAQAogICAvUGFnZXMgMiAwIFIKID4+CiBlbmRvYmoKLQoge3tvYmplY3QgMiAwfX0gPDwKICAgL1R5cGUgL1BhZ2VzCi0gIC9NZWRpYUJveCBbIDAgMCAxMDAgMTAwIF0KICAgL0NvdW50IDEKLSAgL0tpZHMgWyAzIDAgUiBdCisgIC9LaWRzIFszIDAgUl0KKyAgL01lZGlhQm94IFswIDAgMTAwIDEwMF0KID4+CiBlbmRvYmoKLQoge3tvYmplY3QgMyAwfX0gPDwKICAgL1R5cGUgL1BhZ2UKICAgL1BhcmVudCAyIDAgUgotICAvUmVzb3VyY2VzCi0gIDw8Ci0gICAgL0ZvbnQgPDwgL0YxIDQgMCBSID4+CisgIC9Db250ZW50cyA0IDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA1IDAgUgorICAgID4+CiAgID4+Ci0gIC9Db250ZW50cyA4IDAgUgogPj4KIGVuZG9iagotCiB7e29iamVjdCA0IDB9fSA8PAotICAvVHlwZSAvRm9udAotICAvU3VidHlwZSAvVHJ1ZVR5cGUKLSAgL0Jhc2VGb250IC9DaHJvbWVTYW5zTU0KLSAgL0VuY29kaW5nIDUgMCBSCi0gIC9GaXJzdENoYXIgMzIKLSAgL0xhc3RDaGFyIDI1NQotICAvTmFtZSAvRjEKLSAgL1RvVW5pY29kZSA2IDAgUgotICAvRm9udERlc2NyaXB0b3IgNyAwIFIKLT4+Ci1lbmRvYmoKLQote3tvYmplY3QgNSAwfX0gPDwKLSAgL0RpZmZlcmVuY2VzIFsgMTYxIC9zb21ldW5rbm93bm5hbWUgXQotICAvVHlwZSAvRW5jb2RpbmcKLT4+Ci1lbmRvYmoKLQote3tvYmplY3QgNiAwfX0gPDwKLT4+Ci1zdHJlYW0KLS9DSURJbml0IC9Qcm9jU2V0IGZpbmRyZXNvdXJjZSBiZWdpbgotMTIgZGljdCBiZWdpbgotYmVnaW5jbWFwCi0vQ0lEU3lzdGVtSW5mbwotPDwvUmVnaXN0cnkgKEFkb2JlKQotL09yZGVyaW5nIChJZGVudGl0eSkKLS9TdXBwbGVtZW50IDAKLT4+IGRlZgotL0NNYXBOYW1lIC9BZG9iZS1JZGVudGl0eS1IIGRlZgotQ01hcFR5cGUgMiBkZWYKLTEgYmVnaW5jb2Rlc3BhY2VyYW5nZQotPDAwPiA8RkY+Ci1lbmRjb2Rlc3BhY2VyYW5nZQotMSBiZWdpbmJmY2hhcgotPEExPiA8MDQzQj4KLWVuZGJmY2hhcgotZW5kY21hcAotQ01hcE5hbWUgY3VycmVudGRpY3QgL0NNYXAgZGVmaW5lcmVzb3VyY2UgcG9wCi1lbmQKLWVuZAotZW5kc3RyZWFtCi1lbmRvYmoKLQote3tvYmplY3QgNyAwfX0gPDwKLSAgPDwgL0FzY2VudCAxMDAwCi0gIC9DYXBIZWlnaHQgMAotICAvRGVzY2VudCAtMjAwCi0gIC9GbGFncyAzMgotICAvRm9udEJCb3ggWyAtNTk5IC0yMDcgMTMzOCAxMDM0IF0KLSAgL0ZvbnROYW1lIC9DaHJvbWVTYW5zTU0KLSAgL0l0YWxpY0FuZ2xlIDAKLSAgL1N0ZW1WIDAKLSAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi0+PgotZW5kb2JqCi0KLXt7b2JqZWN0IDggMH19IDw8CisgIHt7c3RyZWFtbGVufX0KID4+CiBzdHJlYW0KIEJUCi01MCA1MCBUZCAvRjEgMTUgVGYgPEExPiBUagorNTAgNTAgVGQKKy9GMSAxNSBUZgorWzw4Qz5dVEoKIEVUCiBlbmRzdHJlYW0KIGVuZG9iagotCi17e3hyZWZ9fQotdHJhaWxlciA8PAotICAvUm9vdCAxIDAgUgore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1RydWVUeXBlCisgIC9CYXNlRm9udCAvVGFob21hCisgIC9FbmNvZGluZyA2IDAgUgorICAvRmlyc3RDaGFyIDEzOQorICAvRm9udERlc2NyaXB0b3IgNyAwIFIKKyAgL0xhc3RDaGFyIDE0MAorICAvV2lkdGhzIFs5NDMgNjc3XQogPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL0VuY29kaW5nCisgIC9EaWZmZXJlbmNlcyBbCisgICAgMTQwIC9FbGN5cmlsbGljCisgIF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9Gb250RGVzY3JpcHRvcgorICAvQXNjZW50IDEwMzQKKyAgL0NhcEhlaWdodCAwCisgIC9EZXNjZW50IC0yMDcKKyAgL0ZsYWdzIDMyCisgIC9Gb250QkJveCBbLTU5OSAtMjA3IDEzMzggMTAzNF0KKyAgL0ZvbnROYW1lIC9UYWhvbWEKKyAgL0l0YWxpY0FuZ2xlIDAKKyAgL1N0ZW1WIDAKKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQoge3tzdGFydHhyZWZ9fQogJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182NjU0NjdfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzY2NTQ2N19leHBlY3RlZC5wZGYuMC5wbmcKaW5kZXggZTNiMzdiNC4uNDUzMjU2NSAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzY2NTQ2N19leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzY2NTQ2N19leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzY2NTQ2N19leHBlY3RlZF9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzY2NTQ2N19leHBlY3RlZF9tYWMucGRmLjAucG5nCmluZGV4IDlmNTFkY2IuLjBmYWRkZjggMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182NjU0NjdfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNjY1NDY3X2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzY2NTQ2N19leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182NjU0NjdfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNkMTNmZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182NjU0NjdfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzY2NTQ2N19leHBlY3RlZF93aW4ucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzY2NTQ2N19leHBlY3RlZF93aW4ucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZmViNzE3Li4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z182NjU0NjdfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MTQxODdfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzE0MTg3X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwY2FjNTcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzE0MTg3X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MjUzODkuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzI1Mzg5LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMDgxOGIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzI1Mzg5LmluCkBAIC0wLDAgKzEsNTggQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzQgMCBSXQorICA+PgorICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvQW5ub3RzIFs0IDAgUl0KKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCAyMDAgMTAwXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9UeAorICAvQlMgPDwKKyAgICAvUyAvUworICAgIC9XIDEKKyAgPj4KKyAgL0RBICgvVGltZXMtUm9tYW4gMTIgVGYgMCAwIDAgcmcpCisgIC9EUiA8PAorICAgIC9Gb250IDw8CisgICAgICAvVGltZXMtUm9tYW4gNSAwIFIKKyAgICA+PgorICA+PgorICAvRFYgKCkKKyAgL0YgNAorICAvRmYgMAorICAvTUsgPDwKKyAgICAvQkcgWzEgMSAxXQorICA+PgorICAvUCAzIDAgUgorICAvVCAoRGVmYXVsdCkKKyAgL1YgKFwzNzZcMzc3XDVcMzIxXDVcMzI3XDVcMzUwXDAuXDAuXDAuKQorICAvUmVjdCBbNTAgNDAgMTUwIDcwXQorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvVGltZXMtUm9tYW4KKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MjUzODlfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzcyNTM4OV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRhMWI3NwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MjUzODlfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MjUzODlfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MjUzODlfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTNjMmMzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzcyNTM4OV9leHBlY3RlZF9tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MjUzODlfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzI1Mzg5X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1YWQ4OTAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzI1Mzg5X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MjUzODlfZXhwZWN0ZWRfc2tpYV9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzcyNTM4OV9leHBlY3RlZF9za2lhX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE1YTRiMAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MjUzODlfZXhwZWN0ZWRfc2tpYV9tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzM1MjhfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczMzUyOF9leHBlY3RlZC5wZGYuMC5wbmcKaW5kZXggZWFmNDhiNS4uNWUxNzhkYSAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczMzUyOF9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczMzUyOF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczMzUyOF9leHBlY3RlZF9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczMzUyOF9leHBlY3RlZF9tYWMucGRmLjAucG5nCmluZGV4IGY3YzgzMDIuLjk5MmU0ODggMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzM1MjhfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzMzNTI4X2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczMzUyOF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzM1MjhfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRmYTk5ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzM1MjhfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczMzUyOF9leHBlY3RlZF93aW4ucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczMzUyOF9leHBlY3RlZF93aW4ucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDRiOTMyLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzM1MjhfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY2OTVfMV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzFfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IDk5ZDdiZDcuLjEwYmJiMGQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY2OTVfMV9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjY5NV8xX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzFfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzFfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNiN2QyYgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY2OTVfMV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzJfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjY5NV8yX2V4cGVjdGVkLnBkZi4wLnBuZwppbmRleCAzM2VhMDc3Li40ZmU5NjJkIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzJfZXhwZWN0ZWQucGRmLjAucG5nCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY2OTVfMl9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjY5NV8yX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzJfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwppbmRleCA0NmM3MDg1Li5lNDZlMDJkIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzJfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzJfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODAxYjE1NwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY2OTVfMl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzJfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY2OTVfMl9leHBlY3RlZF93aW4ucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZmE5NGYwLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY2OTVfMl9leHBlY3RlZF93aW4ucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjY5NV8zX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY2OTVfM19leHBlY3RlZC5wZGYuMC5wbmcKaW5kZXggY2JmZmUwYS4uMTNjOWQwYSAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjY5NV8zX2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzNfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY2OTVfM19leHBlY3RlZF9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjY5NV8zX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKaW5kZXggMWFiY2QxOC4uZjE1ZDAzOCAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjY5NV8zX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjY5NV8zX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjY5NV8zX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjY5NV8zX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiMDJmMWIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzNfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjY5NV8zX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzNfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDI3YTliNC4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzNfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY2OTVfNF9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzRfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IDk5ZDdiZDcuLjEwYmJiMGQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY2OTVfNF9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjY5NV80X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzRfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2Njk1XzRfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNiN2QyYgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY2OTVfNF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2NzAzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjcwMy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWM0YTM1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzczNjcwMy5pbgpAQCAtMCwwICsxLDczIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL1RleHRdCisgICAgL0ZvbnQgPDwKKyAgICAgIC9GNCA1IDAgUgorICAgID4+CisgID4+CisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCitCVAorL0Y0IDMwIFRmCiswIDAgMCByZworMSAwIDAgMSAzMCAxMDAgVG0KK1soaG9ub3JhYmx5KV1USgorRVQKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9BR2FyYW1vbmQtUmVndWxhcgorICAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZworICAvRmlyc3RDaGFyIDMyCisgIC9Gb250RGVzY3JpcHRvciA2IDAgUgorICAvTGFzdENoYXIgMTI1CisgIC9XaWR0aHMgWzI1MCAyMjAgNDA0IDUwMCA1MDAgODQ0IDgxOCAyMzUgMzIwIDMyMCAzOTQgNTAwIDI1MCAzMjAgMjUwIDMyNyA1MDAKKyAgIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDI1MCAyNTAgNTAwIDUwMCA1MDAgMzIxIDc2NSA2MjMgNjA1IDY5NgorICAgNzgwIDU4NCA1MzggNzQ3IDgwNiAzMzggMzQ1IDY3NSA1NTMgOTEyIDc4MyA3OTUgNTQ5IDc5NSA2NDUgNDg5IDY2MCA3NDYgNjc2CisgICA5NjAgNjQzIDU3NCA2NDEgMzIwIDMwOSAzMjAgNTAwIDUwMCAzNjAgNDA0IDUwMCA0MDAgNTA5IDM5NiAyOTAgNDQ2IDUxNSAyNTcKKyAgIDI1MyA0ODIgMjQ3IDc4NyA1MjUgNDg2IDUwNyA0OTcgMzMyIDMyMyAzMDcgNTEyIDQzMiA2NjAgNDMyIDQzOCAzNzcgMzIwIDIzOQorICAgMzIwXQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCisgIC9Bc2NlbnQgNzIwCisgIC9DYXBIZWlnaHQgNjYzCisgIC9EZXNjZW50IC0yNzAKKyAgL0ZsYWdzIDM0CisgIC9Gb250QkJveCBbLTE4MyAtMjY5IDEwOTkgODUxXQorICAvRm9udE5hbWUgL0FHYXJhbW9uZC1SZWd1bGFyCisgIC9JdGFsaWNBbmdsZSAwCisgIC9TdGVtSCA0MAorICAvU3RlbVYgNzQKKyAgL1hIZWlnaHQgMzk3Cis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2NzAzX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z183MzY3MDNfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyZmUzYTEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfNzM2NzAzX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODIwMzQ1X2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184MjAzNDVfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IGUzYzhlMjQuLmU4OWE2ODAgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184MjAzNDVfZXhwZWN0ZWQucGRmLjAucG5nCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184MjAzNDVfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184MjAzNDVfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODIwMzQ1X2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwMTNjNWMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODIwMzQ1X2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184MjAzNDVfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184MjAzNDVfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmU3OTQwMi4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODIwMzQ1X2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODIwMzQ1X2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODIwMzQ1X2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzYjhiNDMuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzgyMDM0NV9leHBlY3RlZF93aW4ucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzg0Mi5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDIuaW4KaW5kZXggMjU1YTkwMi4uNzFmMDEwNCAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzg0Mi5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODQyLmluCkBAIC0yNCw3ICsyNCw3IEBACiA+PgogZW5kb2JqCiB7e29iamVjdCA0IDB9fSA8PAote3tzdHJlYW1sZW59fQorICB7e3N0cmVhbWxlbn19CiA+Pgogc3RyZWFtCiBxCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODQyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzg0Ml9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjEwYWE3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzg0Ml9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODQzX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzg0M19leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGM4MTkzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzg0M19leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODQ1Njk3X2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDU2OTdfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IDNiYzIyNGIuLjE1ZWM0ZGQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDU2OTdfZXhwZWN0ZWQucGRmLjAucG5nCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDU2OTdfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDYuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODQ2LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0MDVkNjcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODQ2LmluCkBAIC0wLDAgKzEsMTYwIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9SZXNvdXJjZXMgNCAwIFIKKyAgL0NvbnRlbnRzIDE1IDAgUgorICAvTWVkaWFCb3ggWzAgMCAyMDAgMjAwXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1Byb2NTZXQgWy9QREYgL1RleHRdCisgIC9Gb250IDw8CisgICAgL0YxIDUgMCBSCisgICAgL0YyIDcgMCBSCisgICAgL0YzIDkgMCBSCisgICAgL0Y0IDExIDAgUgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1RydWVUeXBlCisgIC9CYXNlRm9udCAvQXJpYWwtQm9sZAorICAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZworICAvRmlyc3RDaGFyIDY1CisgIC9Gb250RGVzY3JpcHRvciA2IDAgUgorICAvTGFzdENoYXIgNjUKKyAgL1dpZHRocyBbNzc4XQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCisgIC9Bc2NlbnQgOTIzCisgIC9DYXBIZWlnaHQgNjg3CisgIC9EZXNjZW50IC0yODIKKyAgL0ZsYWdzIDM0CisgIC9Gb250TmFtZSAvQXJpYWwtQm9sZAorICAvRm9udEJCb3ggMTQgMCBSCisgIC9JdGFsaWNBbmdsZSAwCisgIC9TdGVtViAxNDAuMjY5CisgIC9YSGVpZ2h0IDAKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UcnVlVHlwZQorICAvQmFzZUZvbnQgL0FyaWFsLUJvbGQsQm9sZAorICAvRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZworICAvRmlyc3RDaGFyIDY1CisgIC9Gb250RGVzY3JpcHRvciA4IDAgUgorICAvTGFzdENoYXIgNjUKKyAgL1dpZHRocyBbNzc4XQorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCisgIC9Bc2NlbnQgOTIzCisgIC9DYXBIZWlnaHQgNjg3CisgIC9EZXNjZW50IC0yODIKKyAgL0ZsYWdzIDM0CisgIC9Gb250TmFtZSAvQXJpYWwtQm9sZCxCb2xkCisgIC9Gb250QkJveCAxNCAwIFIKKyAgL0l0YWxpY0FuZ2xlIDAKKyAgL1N0ZW1WIDE0MC4yNjkKKyAgL1hIZWlnaHQgMAorPj4KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1RydWVUeXBlCisgIC9CYXNlRm9udCAvRGVqYVZ1U2Fucy1Cb2xkCisgIC9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCisgIC9GaXJzdENoYXIgNTgKKyAgL0ZvbnREZXNjcmlwdG9yIDEwIDAgUgorICAvTGFzdENoYXIgNjUKKyAgL1dpZHRocyAxMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEwIDB9fSA8PAorICAvVHlwZSAvRm9udERlc2NyaXB0b3IKKyAgL0FzY2VudCA5MjMKKyAgL0NhcEhlaWdodCA2ODcKKyAgL0Rlc2NlbnQgLTI4MgorICAvRmxhZ3MgMzQKKyAgL0ZvbnROYW1lIC9EZWphVnVTYW5zLUJvbGQKKyAgL0ZvbnRCQm94IDE0IDAgUgorICAvSXRhbGljQW5nbGUgMAorICAvU3RlbVYgMTQwLjI2OQorICAvWEhlaWdodCAwCis+PgorZW5kb2JqCit7e29iamVjdCAxMSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1RydWVUeXBlCisgIC9CYXNlRm9udCAvRGVqYVZ1U2Fucy1Cb2xkLEJvbGQKKyAgL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKKyAgL0ZpcnN0Q2hhciA1OAorICAvRm9udERlc2NyaXB0b3IgMTIgMCBSCisgIC9MYXN0Q2hhciA2NQorICAvV2lkdGhzIDEzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTIgMH19IDw8CisgIC9UeXBlIC9Gb250RGVzY3JpcHRvcgorICAvQXNjZW50IDkyMworICAvQ2FwSGVpZ2h0IDY4NworICAvRGVzY2VudCAtMjgyCisgIC9GbGFncyAzNAorICAvRm9udE5hbWUgL0RlamFWdVNhbnMtQm9sZCxCb2xkCisgIC9Gb250QkJveCAxNCAwIFIKKyAgL0l0YWxpY0FuZ2xlIDAKKyAgL1N0ZW1WIDE0MC4yNjkKKyAgL1hIZWlnaHQgMAorPj4KK2VuZG9iagore3tvYmplY3QgMTMgMH19IFsyNTAgMCAwIDAgMCAwIDAgNzc4XQorZW5kb2JqCit7e29iamVjdCAxNCAwfX0gWy0xMzQgLTMzNyAxMTkzIDEwMjFdCitlbmRvYmoKK3t7b2JqZWN0IDE1IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitCVAorL0YxIDIgVGYKKzE4IDAgMCAxOCA1MCAxMjAgVG0KKyhBKVRqCitFVAorQlQKKy9GMiAyIFRmCisxOCAwIDAgMTggMTIwIDEyMCBUbQorKEEpVGoKK0VUCitCVAorL0YzIDIgVGYKKzE4IDAgMCAxOCA1MCA2MCBUbQorKEEpVGoKK0VUCitCVAorL0Y0IDIgVGYKKzE4IDAgMCAxOCAxMjAgNjAgVG0KKyhBKVRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDZfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzg0Nl9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZmMzk0NAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDZfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDZfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDZfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDA1ZGNlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzg0Nl9leHBlY3RlZF9tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDZfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODQ2X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3ZmE5ZmYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfODQ2X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDZfZXhwZWN0ZWRfc2tpYV9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzg0Nl9leHBlY3RlZF9za2lhX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYzNTUyNwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDZfZXhwZWN0ZWRfc2tpYV9tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDZfZXhwZWN0ZWRfc2tpYV93aW4ucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzg0Nl9leHBlY3RlZF9za2lhX3dpbi5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYzNTUyNwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z184NDZfZXhwZWN0ZWRfc2tpYV93aW4ucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185MDk3NjJfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzkwOTc2Ml9leHBlY3RlZC5wZGYuMC5wbmcKaW5kZXggMjE5YzE2My4uZDAxYTdmYyAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzkwOTc2Ml9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzkwOTc2Ml9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzkwOTc2Ml9leHBlY3RlZF93aW4ucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzkwOTc2Ml9leHBlY3RlZF93aW4ucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNmQyNzI3Li4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185MDk3NjJfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185MjU3MzZfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTI1NzM2X2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NjM0NTEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTI1NzM2X2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185MjU3MzZfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185MjU3MzZfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjcxZWZkZS4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTI1NzM2X2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTY2MjYzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzk2NjI2My5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGRmMzI4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzk2NjI2My5pbgpAQCAtMCwwICsxLDEzMiBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAxIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgMjAwIDQwMF0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Qcm9jU2V0IFsvUERGIC9UZXh0XQorICAgIC9Gb250IDw8CisgICAgICAvRjEgNSAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorQlQKKy9GMSAxIFRmCisxIDAgMCAxIDIwIDU1IFRtCisoQUJDRClUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTMKKyAgL0ZvbnRCQm94IFswIDAgNjAwIDYwMF0KKyAgL0ZvbnRNYXRyaXggWzEgMCAwIC0xMDAgMCAwXQorICAvQ2hhclByb2NzIDw8CisgICAgL0NBIDYgMCBSCisgICAgL0NCIDcgMCBSCisgICAgL0NDIDggMCBSCisgICAgL0NEIDkgMCBSCisgID4+CisgIC9FbmNvZGluZyA8PAorICAgIC9UeXBlIC9FbmNvZGluZworICAgIC9EaWZmZXJlbmNlcyBbNjUgL0NBIDY2IC9DQiA2NyAvQ0MgNjggL0NEXQorICA+PgorICAvRmlyc3RDaGFyIDY1CisgIC9MYXN0Q2hhciA2OAorICAvV2lkdGhzIFsxOCAxMDAwIDE4IDE4XQorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQl0KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKK2QwIDAgMAorMSAwIDAgMSA2IDAgY20KK0JJCisvVyAxCisvSCAxCisvQlBDIDEKKy9JTSB0cnVlCitJRAoreAorRUkKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCis2IDAgMCA0OCA2IDAgY20KK0JJCisvVyA2CisvSCA0OAorL0JQQyAxCisvSU0gdHJ1ZQorSUQKK3h4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eAorRUkKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCis2IDAgMCAxIDIxNDc0ODM1NzAgMCBjbQorQkkKKy9XIDYKKy9IIDEKKy9CUEMgMQorL0lNIHRydWUKK0lECit4CitFSQorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDkgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzEgMCAwIDYgMCAyMTQ3NDgzNCBjbQorQkkKKy9XIDEKKy9IIDEKKy9CUEMgMQorL0lNIHRydWUKK0lECit4CitFSQorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185NjYyNjNfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzk2NjI2M19leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ2NTBiNgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185NjYyNjNfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185NzI5OTkuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTcyOTk5LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlOTI4ZGEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTcyOTk5LmluCkBAIC0wLDAgKzEsNjAzIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSA1IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQorICAvQkJveCBbMCAwIDIwMCAzMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL1gxIDYgMCBSCisgICAgPj4KKyAgPj4KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorL1gxIERvCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSA3IDAgUgorICAgID4+CisgID4+CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKy9YMSBEbworZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9Gb3JtVHlwZSAxCisgIC9CQm94IFswIDAgMjAwIDMwMF0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvWDEgOCAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQorICAvQkJveCBbMCAwIDIwMCAzMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL1gxIDkgMCBSCisgICAgPj4KKyAgPj4KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorL1gxIERvCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAxMCAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAxMSAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxMSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAxMiAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxMiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAxMyAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxMyAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAxNCAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxNCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAxNSAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAxNiAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxNiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAxNyAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxNyAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAxOCAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxOCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAxOSAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxOSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAyMCAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAyMCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAyMSAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAyMSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAyMiAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAyMiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAyMyAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAyMyAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAyNCAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAyNCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAyNSAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAyNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAyNiAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAyNiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAyNyAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAyNyAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAyOCAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAyOCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAyOSAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAyOSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAzMCAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAzMCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAzMSAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAzMSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAzMiAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAzMiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAzMyAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAzMyAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAzNCAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAzNCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAzNSAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAzNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAzNiAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAzNiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAzNyAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAzNyAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAzOCAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAzOCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9YMSAzOSAwIFIKKyAgICA+PgorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisvWDEgRG8KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAzOSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMDAgMzAwXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCiswIDAgMCByZworMCAyOTAgMTAgMTAgcmUgQioKKzEwIDE1MCA1MCAzMCByZSBCKgorMCAwIDEgcmcKKzE5MCAyOTAgMTAgMTAgcmUgQioKKzcwIDIzMiA1MCAzMCByZSBCKgorMCAxIDAgcmcKKzE5MCAwIDEwIDEwIHJlIEIqCisxMzAgMTUwIDUwIDMwIHJlIEIqCisxIDAgMCByZworMCAwIDEwIDEwIHJlIEIqCis3MCA2NyA1MCAzMCByZSBCKgorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185NzI5OTlfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzk3Mjk5OV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU2NTJmYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185NzI5OTlfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185NzI5OTlfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTcyOTk5X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhNmI4ZWQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTcyOTk5X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185ODMyODkuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTgzMjg5LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzOGFmNWQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTgzMjg5LmluCkBAIC0wLDAgKzEsMzUgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0NvbnRlbnRzIDQgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCisyIDAgMCAyIDAgMCBjbQorLTEwOTI2IC0yMjM5NiBtCisxMTI3MiAyMzA5NyBsCitTCitRCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzk4MzI4OV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTgzMjg5X2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzA0OWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzk4MzI4OV9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzk4NDgxMV9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185ODQ4MTFfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEyMTdmYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185ODQ4MTFfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzk4NDgxMV9leHBlY3RlZF9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvYnVnXzk4NDgxMV9leHBlY3RlZF9tYWMucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMWFlOWYyLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185ODQ4MTFfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185ODYxMDguaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTg2MTA4LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhZjY1ZjQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTg2MTA4LmluCkBAIC0wLDAgKzEsMTIyIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9Db250ZW50cyA0IDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL1RleHRdCisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0dTMCA1IDAgUgorICAgID4+CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9GbTAgNiAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorL0dTMCBncworL0ZtMCBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9FeHRHU3RhdGUKKyAgL09QIGZhbHNlCisgIC9vcCBmYWxzZQorICAvQUlTIGZhbHNlCisgIC9CTSAvTm9ybWFsCisgIC9PUE0gMAorICAvQ0EgMS4wCisgIC9TQSB0cnVlCisgIC9jYSAxLjAKKyAgL1NNYXNrIDcgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvU3VidHlwZSAvRm9ybQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCiswIDAgNTAgNjAgcmUgZgorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9NYXNrCisgIC9CQyBbMC4wXQorICAvUyAvTHVtaW5vc2l0eQorICAvRyA4IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0JCb3ggWzAgNDExIDYyMSAtMTBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL0ZtMCA5IDAgUgorICAgID4+CisgID4+Cit7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCiswIDQxMCA1MDAgLTQ0MCByZSBmCisvRm0wIERvCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9TaGFkaW5nIDw8CisgICAgICAvU2gwIDEwIDAgUgorICAgID4+CisgID4+CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKy9TaDAgc2gKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1NoYWRpbmdUeXBlIDIKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvQ29vcmRzIFswLjAgMC4wIDEuMCAwLjBdCisgIC9CQm94IFstMC4xIC0wLjkgMS4xIDAuODddCisgIC9FeHRlbmQgW3RydWUgdHJ1ZV0KKyAgL0Z1bmN0aW9uIDExIDAgUgorICAvRG9tYWluIFswLjAgMS4wXQorPj4KK2VuZG9iagore3tvYmplY3QgMTEgMH19IDw8CisgIC9GdW5jdGlvblR5cGUgMgorICAvRG9tYWluIFswLjAgMS4wXQorICAvQzAgWzAuOCAwLjEgMC4yXQorICAvQzEgWzAuMiAwLjAyNSAwLjA1XQorICAvTiAxCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTg2MTA4X2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2J1Z185ODYxMDhfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5N2UzNDAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9idWdfOTg2MTA4X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jaGVja2JveF9yYWRpb2J1dHRvbi5ldnQgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jaGVja2JveF9yYWRpb2J1dHRvbi5ldnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzUxOWRjYgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uLmV2dApAQCAtMCwwICsxLDExIEBACisjIENoZWNrIHRoZSBjaGVja2JveAorbW91c2Vtb3ZlLDE0NSwyMjAKK21vdXNlZG93bixsZWZ0LDE0NSwyMjAKK21vdXNldXAsbGVmdCwxNDUsMjIwCisKKyMgVGFiIHRvIHJhZGlvIGJ1dHRvbiBmcm9tIGNoZWNrYm94CitrZXljb2RlLDkKK2tleWNvZGUsOQorCisjIFByZXNzIEVudGVyIHRvIHNlbGVjdCByYWRpbyBidXR0b24KK2NoYXJjb2RlLDEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvY2hlY2tib3hfcmFkaW9idXR0b24uZnJhZ21lbnQgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jaGVja2JveF9yYWRpb2J1dHRvbi5mcmFnbWVudApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTM5OTJlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvY2hlY2tib3hfcmFkaW9idXR0b24uZnJhZ21lbnQKQEAgLTAsMCArMSwxODcgQEAKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDMwMCAzMDBdCisgIC9Db250ZW50cyA0IDAgUgorICAvQW5ub3RzIFs1IDAgUiA2IDAgUiA4IDAgUiAxMCAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCitxCisxIHcKKzEgMCAxIFJHCisxIC43NTI5NDEgLjc5NjA3OCByZworbiAxMzUuNSAyNTAuNSAxOSAxOSByZSBCKgorUQorcQorMiB3CisuMSAuMSAuMSBSRworLjggLjg0MyAxIHJnCituIDEzNiAyMTEgMTggMTggcmUgQioKK1EKK3EKKzIgdworMCAuNTAxOTYxIDAgUkcKKzAgMCAxIHJnCituCisxMDQgMTEwIG0KKzEwNCAxMTQuOTcwNiA5OS45NzA1NiAxMTkgOTUgMTE5IGMKKzkwLjAyOTQ0IDExOSA4NiAxMTQuOTcwNiA4NiAxMTAgYworODYgMTA1LjAyOTQgOTAuMDI5NDQgMTAxIDk1IDEwMSBjCis5OS45NzA1NiAxMDEgMTA0IDEwNS4wMjk0IDEwNCAxMTAgYworQioKK1EKK3EKKzIgdworMCAuNTAxOTYxIDAgUkcKKzAgMCAxIHJnCituCisxMDQgNjAgbQorMTA0IDY0Ljk3MDU2IDk5Ljk3MDU2IDY5IDk1IDY5IGMKKzkwLjAyOTQ0IDY5IDg2IDY0Ljk3MDU2IDg2IDYwIGMKKzg2IDU1LjAyOTQ0IDkwLjAyOTQ0IDUxIDk1IDUxIGMKKzk5Ljk3MDU2IDUxIDEwNCA1NS4wMjk0NCAxMDQgNjAgYworQioKK1EKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL0J0bgorICAvRmYgMQorICAvUmVjdCBbMTM1IDI1MCAxNTUgMjcwXQorICAvVCAocmVhZE9ubHlDaGVja2JveCkKKyAgL0FQIDw8CisgICAgL04gPDwKKyAgICAgIC9ZZXMgMTEgMCBSCisgICAgPj4KKyAgPj4KKyAgL0FTIC9PZmYKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvQnRuCisgIC9GZiAyCisgIC9SZWN0IFsxMzUgMjEwIDE1NSAyMzBdCisgIC9UIChjaGVja2JveCkKKyAgL0FQIDw8CisgICAgL04gPDwKKyAgICAgIC9ZZXMgMTEgMCBSCisgICAgPj4KKyAgPj4KKyAgL0FTIC9PZmYKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9GVCAvQnRuCisgIC9GZiA0OTE1MworICAvVCAocmVhZE9ubHlSYWRpb0J1dHRvbikKKyAgL0tpZHMgWzggMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL1QgKFdpZGdldDgpCisgIC9GVCAvQnRuCisgIC9QYXJlbnQgNyAwIFIKKyAgL1JlY3QgWzg1IDEwMCAxMDUgMTIwXQorICAvQVAgPDwKKyAgICAvTiA8PAorICAgICAgL3ZhbHVlMSAxMiAwIFIKKyAgICA+PgorICA+PgorICAvQVMgL09mZgorPj4KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL0ZUIC9CdG4KKyAgL0ZmIDQ5MTU0CisgIC9UIChyYWRpb0J1dHRvbikKKyAgL0tpZHMgWzEwIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEwIDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL0J0bgorICAvUGFyZW50IDkgMCBSCisgIC9SZWN0IFs4NSA1MCAxMDUgNzBdCisgIC9BUCA8PAorICAgIC9OIDw8CisgICAgICAvdmFsdWUxIDEyIDAgUgorICAgID4+CisgID4+CisgIC9BUyAvT2ZmCis+PgorZW5kb2JqCit7e29iamVjdCAxMSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDEKKyAgL0JCb3ggWzAgMCAyMCAyMF0KKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorLjEgLjEgLjEgcmcgLjEgLjEgLjEgUkcKKzE3LjIgMTUuOTUxNDUgbQorMTEuMjA2OTQgMTAgbAorMTcuMiA0LjAyNzc0NiBsCisxNS45NzIyNSAyLjggbAorMTAgOC43OTMwNjQgbAorNC4wMjc3NDYgMi44IGwKKzIuOCA0LjAyNzc0NiBsCis4LjgxMzg3MyAxMCBsCisyLjggMTUuOTcyMjUgbAorNC4wMjc3NDYgMTcuMiBsCisxMCAxMS4yMDY5NCBsCisxNS45NzIyNSAxNy4yIGwKKzE3LjIgMTUuOTUxNDUgbAoraAorZgorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDEyIDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQorICAvQkJveCBbMCAwIDIwIDIwXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCisxIC43NTI5NDEgLjc5NjA3OCByZyAxIC43NTI5NDEgLjc5NjA3OCBSRworMTcuMiAxNS45NTE0NSBtCisxMS4yMDY5NCAxMCBsCisxNy4yIDQuMDI3NzQ2IGwKKzE1Ljk3MjI1IDIuOCBsCisxMCA4Ljc5MzA2NCBsCis0LjAyNzc0NiAyLjggbAorMi44IDQuMDI3NzQ2IGwKKzguODEzODczIDEwIGwKKzIuOCAxNS45NzIyNSBsCis0LjAyNzc0NiAxNy4yIGwKKzEwIDExLjIwNjk0IGwKKzE1Ljk3MjI1IDE3LjIgbAorMTcuMiAxNS45NTE0NSBsCitoCitmCitRCitlbmRzdHJlYW0KK2VuZG9iagpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvY2hlY2tib3hfcmFkaW9idXR0b24uaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jaGVja2JveF9yYWRpb2J1dHRvbi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTZjNjM4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvY2hlY2tib3hfcmFkaW9idXR0b24uaW4KQEAgLTAsMCArMSwxNCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzUgMCBSIDYgMCBSIDcgMCBSIDkgMCBSXQorICA+PgorPj4KK2VuZG9iagore3tpbmNsdWRlIGNoZWNrYm94X3JhZGlvYnV0dG9uLmZyYWdtZW50fX0KK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmFhYmI3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvY2hlY2tib3hfcmFkaW9idXR0b25fZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvY2hlY2tib3hfcmFkaW9idXR0b25fZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU3MTNhNgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uX2hpZGUuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jaGVja2JveF9yYWRpb2J1dHRvbl9oaWRlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0MGI2ZDUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jaGVja2JveF9yYWRpb2J1dHRvbl9oaWRlLmluCkBAIC0wLDAgKzEsMjMgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvQWNyb0Zvcm0gPDwKKyAgICAvRmllbGRzIFs1IDAgUiA2IDAgUiA3IDAgUiA5IDAgUl0KKyAgPj4KKyAgL09wZW5BY3Rpb24gMTMgMCBSCis+PgorZW5kb2JqCit7e2luY2x1ZGUgY2hlY2tib3hfcmFkaW9idXR0b24uZnJhZ21lbnR9fQorJSBNYWtlIHNvbWUgYnV0dG9ucyBiZSBoaWRkZW4uIE5vdGUgdGhhdCAvVCBhcyBhbiBhcnJheSBvZiBkaWN0IHJlZmVyZW5jZXMKKyUgZG9lcyBub3Qgc2VlbSB0byB3b3JrIGFzIGV4cGVjdGVkLgore3tvYmplY3QgMTMgMH19IDw8CisgIC9UeXBlIC9BY3Rpb24KKyAgL1MgL0hpZGUKKyAgL1QgWyhyZWFkT25seVJhZGlvQnV0dG9uLldpZGdldDgpIChyZWFkT25seUNoZWNrYm94KV0KKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uX2hpZGVfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvY2hlY2tib3hfcmFkaW9idXR0b25faGlkZV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzYxYzA1ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uX2hpZGVfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uX2hpZGVfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jaGVja2JveF9yYWRpb2J1dHRvbl9oaWRlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkYjJkNmUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jaGVja2JveF9yYWRpb2J1dHRvbl9oaWRlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uX3Jlc2V0LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvY2hlY2tib3hfcmFkaW9idXR0b25fcmVzZXQuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY5MTA3YQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uX3Jlc2V0LmluCkBAIC0wLDAgKzEsMjUgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvQWNyb0Zvcm0gPDwKKyAgICAvRmllbGRzIFs1IDAgUiA2IDAgUiA3IDAgUiA5IDAgUl0KKyAgPj4KKyAgL09wZW5BY3Rpb24gMTMgMCBSCis+PgorZW5kb2JqCit7e2luY2x1ZGUgY2hlY2tib3hfcmFkaW9idXR0b24uZnJhZ21lbnR9fQorJSBNYWtlIHNvbWUgYnV0dG9ucyBiZSByZXNldC4gTm90ZSB0aGF0IC9UIGFzIGFuIGFycmF5IG9mIGRpY3QgcmVmZXJlbmNlcworJSBkb2VzIG5vdCBzZWVtIHRvIHdvcmsgYXMgZXhwZWN0ZWQuIC9GbGFncyAxIG1lYW5zIGFsbCBmaWVsZHMgKmV4Y2VwdCoKKyUgdGhvc2UgbGlzdGVkLgore3tvYmplY3QgMTMgMH19IDw8CisgIC9UeXBlIC9BY3Rpb24KKyAgL1MgL1Jlc2V0Rm9ybQorICAvRmllbGRzIFsocmVhZE9ubHlSYWRpb0J1dHRvbi5XaWRnZXQ4KSAocmVhZE9ubHlDaGVja2JveCldCisgIC9GbGFncyAxCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jaGVja2JveF9yYWRpb2J1dHRvbl9yZXNldF9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jaGVja2JveF9yYWRpb2J1dHRvbl9yZXNldF9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQ5NDE4OAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uX3Jlc2V0X2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jaGVja2JveF9yYWRpb2J1dHRvbl9yZXNldF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NoZWNrYm94X3JhZGlvYnV0dG9uX3Jlc2V0X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1N2VjZGEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jaGVja2JveF9yYWRpb2J1dHRvbl9yZXNldF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jb21ib2JveF9mb3JtLmV2dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NvbWJvYm94X2Zvcm0uZXZ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyMTE5MzcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jb21ib2JveF9mb3JtLmV2dApAQCAtMCwwICsxLDEwIEBACisjIENoZWNrIHRoZSBjb21ib2JveCBjb250cm9sCittb3VzZW1vdmUsMTAyLDQxMAorbW91c2Vkb3duLGxlZnQsMTAyLDQxMAorbW91c2V1cCxsZWZ0LDEwMiw0MTAKKworIyBQcmVzcyBFbnRlciB0byBvcGVuIHRoZSBwb3AtdXAgbWVudQorY2hhcmNvZGUsMTMKKworIyBQcmVzcyBTcGFjZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcG9wLXVwIGlzIG5vdCBkaXNtaXNzZWQKK2NoYXJjb2RlLDMyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvY29tYm9ib3hfZm9ybS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NvbWJvYm94X2Zvcm0uaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTZhZGVhNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NvbWJvYm94X2Zvcm0uaW4KQEAgLTAsMCArMSwzNSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzQgMCBSXQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0Fubm90cyBbNCAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL0NoCisgIC9GZiAxMzEwNzIKKyAgL1QgKENvbWJvKQorICAvUmVjdCBbMTAwIDQwMCAyMDAgNDMwXQorICAvT3B0IFsoKSAoKSAoKV0KKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NvbWJvYm94X2Zvcm1fZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvY29tYm9ib3hfZm9ybV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VjZDc1ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NvbWJvYm94X2Zvcm1fZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2NvbWJvYm94X2Zvcm1fZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jb21ib2JveF9mb3JtX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2ODZlOTYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9jb21ib2JveF9mb3JtX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2ZvbnRfc2l6ZV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9mb250X3NpemVfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IGI0NTA2ZTAuLjkxODI4YjkgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2ZvbnRfc2l6ZV9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvZm9udF9zaXplX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9mb250X3NpemVfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9mb250X3NpemVfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDJlOTFkNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2ZvbnRfc2l6ZV9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9mb250X3NpemVfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2ZvbnRfc2l6ZV9leHBlY3RlZF9tYWMucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZmQwNjkwLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2ZvbnRfc2l6ZV9leHBlY3RlZF9tYWMucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvZm9udF9zaXplX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9mb250X3NpemVfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTBkNTZhYS4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9mb250X3NpemVfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2dlbmVyYXRpb25fbnVtYmVyczFfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvZ2VuZXJhdGlvbl9udW1iZXJzMV9leHBlY3RlZC5wZGYuMC5wbmcKaW5kZXggZjJkM2JhOS4uNTIyYTczOCAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvZ2VuZXJhdGlvbl9udW1iZXJzMV9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvZ2VuZXJhdGlvbl9udW1iZXJzMV9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvZ2VuZXJhdGlvbl9udW1iZXJzMV9leHBlY3RlZF9hZ2dfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2dlbmVyYXRpb25fbnVtYmVyczFfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk0NmFhNwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2dlbmVyYXRpb25fbnVtYmVyczFfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvZ2VuZXJhdGlvbl9udW1iZXJzMV9leHBlY3RlZF9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvZ2VuZXJhdGlvbl9udW1iZXJzMV9leHBlY3RlZF9tYWMucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZDk3M2FjLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2dlbmVyYXRpb25fbnVtYmVyczFfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2dlbmVyYXRpb25fbnVtYmVyczFfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2dlbmVyYXRpb25fbnVtYmVyczFfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2YxMDQ3Yy4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9nZW5lcmF0aW9uX251bWJlcnMxX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9nZW5lcmF0aW9uX251bWJlcnMyX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2dlbmVyYXRpb25fbnVtYmVyczJfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IGYyZDNiYTkuLjUyMmE3MzggMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2dlbmVyYXRpb25fbnVtYmVyczJfZXhwZWN0ZWQucGRmLjAucG5nCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2dlbmVyYXRpb25fbnVtYmVyczJfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2dlbmVyYXRpb25fbnVtYmVyczJfZXhwZWN0ZWRfYWdnX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9nZW5lcmF0aW9uX251bWJlcnMyX2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5NDZhYTcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9nZW5lcmF0aW9uX251bWJlcnMyX2V4cGVjdGVkX2FnZ19tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2dlbmVyYXRpb25fbnVtYmVyczJfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2dlbmVyYXRpb25fbnVtYmVyczJfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQ5NzNhYy4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9nZW5lcmF0aW9uX251bWJlcnMyX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9nZW5lcmF0aW9uX251bWJlcnMyX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9nZW5lcmF0aW9uX251bWJlcnMyX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmMTA0N2MuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvZ2VuZXJhdGlvbl9udW1iZXJzMl9leHBlY3RlZF93aW4ucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvaW1hZ2VfdHJhbnNmb3JtZXJfb3RoZXIuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9pbWFnZV90cmFuc2Zvcm1lcl9vdGhlci5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDFmNTgwCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvaW1hZ2VfdHJhbnNmb3JtZXJfb3RoZXIuaW4KQEAgLTAsMCArMSwxMjggQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvQ29sb3JTcGFjZSA8PAorICAgICAgL0NTMCA1IDAgUgorICAgID4+CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9JbU1vbm9QYWxldHRlIDYgMCBSCisgICAgICAvSW1Nb25vIDcgMCBSCisgICAgICAvSW1Db2xvciA4IDAgUgorICAgICAgL0ltQ29sb3JXaXRoTWFzayA5IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCistMTYgNjQgNjQgMCAyMCAyMCBjbQorL0ltTW9ub1BhbGV0dGUgRG8KK1EKK3EKKzE2IDY0IDY0IDAgMTIwIDIwIGNtCisvSW1Nb25vIERvCitRCitxCisxNiA2NCA2NCAxNiAyMCAxMjAgY20KKy9JbUNvbG9yIERvCitRCitxCisxNiA2NCAtNjQgMTYgMTIwIDEyMCBjbQorL0ltQ29sb3JXaXRoTWFzayBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IFsKKyAgL0luZGV4ZWQKKyAgL0RldmljZUdyYXkKKyAgMAorICA8Y2M+CitdCitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCAxCisgIC9Db2xvclNwYWNlIDUgMCBSCisgIC9IZWlnaHQgNAorICAvV2lkdGggNAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCiswMDAwCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9XaWR0aCA0CisgIC9IZWlnaHQgNAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VHcmF5CisgIC9GaWx0ZXIgL0FTQ0lJSGV4RGVjb2RlCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzAwMDAwMDAwCiszMzMzMzMzMworOTk5OTk5OTkKK2NjY2NjY2NjCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIC9BU0NJSUhleERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorZmYwMDAwZmYwMDAwZmYwMDAwZmYwMDAwCitmZjAwMDBmZjAwMDBmZjAwMDBmZjAwMDAKKzAwZmYwMDAwZmYwMDAwZmYwMDAwZmYwMAorMDBmZjAwMDBmZjAwMDBmZjAwMDBmZjAwCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIC9BU0NJSUhleERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1dpZHRoIDQKKyAgL01hc2sgWzAgMjU1IDAgMCAwIDBdCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK2ZmMDAwMGZmMDAwMGZmMDAwMGZmMDAwMAorZmYwMDAwZmYwMDAwZmYwMDAwZmYwMDAwCiswMGZmMDAwMGZmMDAwMGZmMDAwMGZmMDAKKzAwZmYwMDAwZmYwMDAwZmYwMDAwZmYwMAorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2ltYWdlX3RyYW5zZm9ybWVyX290aGVyX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2ltYWdlX3RyYW5zZm9ybWVyX290aGVyX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWFhYjk1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvaW1hZ2VfdHJhbnNmb3JtZXJfb3RoZXJfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2ltYWdlX3RyYW5zZm9ybWVyX290aGVyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvaW1hZ2VfdHJhbnNmb3JtZXJfb3RoZXJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY1ZjkxOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2ltYWdlX3RyYW5zZm9ybWVyX290aGVyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2pweGRlY29kZS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2pweGRlY29kZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjliMDU4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvanB4ZGVjb2RlLmluCkBAIC0wLDAgKzEsMTc3IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCA4OCAxMjhdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL0ltR3JheSA1IDAgUgorICAgICAgL0ltR3JheUFscGhhIDYgMCBSCisgICAgICAvSW1SR0IgNyAwIFIKKyAgICAgIC9JbVJHQkFscGhhIDggMCBSCisgICAgICAvSW1DTVlLIDkgMCBSCisgICAgICAvSW1DTVlLQWxwaGEgMTAgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKworJSA1MCUgZ3JheSBiYWNrZ3JvdW5kIHJlY3RhbmdsZQorcQorICAwLjUgMC41IDAuNSByZworICAwIDAgODggMTI4IHJlCisgIGYKK1EKKworJSBncmF5c2NhbGUsIGdyYXlzY2FsZSB3aXRoIGFscGhhCitxCisgIDMyIDAgMCAzMiA4IDg4IGNtCisgIC9JbUdyYXkgRG8KK1EKK3EKKyAgMzIgMCAwIDMyIDQ4IDg4IGNtCisgIC9JbUdyYXlBbHBoYSBEbworUQorCislIFJHQiwgUkdCIHdpdGggYWxwaGEKK3EKKyAgMzIgMCAwIDMyIDggNDggY20KKyAgL0ltUkdCIERvCitRCitxCisgIDMyIDAgMCAzMiA0OCA0OCBjbQorICAvSW1SR0JBbHBoYSBEbworUQorCislIENNWUssIENNWUsgd2l0aCBhbHBoYQorcQorICAzMiAwIDAgMzIgOCA4IGNtCisgIC9JbUNNWUsgRG8KK1EKK3EKKyAgMzIgMCAwIDMyIDQ4IDggY20KKyAgL0ltQ01ZS0FscGhhIERvCitRCisKK2VuZHN0cmVhbQorZW5kb2JqCisKKyUgZ3JheXNjYWxlCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlR3JheQorICAvRmlsdGVyIC9KUFhEZWNvZGUKKyAgL0hlaWdodCA0CisgIC9XaWR0aCA0CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3t7aW5jbHVkZSAuLi9ncmF5LmpwMn19CitlbmRzdHJlYW0KK2VuZG9iagorCislIGdyYXlzY2FsZSB3aXRoIG9wYWNpdHkKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VHcmF5CisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1NNYXNrSW5EYXRhIDEKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQore3tpbmNsdWRlIC4uL2dyYXktYWxwaGEuanAyfX0KK2VuZHN0cmVhbQorZW5kb2JqCisKKyUgUkdCCit7e29iamVjdCA3IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQore3tpbmNsdWRlIC4uL1JHQi5qcDJ9fQorZW5kc3RyZWFtCitlbmRvYmoKKworJSBSR0Igd2l0aCBvcGFjaXR5Cit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1NNYXNrSW5EYXRhIDEKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQore3tpbmNsdWRlIC4uL1JHQi1hbHBoYS5qcDJ9fQorZW5kc3RyZWFtCitlbmRvYmoKKworJSBDTVlLCit7e29iamVjdCA5IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlQ01ZSworICAvRmlsdGVyIC9KUFhEZWNvZGUKKyAgL0hlaWdodCA0CisgIC9XaWR0aCA0CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3t7aW5jbHVkZSAuLi9DTVlLLmpwZn19CitlbmRzdHJlYW0KK2VuZG9iagorCislIENNWUsgd2l0aCBvcGFjaXR5Lgore3tvYmplY3QgMTAgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VDTVlLCisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1NNYXNrSW5EYXRhIDEKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQore3tpbmNsdWRlIC4uL0NNWUstYWxwaGEuanBmfX0KK2VuZHN0cmVhbQorZW5kb2JqCisKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2pweGRlY29kZV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9qcHhkZWNvZGVfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwNTFjYjAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9qcHhkZWNvZGVfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2pweGRlY29kZV93aXRoX21pc21hdGNoX2NvbG9yc3BhY2UuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9qcHhkZWNvZGVfd2l0aF9taXNtYXRjaF9jb2xvcnNwYWNlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkZjMwNjgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9qcHhkZWNvZGVfd2l0aF9taXNtYXRjaF9jb2xvcnNwYWNlLmluCkBAIC0wLDAgKzEsMTgwIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCA4OCAxMjhdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvWE9iamVjdCA8PAorICAgICAgL0ltR3JheUNzUkdCIDUgMCBSCisgICAgICAvSW1HcmF5Q3NDTVlLIDYgMCBSCisgICAgICAvSW1SR0JDc0dyYXkgNyAwIFIKKyAgICAgIC9JbVJHQkNzQ01ZSyA4IDAgUgorICAgICAgL0ltQ01ZS0NzR3JheSA5IDAgUgorICAgICAgL0ltQ01ZS0NzUkdCIDEwIDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisKKyUgNTAlIGdyYXkgYmFja2dyb3VuZCByZWN0YW5nbGUKK3EKKyAgMC41IDAuNSAwLjUgcmcKKyAgMCAwIDg4IDEyOCByZQorICBmCitRCisKKyUgZ3JheXNjYWxlIGltYWdlIHdpdGggUkdCIC9Db2xvclNwYWNlIGVudHJ5CitxCisgIDMyIDAgMCAzMiA4IDg4IGNtCisgIC9JbUdyYXlDc1JHQiBEbworUQorCislIGdyYXlzY2FsZSBpbWFnZSB3aXRoIENNWUsgL0NvbG9yU3BhY2UgZW50cnkKK3EKKyAgMzIgMCAwIDMyIDQ4IDg4IGNtCisgIC9JbUdyYXlDc0NNWUsgRG8KK1EKKworJSBSR0IgaW1hZ2Ugd2l0aCBncmF5c2NhbGUgL0NvbG9yU3BhY2UgZW50cnkKK3EKKyAgMzIgMCAwIDMyIDggNDggY20KKyAgL0ltUkdCQ3NHcmF5IERvCitRCisKKyUgUkdCIGltYWdlIHdpdGggQ01ZSyAvQ29sb3JTcGFjZSBlbnRyeQorcQorICAzMiAwIDAgMzIgNDggNDggY20KKyAgL0ltUkdCQ3NDTVlLIERvCitRCisKKyUgQ01ZSyBpbWFnZSB3aXRoIGdyYXlzY2FsZSAvQ29sb3JTcGFjZSBlbnRyeQorcQorICAzMiAwIDAgMzIgOCA4IGNtCisgIC9JbUNNWUtDc0dyYXkgRG8KK1EKKworJSBDTVlLIGltYWdlIHdpdGggUkdCIC9Db2xvclNwYWNlIGVudHJ5CitxCisgIDMyIDAgMCAzMiA0OCA4IGNtCisgIC9JbUNNWUtDc1JHQiBEbworUQorCitlbmRzdHJlYW0KK2VuZG9iagorCislIGdyYXlzY2FsZSBpbWFnZSB3aXRoIFJHQiAvQ29sb3JTcGFjZQore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIC9KUFhEZWNvZGUKKyAgL0hlaWdodCA0CisgIC9XaWR0aCA0CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3t7aW5jbHVkZSAuLi9ncmF5LmpwMn19CitlbmRzdHJlYW0KK2VuZG9iagorCislIGdyYXlzY2FsZSBpbWFnZSB3aXRoIENNWUsgL0NvbG9yU3BhY2UKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VDTVlLCisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQore3tpbmNsdWRlIC4uL2dyYXkuanAyfX0KK2VuZHN0cmVhbQorZW5kb2JqCisKKyUgUkdCIGltYWdlIHdpdGggZ3JheXNjYWxlIC9Db2xvclNwYWNlCit7e29iamVjdCA3IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlR3JheQorICAvRmlsdGVyIC9KUFhEZWNvZGUKKyAgL0hlaWdodCA0CisgIC9XaWR0aCA0CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3t7aW5jbHVkZSAuLi9SR0IuanAyfX0KK2VuZHN0cmVhbQorZW5kb2JqCisKKyUgUkdCIGltYWdlIHdpdGggQ01ZSyAvQ29sb3JTcGFjZQore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZUNNWUsKKyAgL0ZpbHRlciAvSlBYRGVjb2RlCisgIC9IZWlnaHQgNAorICAvV2lkdGggNAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit7e2luY2x1ZGUgLi4vUkdCLmpwMn19CitlbmRzdHJlYW0KK2VuZG9iagorCislIENNWUsgaW1hZ2Ugd2l0aCBncmF5c2NhbGUgL0NvbG9yU3BhY2UKK3t7b2JqZWN0IDkgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VHcmF5CisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQore3tpbmNsdWRlIC4uL0NNWUsuanBmfX0KK2VuZHN0cmVhbQorZW5kb2JqCisKKyUgQ01ZSyBpbWFnZSB3aXRoIFJHQiAvQ29sb3JTcGFjZQore3tvYmplY3QgMTAgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0ZpbHRlciAvSlBYRGVjb2RlCisgIC9IZWlnaHQgNAorICAvV2lkdGggNAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit7e2luY2x1ZGUgLi4vQ01ZSy5qcGZ9fQorZW5kc3RyZWFtCitlbmRvYmoKKwore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvanB4ZGVjb2RlX3dpdGhfbWlzbWF0Y2hfY29sb3JzcGFjZV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9qcHhkZWNvZGVfd2l0aF9taXNtYXRjaF9jb2xvcnNwYWNlX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTc0M2UwCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvanB4ZGVjb2RlX3dpdGhfbWlzbWF0Y2hfY29sb3JzcGFjZV9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvanB4ZGVjb2RlX3dpdGhvdXRfYml0c3BlcmNvbXBvbmVudC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2pweGRlY29kZV93aXRob3V0X2JpdHNwZXJjb21wb25lbnQuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTliNTE2ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2pweGRlY29kZV93aXRob3V0X2JpdHNwZXJjb21wb25lbnQuaW4KQEAgLTAsMCArMSwxNzEgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDg4IDEyOF0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvSW1HcmF5IDUgMCBSCisgICAgICAvSW1HcmF5QWxwaGEgNiAwIFIKKyAgICAgIC9JbVJHQiA3IDAgUgorICAgICAgL0ltUkdCQWxwaGEgOCAwIFIKKyAgICAgIC9JbUNNWUsgOSAwIFIKKyAgICAgIC9JbUNNWUtBbHBoYSAxMCAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorCislIDUwJSBncmF5IGJhY2tncm91bmQgcmVjdGFuZ2xlCitxCisgIDAuNSAwLjUgMC41IHJnCisgIDAgMCA4OCAxMjggcmUKKyAgZgorUQorCislIGdyYXlzY2FsZSwgZ3JheXNjYWxlIHdpdGggYWxwaGEKK3EKKyAgMzIgMCAwIDMyIDggODggY20KKyAgL0ltR3JheSBEbworUQorcQorICAzMiAwIDAgMzIgNDggODggY20KKyAgL0ltR3JheUFscGhhIERvCitRCisKKyUgUkdCLCBSR0Igd2l0aCBhbHBoYQorcQorICAzMiAwIDAgMzIgOCA0OCBjbQorICAvSW1SR0IgRG8KK1EKK3EKKyAgMzIgMCAwIDMyIDQ4IDQ4IGNtCisgIC9JbVJHQkFscGhhIERvCitRCisKKyUgQ01ZSywgQ01ZSyB3aXRoIGFscGhhCitxCisgIDMyIDAgMCAzMiA4IDggY20KKyAgL0ltQ01ZSyBEbworUQorcQorICAzMiAwIDAgMzIgNDggOCBjbQorICAvSW1DTVlLQWxwaGEgRG8KK1EKKworZW5kc3RyZWFtCitlbmRvYmoKKworJSBncmF5c2NhbGUKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQ29sb3JTcGFjZSAvRGV2aWNlR3JheQorICAvRmlsdGVyIC9KUFhEZWNvZGUKKyAgL0hlaWdodCA0CisgIC9XaWR0aCA0CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3t7aW5jbHVkZSAuLi9ncmF5LmpwMn19CitlbmRzdHJlYW0KK2VuZG9iagorCislIGdyYXlzY2FsZSB3aXRoIG9wYWNpdHkKK3t7b2JqZWN0IDYgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQ29sb3JTcGFjZSAvRGV2aWNlR3JheQorICAvRmlsdGVyIC9KUFhEZWNvZGUKKyAgL0hlaWdodCA0CisgIC9TTWFza0luRGF0YSAxCisgIC9XaWR0aCA0CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3t7aW5jbHVkZSAuLi9ncmF5LWFscGhhLmpwMn19CitlbmRzdHJlYW0KK2VuZG9iagorCislIFJHQgore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0ZpbHRlciAvSlBYRGVjb2RlCisgIC9IZWlnaHQgNAorICAvV2lkdGggNAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit7e2luY2x1ZGUgLi4vUkdCLmpwMn19CitlbmRzdHJlYW0KK2VuZG9iagorCislIFJHQiB3aXRoIG9wYWNpdHkKK3t7b2JqZWN0IDggMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1NNYXNrSW5EYXRhIDEKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQore3tpbmNsdWRlIC4uL1JHQi1hbHBoYS5qcDJ9fQorZW5kc3RyZWFtCitlbmRvYmoKKworJSBDTVlLCit7e29iamVjdCA5IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0NvbG9yU3BhY2UgL0RldmljZUNNWUsKKyAgL0ZpbHRlciAvSlBYRGVjb2RlCisgIC9IZWlnaHQgNAorICAvV2lkdGggNAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit7e2luY2x1ZGUgLi4vQ01ZSy5qcGZ9fQorZW5kc3RyZWFtCitlbmRvYmoKKworJSBDTVlLIHdpdGggb3BhY2l0eS4KK3t7b2JqZWN0IDEwIDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0NvbG9yU3BhY2UgL0RldmljZUNNWUsKKyAgL0ZpbHRlciAvSlBYRGVjb2RlCisgIC9IZWlnaHQgNAorICAvU01hc2tJbkRhdGEgMQorICAvV2lkdGggNAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit7e2luY2x1ZGUgLi4vQ01ZSy1hbHBoYS5qcGZ9fQorZW5kc3RyZWFtCitlbmRvYmoKKwore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvanB4ZGVjb2RlX3dpdGhvdXRfYml0c3BlcmNvbXBvbmVudF9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9qcHhkZWNvZGVfd2l0aG91dF9iaXRzcGVyY29tcG9uZW50X2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDUxY2IwCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvanB4ZGVjb2RlX3dpdGhvdXRfYml0c3BlcmNvbXBvbmVudF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvanB4ZGVjb2RlX3dpdGhvdXRfY29sb3JzcGFjZS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2pweGRlY29kZV93aXRob3V0X2NvbG9yc3BhY2UuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZmYjY0ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2pweGRlY29kZV93aXRob3V0X2NvbG9yc3BhY2UuaW4KQEAgLTAsMCArMSwxNzEgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDg4IDEyOF0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvSW1HcmF5IDUgMCBSCisgICAgICAvSW1HcmF5QWxwaGEgNiAwIFIKKyAgICAgIC9JbVJHQiA3IDAgUgorICAgICAgL0ltUkdCQWxwaGEgOCAwIFIKKyAgICAgIC9JbUNNWUsgOSAwIFIKKyAgICAgIC9JbUNNWUtBbHBoYSAxMCAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorCislIDUwJSBncmF5IGJhY2tncm91bmQgcmVjdGFuZ2xlCitxCisgIDAuNSAwLjUgMC41IHJnCisgIDAgMCA4OCAxMjggcmUKKyAgZgorUQorCislIGdyYXlzY2FsZSwgZ3JheXNjYWxlIHdpdGggYWxwaGEKK3EKKyAgMzIgMCAwIDMyIDggODggY20KKyAgL0ltR3JheSBEbworUQorcQorICAzMiAwIDAgMzIgNDggODggY20KKyAgL0ltR3JheUFscGhhIERvCitRCisKKyUgUkdCLCBSR0Igd2l0aCBhbHBoYQorcQorICAzMiAwIDAgMzIgOCA0OCBjbQorICAvSW1SR0IgRG8KK1EKK3EKKyAgMzIgMCAwIDMyIDQ4IDQ4IGNtCisgIC9JbVJHQkFscGhhIERvCitRCisKKyUgQ01ZSywgQ01ZSyB3aXRoIGFscGhhCitxCisgIDMyIDAgMCAzMiA4IDggY20KKyAgL0ltQ01ZSyBEbworUQorcQorICAzMiAwIDAgMzIgNDggOCBjbQorICAvSW1DTVlLQWxwaGEgRG8KK1EKKworZW5kc3RyZWFtCitlbmRvYmoKKworJSBncmF5c2NhbGUKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQore3tpbmNsdWRlIC4uL2dyYXkuanAyfX0KK2VuZHN0cmVhbQorZW5kb2JqCisKKyUgZ3JheXNjYWxlIHdpdGggb3BhY2l0eQore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0ZpbHRlciAvSlBYRGVjb2RlCisgIC9IZWlnaHQgNAorICAvU01hc2tJbkRhdGEgMQorICAvV2lkdGggNAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit7e2luY2x1ZGUgLi4vZ3JheS1hbHBoYS5qcDJ9fQorZW5kc3RyZWFtCitlbmRvYmoKKworJSBSR0IKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQore3tpbmNsdWRlIC4uL1JHQi5qcDJ9fQorZW5kc3RyZWFtCitlbmRvYmoKKworJSBSR0Igd2l0aCBvcGFjaXR5Cit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvRmlsdGVyIC9KUFhEZWNvZGUKKyAgL0hlaWdodCA0CisgIC9TTWFza0luRGF0YSAxCisgIC9XaWR0aCA0CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3t7aW5jbHVkZSAuLi9SR0ItYWxwaGEuanAyfX0KK2VuZHN0cmVhbQorZW5kb2JqCisKKyUgQ01ZSwore3tvYmplY3QgOSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0ZpbHRlciAvSlBYRGVjb2RlCisgIC9IZWlnaHQgNAorICAvV2lkdGggNAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit7e2luY2x1ZGUgLi4vQ01ZSy5qcGZ9fQorZW5kc3RyZWFtCitlbmRvYmoKKworJSBDTVlLIHdpdGggb3BhY2l0eS4KK3t7b2JqZWN0IDEwIDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvRmlsdGVyIC9KUFhEZWNvZGUKKyAgL0hlaWdodCA0CisgIC9TTWFza0luRGF0YSAxCisgIC9XaWR0aCA0CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3t7aW5jbHVkZSAuLi9DTVlLLWFscGhhLmpwZn19CitlbmRzdHJlYW0KK2VuZG9iagorCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9qcHhkZWNvZGVfd2l0aG91dF9jb2xvcnNwYWNlX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2pweGRlY29kZV93aXRob3V0X2NvbG9yc3BhY2VfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwNTFjYjAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9qcHhkZWNvZGVfd2l0aG91dF9jb2xvcnNwYWNlX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9qcHhkZWNvZGVfd2l0aG91dF9zbWFza2luZGF0YS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2pweGRlY29kZV93aXRob3V0X3NtYXNraW5kYXRhLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiMjlhNjAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9qcHhkZWNvZGVfd2l0aG91dF9zbWFza2luZGF0YS5pbgpAQCAtMCwwICsxLDExMSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgNDggMTI4XQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9JbUdyYXlBbHBoYSA1IDAgUgorICAgICAgL0ltUkdCQWxwaGEgNiAwIFIKKyAgICAgIC9JbUNNWUtBbHBoYSA3IDAgUgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCisKKyUgNTAlIGdyYXkgYmFja2dyb3VuZCByZWN0YW5nbGUKK3EKKyAgMC41IDAuNSAwLjUgcmcKKyAgMCAwIDQ4IDEyOCByZQorICBmCitRCisKKyUgZ3JheXNjYWxlIHdpdGggaWdub3JlZCBhbHBoYQorcQorICAzMiAwIDAgMzIgOCA4OCBjbQorICAvSW1HcmF5QWxwaGEgRG8KK1EKKworJSBSR0Igd2l0aCBpZ25vcmVkIGFscGhhCitxCisgIDMyIDAgMCAzMiA4IDQ4IGNtCisgIC9JbVJHQkFscGhhIERvCitRCisKKyUgQ01ZSyB3aXRoIGlnbm9yZWQgYWxwaGEKK3EKKyAgMzIgMCAwIDMyIDggOCBjbQorICAvSW1DTVlLQWxwaGEgRG8KK1EKKworZW5kc3RyZWFtCitlbmRvYmoKKworJSBncmF5c2NhbGUgd2l0aCBvcGFjaXR5LCBidXQgdGhlIHNvZnQtbWFzayBpbmZvcm1hdGlvbiBpcyBub3QgdXNlZC4KK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VHcmF5CisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQore3tpbmNsdWRlIC4uL2dyYXktYWxwaGEuanAyfX0KK2VuZHN0cmVhbQorZW5kb2JqCisKKyUgUkdCIHdpdGggb3BhY2l0eSwgYnV0IHRoZSBzb2Z0LW1hc2sgaW5mb3JtYXRpb24gaXMgbm90IHVzZWQuCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgL0pQWERlY29kZQorICAvSGVpZ2h0IDQKKyAgL1dpZHRoIDQKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQore3tpbmNsdWRlIC4uL1JHQi1hbHBoYS5qcDJ9fQorZW5kc3RyZWFtCitlbmRvYmoKKworJSBDTVlLIHdpdGggb3BhY2l0eSwgYnV0IHRoZSBzb2Z0LW1hc2sgaW5mb3JtYXRpb24gaXMgbm90IHVzZWQuCit7e29iamVjdCA3IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlQ01ZSworICAvRmlsdGVyIC9KUFhEZWNvZGUKKyAgL0hlaWdodCA0CisgIC9XaWR0aCA0CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3t7aW5jbHVkZSAuLi9DTVlLLWFscGhhLmpwZn19CitlbmRzdHJlYW0KK2VuZG9iagorCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9qcHhkZWNvZGVfd2l0aG91dF9zbWFza2luZGF0YV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9qcHhkZWNvZGVfd2l0aG91dF9zbWFza2luZGF0YV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQwNWQxZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2pweGRlY29kZV93aXRob3V0X3NtYXNraW5kYXRhX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9sb25nX2Rhc2hlZF9saW5lLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvbG9uZ19kYXNoZWRfbGluZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjNhZGZhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvbG9uZ19kYXNoZWRfbGluZS5pbgpAQCAtMCwwICsxLDMzIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvTWVkaWFCb3ggWzAgMCA4MDAgODAwXQorICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorWzIgMl0gMCBkCisxMDAgMTAwIG0KKzEwMCAtNzU2OTcwMDggbAorUworZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2xvbmdfZGFzaGVkX2xpbmVfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvbG9uZ19kYXNoZWRfbGluZV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFiM2VmYgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2xvbmdfZGFzaGVkX2xpbmVfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL2xvbmdfZGFzaGVkX2xpbmVfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9sb25nX2Rhc2hlZF9saW5lX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmZmMyZDYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9sb25nX2Rhc2hlZF9saW5lX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL21hdHRlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvbWF0dGVfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRhYjQwNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL21hdHRlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Bhc3N3b3JkLmV2dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Bhc3N3b3JkLmV2dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDUxMDE1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcGFzc3dvcmQuZXZ0CkBAIC0wLDAgKzEsMjYgQEAKK21vdXNlbW92ZSwxMDIsMTAyCittb3VzZWRvd24sbGVmdCwxMDIsMTAyCittb3VzZXVwLGxlZnQsMTAyLDEwMgorY2hhcmNvZGUsMTE2CitjaGFyY29kZSwxMDUKK2NoYXJjb2RlLDEwMworY2hhcmNvZGUsMTAxCitjaGFyY29kZSwxMTQKK2NoYXJjb2RlLDExNQorY2hhcmNvZGUsMTE1CitjaGFyY29kZSwxMTUKK2NoYXJjb2RlLDExNQorCittb3VzZW1vdmUsMTAyLDE2MgorbW91c2Vkb3duLGxlZnQsMTAyLDE2MgorbW91c2V1cCxsZWZ0LDEwMiwxNjIKK2NoYXJjb2RlLDExNgorY2hhcmNvZGUsMTA1CitjaGFyY29kZSwxMDMKK2NoYXJjb2RlLDEwMQorY2hhcmNvZGUsMTE0CitjaGFyY29kZSwxMTUKK2NoYXJjb2RlLDExNQorY2hhcmNvZGUsMTE1CitjaGFyY29kZSwxMTUKKwpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcGFzc3dvcmQuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9wYXNzd29yZC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTBmMGFmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcGFzc3dvcmQuaW4KQEAgLTAsMCArMSw1NCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWworICAgICAgNCAwIFIKKyAgICAgIDUgMCBSCisgICAgXQorICAgIC9OZWVkQXBwZWFyYW5jZXMgdHJ1ZQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFsgMyAwIFIgXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWyAwIDAgMzAwIDIwMCBdCisgIC9Bbm5vdHMgWworICAgIDQgMCBSCisgICAgNSAwIFIKKyAgXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9UeAorICAvVCAoVGV4dCBCb3gpCisgIC9SZWN0IFsgMTAwIDEwMCAyMDAgMTMwIF0KKyAgL01heExlbiA1CisgIC9RIDEKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvVHgKKyAgL0ZmIDgxOTIKKyAgL1QgKFBhc3N3b3JkIEJveCkKKyAgL1JlY3QgWyAxMDAgMTYwIDIwMCAxOTAgXQorICAvTWF4TGVuIDUKKyAgL1EgMgorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcGFzc3dvcmRfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcGFzc3dvcmRfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwNDBlZjYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9wYXNzd29yZF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcGFzc3dvcmRfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Bhc3N3b3JkX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY0MjM5ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Bhc3N3b3JkX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcGFzc3dvcmRfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9wYXNzd29yZF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWI0YjY4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcGFzc3dvcmRfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcmFkaWFsX3NoYWRpbmdfcG9pbnRfYXRfYm9yZGVyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcmFkaWFsX3NoYWRpbmdfcG9pbnRfYXRfYm9yZGVyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyZjIzNDkKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9yYWRpYWxfc2hhZGluZ19wb2ludF9hdF9ib3JkZXJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcmFkaWFsX3NoYWRpbmdfcG9pbnRfYXRfYm9yZGVyX25vX2V4dGVuZF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3JhZGlhbF9zaGFkaW5nX3BvaW50X2F0X2JvcmRlcl9ub19leHRlbmRfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQ2YTllYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3JhZGlhbF9zaGFkaW5nX3BvaW50X2F0X2JvcmRlcl9ub19leHRlbmRfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcmFkaWFsX3NoYWRpbmdfcG9pbnRfYXRfY2VudGVyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcmFkaWFsX3NoYWRpbmdfcG9pbnRfYXRfY2VudGVyX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NmRkYjgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9yYWRpYWxfc2hhZGluZ19wb2ludF9hdF9jZW50ZXJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcmVzZXRfYnV0dG9uLmV2dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Jlc2V0X2J1dHRvbi5ldnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYwNjkyNgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Jlc2V0X2J1dHRvbi5ldnQKQEAgLTAsMCArMSwxMCBAQAorIyBDaGVjayB0aGUgY2hlY2tib3gKK21vdXNlbW92ZSwxNDUsMjIwCittb3VzZWRvd24sbGVmdCwxNDUsMjIwCittb3VzZXVwLGxlZnQsMTQ1LDIyMAorCisjIFRhYiB0byByZXNldCBidXR0b24gZnJvbSBjaGVja2JveAora2V5Y29kZSw5CisKKyMgUHJlc3MgRW50ZXIgdG8gcmVzZXQgdGhlIGZvcm0KK2NoYXJjb2RlLDEzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcmVzZXRfYnV0dG9uLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcmVzZXRfYnV0dG9uLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmOTM1NzAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9yZXNldF9idXR0b24uaW4KQEAgLTAsMCArMSw5NyBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzUgMCBSIDYgMCBSXQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL01lZGlhQm94IFswIDAgMzAwIDMwMF0KKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9Bbm5vdHMgWzUgMCBSIDYgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorMiB3CisuMSAuMSAuMSBSRworLjggLjg0MyAxIHJnCituIDEzNiAyMTEgMTggMTggcmUgQioKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL0J0bgorICAvRiA0CisgIC9GZiAyCisgIC9QIDMgMCBSCisgIC9SZWN0IFsxMzUgMjEwIDE1NSAyMzBdCisgIC9UIChjaGVja2JveCkKKyAgL0FQIDw8CisgICAgL04gPDwKKyAgICAgIC9ZZXMgNyAwIFIKKyAgICA+PgorICA+PgorICAvQVMgL09mZgorICAvViAvT2ZmCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL0J0bgorICAvRiA0CisgIC9QIDMgMCBSCisgIC9SZWN0IFsxMzUgMTEwIDE4NSAxNTBdCisgIC9UIChSZXNldCBidXR0b24pCisgIC9GZiA2NTUzNgorICAvQSA8PAorICAgL1MgL1Jlc2V0Rm9ybQorICAgL0ZpZWxkcyBbNSAwIFJdCisgICAvRmxhZ3MgMQorICA+PgorICAvTUsgPDwKKyAgICAvQkMgWzAuMCAwLjAgMC40XQorICAgIC9CRyBbMC45IDAuOSAwLjldCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQorICAvQkJveCBbMCAwIDIwIDIwXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitxCisxNy4yIDE1Ljk1MTQ1IG0KKzE3LjIgNC4wMjc3NDYgbAorMTUuOTcyMjUgMi44IGwKKzQuMDI3NzQ2IDIuOCBsCis0LjAyNzc0NiAxNy4yIGwKKzE1Ljk3MjI1IDE3LjIgbAoraAorZgorUQorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9yZXNldF9idXR0b25fZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcmVzZXRfYnV0dG9uX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzZjMzBkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvcmVzZXRfYnV0dG9uX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9zY3JvbGxhYmxlX3dpZGdldHMxLmV2dCBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Njcm9sbGFibGVfd2lkZ2V0czEuZXZ0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1OTVjZDcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9zY3JvbGxhYmxlX3dpZGdldHMxLmV2dApAQCAtMCwwICsxLDI5IEBACisjIE11c3QgbW92ZSB0aGUgbW91c2UgYW5kIGNsaWNrIHRvIGdpdmUgd2lkZ2V0IGZvY3VzLgorbW91c2Vtb3ZlLDE1MCw0MTUKK21vdXNlZG93bixsZWZ0LDE1MCw0MTUKKyMgU2Nyb2xsIGFsbCB0aGUgd2F5IGRvd24uCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvc2Nyb2xsYWJsZV93aWRnZXRzMS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Njcm9sbGFibGVfd2lkZ2V0czEuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ1M2I3YwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Njcm9sbGFibGVfd2lkZ2V0czEuaW4KQEAgLTAsMCArMSw1MiBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzUgMCBSXQorICAgIC9EUiA8PAorICAgICAgL0ZvbnQgPDwKKyAgICAgICAgL0YxIDQgMCBSCisgICAgICA+PgorICAgID4+CisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCAzMDAgNjAwXQorICAvQW5ub3RzIFs1IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9DaAorICAvRmYgMjA5NzE1MgorICAvVCAoTGlzdGJveF9NdWx0aVNlbGVjdCkKKyAgL0RBICgwIDAgMCByZyAvRjEgMTIgVGYpCisgIC9SZWN0IFsxMDAgNDAwIDIwMCA0MzBdCisgIC9PcHQgWyhBcHBsZSkgKEJhbmFuYSkgKENoZXJyeSkgKERhdGUpIChFbGRlcmJlcnJ5KSAoRmlnKSAoR3VhdmEpIChIb25leWRldykKKyAgICAgICAgKEluZGlhbiBGaWcpIChKYWNrZnJ1aXQpIChLaXdpKSAoTGVtb24pIChNYW5nbykgKE5lY3RhcmluZSkgKE9yYW5nZSkKKyAgICAgICAgKFBlcnNpbW1vbikgKFF1aW5jZSkgKFJhc3BiZXJyeSkgKFN0cmF3YmVycnkpIChUYW1hcmluZCkgKFVnbGkgRnJ1aXQpCisgICAgICAgIChWb2F2YW5nYSkgKFdvbGZiZXJyeSkgKFhpZ3VhKSAoWWFuZ21laSkgKFp1Y2NoaW5pKV0KKyAgL1YgKEJhbmFuYSkKKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Njcm9sbGFibGVfd2lkZ2V0czFfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvc2Nyb2xsYWJsZV93aWRnZXRzMV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzc2MGFmNwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Njcm9sbGFibGVfd2lkZ2V0czFfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Njcm9sbGFibGVfd2lkZ2V0czFfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Njcm9sbGFibGVfd2lkZ2V0czFfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGJkYzVhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvc2Nyb2xsYWJsZV93aWRnZXRzMV9leHBlY3RlZF9tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Njcm9sbGFibGVfd2lkZ2V0czFfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9zY3JvbGxhYmxlX3dpZGdldHMxX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0YzFmOWQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9zY3JvbGxhYmxlX3dpZGdldHMxX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Njcm9sbGFibGVfd2lkZ2V0czIuZXZ0IGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvc2Nyb2xsYWJsZV93aWRnZXRzMi5ldnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTliOGE0YgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Njcm9sbGFibGVfd2lkZ2V0czIuZXZ0CkBAIC0wLDAgKzEsMzQgQEAKKyMgTXVzdCBtb3ZlIHRoZSBtb3VzZSBhbmQgY2xpY2sgdG8gZ2l2ZSB3aWRnZXQgZm9jdXMuCittb3VzZW1vdmUsMTUwLDQxNQorbW91c2Vkb3duLGxlZnQsMTUwLDQxNQorIyBTY3JvbGwgYWxsIHRoZSB3YXkgZG93biBhbmQgdGhlbiBzY3JvbGwgYmFjayB1cCBhIGJpdC4KK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwtMQorbW91c2V3aGVlbCwxNTAsNDE1LDAsLTEKK21vdXNld2hlZWwsMTUwLDQxNSwwLC0xCittb3VzZXdoZWVsLDE1MCw0MTUsMCwxCittb3VzZXdoZWVsLDE1MCw0MTUsMCwxCittb3VzZXdoZWVsLDE1MCw0MTUsMCwxCittb3VzZXdoZWVsLDE1MCw0MTUsMCwxCittb3VzZXdoZWVsLDE1MCw0MTUsMCwxCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9zY3JvbGxhYmxlX3dpZGdldHMyLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvc2Nyb2xsYWJsZV93aWRnZXRzMi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDUzYjdjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvc2Nyb2xsYWJsZV93aWRnZXRzMi5pbgpAQCAtMCwwICsxLDUyIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDw8CisgICAgL0ZpZWxkcyBbNSAwIFJdCisgICAgL0RSIDw8CisgICAgICAvRm9udCA8PAorICAgICAgICAvRjEgNCAwIFIKKyAgICAgID4+CisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9NZWRpYUJveCBbMCAwIDMwMCA2MDBdCisgIC9Bbm5vdHMgWzUgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvSGVsdmV0aWNhCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL0NoCisgIC9GZiAyMDk3MTUyCisgIC9UIChMaXN0Ym94X011bHRpU2VsZWN0KQorICAvREEgKDAgMCAwIHJnIC9GMSAxMiBUZikKKyAgL1JlY3QgWzEwMCA0MDAgMjAwIDQzMF0KKyAgL09wdCBbKEFwcGxlKSAoQmFuYW5hKSAoQ2hlcnJ5KSAoRGF0ZSkgKEVsZGVyYmVycnkpIChGaWcpIChHdWF2YSkgKEhvbmV5ZGV3KQorICAgICAgICAoSW5kaWFuIEZpZykgKEphY2tmcnVpdCkgKEtpd2kpIChMZW1vbikgKE1hbmdvKSAoTmVjdGFyaW5lKSAoT3JhbmdlKQorICAgICAgICAoUGVyc2ltbW9uKSAoUXVpbmNlKSAoUmFzcGJlcnJ5KSAoU3RyYXdiZXJyeSkgKFRhbWFyaW5kKSAoVWdsaSBGcnVpdCkKKyAgICAgICAgKFZvYXZhbmdhKSAoV29sZmJlcnJ5KSAoWGlndWEpIChZYW5nbWVpKSAoWnVjY2hpbmkpXQorICAvViAoQmFuYW5hKQorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvc2Nyb2xsYWJsZV93aWRnZXRzMl9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9zY3JvbGxhYmxlX3dpZGdldHMyX2V4cGVjdGVkLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmUwNmVjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvc2Nyb2xsYWJsZV93aWRnZXRzMl9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvc2Nyb2xsYWJsZV93aWRnZXRzMl9leHBlY3RlZF9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvc2Nyb2xsYWJsZV93aWRnZXRzMl9leHBlY3RlZF9tYWMucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNDkxN2YKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC9zY3JvbGxhYmxlX3dpZGdldHMyX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvc2Nyb2xsYWJsZV93aWRnZXRzMl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Njcm9sbGFibGVfd2lkZ2V0czJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQ5ZjZhMQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3Njcm9sbGFibGVfd2lkZ2V0czJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvdGV4dF9mb3JtX2N1c3RvbV9mb250LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvdGV4dF9mb3JtX2N1c3RvbV9mb250LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNDA0ZTQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC90ZXh0X2Zvcm1fY3VzdG9tX2ZvbnQuaW4KQEAgLTAsMCArMSw4MSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9EUiA8PAorICAgICAgL0ZvbnQgPDwKKyAgICAgICAgL1RUMCA1IDAgUgorICAgICAgPj4KKyAgICA+PgorICAgIC9GaWVsZHMgWzQgMCBSXQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0Fubm90cyBbNCAwIFJdCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1dpZGdldAorICAvRlQgL1R4CisgIC9EQSAoMSAwIDAgcmcgL1RUMCAxNiBUZikKKyAgL1JlY3QgWzUwIDEwMCAxNTAgMTMwXQorICAvVCAoVGV4dCBCb3gpCisgIC9WICggICAgICApCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHJ1ZVR5cGUKKyAgL0ZpcnN0Q2hhciAzMgorICAvQmFzZUZvbnQgL0FBQUFBRCtUZXN0CisgIC9Gb250RGVzY3JpcHRvciA2IDAgUgorICAvVG9Vbmljb2RlIDcgMCBSCisgIC9MYXN0Q2hhciAzMgorICAvV2lkdGhzIFsxMDU1XQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCisgIC9EZXNjZW50IC02OAorICAvTWlzc2luZ1dpZHRoIDEwMDAKKyAgL0NhcEhlaWdodCAxMTQ5CisgIC9TdGVtViAwCisgIC9Gb250RmlsZTIgOCAwIFIKKyAgL0ZsYWdzIDQKKyAgL0ZvbnRCQm94IFswIC0yMTUgMTAwMCA5MzJdCisgIC9Gb250TmFtZSAvQUFBQUFEK1Rlc3QKKyAgL0l0YWxpY0FuZ2xlIDAKKyAgL0FzY2VudCA5MzMKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3t7aW5jbHVkZSAuLi9idWdfMTM4OF9jbWFwLmZyYWdtZW50fX0KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCit7e2luY2x1ZGUgLi4vYnVnXzEzODhfdHJ1ZXR5cGVfZm9udC5mcmFnbWVudH19CitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvdGV4dF9mb3JtX2N1c3RvbV9mb250X2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3RleHRfZm9ybV9jdXN0b21fZm9udF9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg5NGFkNQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3RleHRfZm9ybV9jdXN0b21fZm9udF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvdGV4dF9mb3JtX2N1c3RvbV9mb250X2V4cGVjdGVkX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC90ZXh0X2Zvcm1fY3VzdG9tX2ZvbnRfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWIzZGJmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvdGV4dF9mb3JtX2N1c3RvbV9mb250X2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvdGV4dF9mb3JtX2N1c3RvbV9mb250X2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvdGV4dF9mb3JtX2N1c3RvbV9mb250X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3NTgyYjYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC90ZXh0X2Zvcm1fY3VzdG9tX2ZvbnRfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvdHlwZTNfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvdHlwZTNfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IDY4MzdiYjguLjYzZDllNTcgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3R5cGUzX2V4cGVjdGVkLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC90eXBlM19leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvdXNlX3N5bWJvbG5ldS9idWdfMTQ0OS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3VzZV9zeW1ib2xuZXUvYnVnXzE0NDkuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjAzZWI1NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3VzZV9zeW1ib2xuZXUvYnVnXzE0NDkuaW4KQEAgLTAsMCArMSw0NyBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFsgMCAwIDEwMCAxMDAgXQorICAvQ291bnQgMQorICAvS2lkcyBbIDMgMCBSIF0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvRjAgNCAwIFIKKyAgICA+PgorICA+PgorICAvQ29udGVudHMgNSAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UcnVlVHlwZQorICAvQmFzZUZvbnQgL1N5bWJvbAorICAvRmlyc3RDaGFyIDMxCisgIC9MYXN0Q2hhciAyNTUKKyAgL05hbWUgL0YwCis+PgorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0JUCisyNSAyNSBUZCAvRjAgMTIgVGYKKy0wLjAzNiAgVGMgKFwyNjUpIFRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3VzZV9zeW1ib2xuZXUvYnVnXzE0NDlfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwvdXNlX3N5bWJvbG5ldS9idWdfMTQ0OV9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE5OTMyYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3VzZV9zeW1ib2xuZXUvYnVnXzE0NDlfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9iYXJjb2RlX3Rlc3RfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvYmFyY29kZV90ZXN0X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3MTZiOWMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvYmFyY29kZV90ZXN0X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9iYXJjb2RlX3Rlc3RfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9iYXJjb2RlX3Rlc3RfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjNiODBhNy4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvYmFyY29kZV90ZXN0X2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvYnVnXzEyODJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvYnVnXzEyODJfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTI5MjcyZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9idWdfMTI4Ml9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvYnVnXzEyODY5NzAuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvYnVnXzEyODY5NzAuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQ1NGRlNwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9idWdfMTI4Njk3MC5pbgpAQCAtMCwwICsxLDMxIEBACit7e2hlYWRlcn19Cit7e2luY2x1ZGUgLi4vLi4veGZhX2NhdGFsb2dfMV8wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfb2JqZWN0XzJfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3ByZWFtYmxlXzNfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX2NvbmZpZ180XzAuZnJhZ21lbnR9fQore3tvYmplY3QgNSAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorPHRlbXBsYXRlIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS10ZW1wbGF0ZS8zLjMvIj4KKyAgPHN1YmZvcm0gbGF5b3V0PSJybC10YiIgbmFtZT0ic3ViZm9ybTEiPgorICAgIDxwYWdlU2V0PgorICAgICAgPHBhZ2VBcmVhIG5hbWU9IlBhZ2UxIiBpZD0iUGFnZTEiPgorICAgICAgICA8Y29udGVudEFyZWEgeD0iMThwdCIgeT0iMThwdCIgdz0iNzJwdCIgaD0iNzJwdCIvPgorICAgICAgICA8bWVkaXVtIHN0b2NrPSJkZWZhdWx0IiBzaG9ydD0iNzJwdCIgbG9uZz0iNzJwdCIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPHN1YmZvcm1TZXQ+CisgICAgICA8c3ViZm9ybT48ZmllbGQgaD0iNzNwdCI+PC9maWVsZD48L3N1YmZvcm0+CisgICAgPC9zdWJmb3JtU2V0PgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7aW5jbHVkZSAuLi8uLi94ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wYWdlc184XzAuZnJhZ21lbnR9fQore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL2J1Z18xMjg2OTcwX2V4cGVjdGVkLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9idWdfMTI4Njk3MF9leHBlY3RlZC5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI0YzJkOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9idWdfMTI4Njk3MF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL2J1Z18xMzM3LmluIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL2J1Z18xMzM3LmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NGE0OTYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvYnVnXzEzMzcuaW4KQEAgLTAsMCArMSwzOCBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZSB4bWxucz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvMy4zLyI+CisgIDxzdWJmb3JtIG5hbWU9ImZvcm0xIiBsYXlvdXQ9InRiIiBsb2NhbGU9ImVuX1VTIiByZXN0b3JlU3RhdGU9ImF1dG8iPgorICAgIDxwYWdlU2V0PgorICAgICAgPHBhZ2VBcmVhIG5hbWU9IlBhZ2UxIiBpZD0iUGFnZTEiPgorICAgICAgICA8Y29udGVudEFyZWEgeD0iMThwdCIgeT0iMThwdCIgdz0iNjEycHQiIGg9Ijc5MnB0Ii8+CisgICAgICAgIDxtZWRpdW0gc3RvY2s9ImRlZmF1bHQiIHNob3J0PSI2MTJwdCIgbG9uZz0iNzkycHQiLz4KKyAgICAgIDwvcGFnZUFyZWE+CisgICAgPC9wYWdlU2V0PgorICAgIDxzdWJmb3JtIHc9IjU3NnB0IiBoPSI3NTZwdCIgbmFtZT0iUGFnZTEiPgorICAgICAgPGRyYXcgbmFtZT0iU3RhdGljSW1hZ2UxIiB3PSIyNTBwdCIgaD0iMjUwcHQiIHg9IjEwcHQiIHk9IjEwcHQiPgorICAgICAgICA8dmFsdWU+CisgICAgICAgICAgPGltYWdlIGNvbnRlbnRUeXBlPSJpbWFnZS9naWYiPlIwbEdPRGRoK2dENkFJQUJBUDhBQVAvLy95d0FBQUFBK2dENkFBQUMvb1NQcWN2dEQ2T2N0TnFMczk2OCt3K0c0a2lXNW9tbTZzcTI3Z3ZIOGt6WDlvM24rczczL2c4TUNvZkVvdkdJVENxWHpLYnpDWTFLcDlTcTlZck5hcmZjcnZjTERvdkg1TEw1akU2cjEreTIrdzJQeStmMHV2Mk96K3YzL0w3L0R4Z29PRWhZYUhpSW1LaTR5TmpvK0FnWktUbEpXV2w1aVptcHVjblo2ZmtKR2lvNlNscHFlb3FhcXJySzJ1cjZDaHNyTzB0YmEzdUxtNnU3eTl2cit3c2NMRHhNWEd4OGpKeXN2TXpjN1B3TUhTMDlUVjF0ZlkyZHJiM04zZTM5RFI0dVBrNWVibjZPbnE2K3p0N3UvZzRmTHo5UFgyOS9qNSt2djgvZjcvOFBNS0RBZ1FRTEdqeUlNS0hDaFF3Yk9ud0lNYUxFaVJRcldyeUlNYVBHVjQwY08zcjhDREtreUpFa1M1bzhpVEtseXBVc1c3cDhDVE9tekprMGE5cThpVE9uenAwOGUvcjhDVFNvMEtGRWl4bzlpalNwMHFWTW16cDlDaldxMUtsVXExcTlpaldyMXExY3UzcjlDamFzMkxGa3kxNG9BQUE3PC9pbWFnZT4KKyAgICAgICAgPC92YWx1ZT4KKyAgICAgICAgPHVpPgorICAgICAgICAgIDxpbWFnZUVkaXQvPgorICAgICAgICA8L3VpPgorICAgICAgPC9kcmF3PgorICAgIDwvc3ViZm9ybT4KKyAgPC9zdWJmb3JtPgorPC90ZW1wbGF0ZT4KK2VuZHN0cmVhbQorZW5kb2JqCit7e2luY2x1ZGUgLi4vLi4veGZhX2xvY2FsZV82XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uL3hmYV9wb3N0YW1ibGVfN18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi8uLi94ZmFfcGFnZXNfOF8wLmZyYWdtZW50fX0KK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9idWdfMTMzN19leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvYnVnXzEzMzdfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwZDgzODAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvYnVnXzEzMzdfZXhwZWN0ZWQucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9idWdfOTgzMTM3X2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL2J1Z185ODMxMzdfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MxOWI0NQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9idWdfOTgzMTM3X2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9keW5hbWljX2xpc3RfYm94X2FsbG93X211bHRpcGxlX3NlbGVjdGlvbl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9keW5hbWljX2xpc3RfYm94X2FsbG93X211bHRpcGxlX3NlbGVjdGlvbl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zY2NjMWEyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL2R5bmFtaWNfbGlzdF9ib3hfYWxsb3dfbXVsdGlwbGVfc2VsZWN0aW9uX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9keW5hbWljX2xpc3RfYm94X2FsbG93X211bHRpcGxlX3NlbGVjdGlvbl9leHBlY3RlZF9za2lhX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvZHluYW1pY19saXN0X2JveF9hbGxvd19tdWx0aXBsZV9zZWxlY3Rpb25fZXhwZWN0ZWRfc2tpYV9tYWMucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViMzAzYjIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvZHluYW1pY19saXN0X2JveF9hbGxvd19tdWx0aXBsZV9zZWxlY3Rpb25fZXhwZWN0ZWRfc2tpYV9tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9keW5hbWljX3Bhc3N3b3JkX2ZpZWxkX2JhY2tncm91bmRfZmlsbF9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvZHluYW1pY19wYXNzd29yZF9maWVsZF9iYWNrZ3JvdW5kX2ZpbGxfZXhwZWN0ZWQucGRmLjAucG5nCmluZGV4IGQyMGQ3ZWEuLmMxY2ViZWUgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9keW5hbWljX3Bhc3N3b3JkX2ZpZWxkX2JhY2tncm91bmRfZmlsbF9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL2R5bmFtaWNfcGFzc3dvcmRfZmllbGRfYmFja2dyb3VuZF9maWxsX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvZHluYW1pY19wYXNzd29yZF9maWVsZF9iYWNrZ3JvdW5kX2ZpbGxfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvZHluYW1pY19wYXNzd29yZF9maWVsZF9iYWNrZ3JvdW5kX2ZpbGxfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcyYTUzNwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9keW5hbWljX3Bhc3N3b3JkX2ZpZWxkX2JhY2tncm91bmRfZmlsbF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvZHluYW1pY19wYXNzd29yZF9maWVsZF9iYWNrZ3JvdW5kX2ZpbGxfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9keW5hbWljX3Bhc3N3b3JkX2ZpZWxkX2JhY2tncm91bmRfZmlsbF9leHBlY3RlZF93aW4ucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MzRiN2U0Li4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9keW5hbWljX3Bhc3N3b3JkX2ZpZWxkX2JhY2tncm91bmRfZmlsbF9leHBlY3RlZF93aW4ucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL2R5bmFtaWNfdGFibGVfY29sb3JfYW5kX3dpZHRoX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL2R5bmFtaWNfdGFibGVfY29sb3JfYW5kX3dpZHRoX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NDNhMzUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvZHluYW1pY190YWJsZV9jb2xvcl9hbmRfd2lkdGhfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL2R5bmFtaWNfdGFibGVfY29sb3JfYW5kX3dpZHRoX2V4cGVjdGVkX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvZHluYW1pY190YWJsZV9jb2xvcl9hbmRfd2lkdGhfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWFlMzgzYy4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvZHluYW1pY190YWJsZV9jb2xvcl9hbmRfd2lkdGhfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9yZXNvbHZlX25vZGVzXzBfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3Jlc29sdmVfbm9kZXNfMF9leHBlY3RlZC5wZGYuMC5wbmcKaW5kZXggYTNkOTgzMC4uYWRmYWJiYyAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3Jlc29sdmVfbm9kZXNfMF9leHBlY3RlZC5wZGYuMC5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3Jlc29sdmVfbm9kZXNfMF9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3Jlc29sdmVfbm9kZXNfMF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9yZXNvbHZlX25vZGVzXzBfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODg0YTIzZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9yZXNvbHZlX25vZGVzXzBfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3N0YW5kYXJkX3N5bWJvbHNfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3N0YW5kYXJkX3N5bWJvbHNfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZjMxNTYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhbmRhcmRfc3ltYm9sc19leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3N0YW5kYXJkX3N5bWJvbHNfZXhwZWN0ZWQucGRmLjEucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3N0YW5kYXJkX3N5bWJvbHNfZXhwZWN0ZWQucGRmLjEucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNjJlODMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhbmRhcmRfc3ltYm9sc19leHBlY3RlZC5wZGYuMS5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3N0YXRpY19saXN0X2JveF9jYXB0aW9uX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX2xpc3RfYm94X2NhcHRpb25fZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwppbmRleCA3Y2JhNmI5Li5iOTA2NmY0IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX2xpc3RfYm94X2NhcHRpb25fZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX2xpc3RfYm94X2NhcHRpb25fZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX2xpc3RfYm94X2NhcHRpb25fZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX2xpc3RfYm94X2NhcHRpb25fZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2JlZWZlMAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9zdGF0aWNfbGlzdF9ib3hfY2FwdGlvbl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX2xpc3RfYm94X2NhcHRpb25fZXhwZWN0ZWRfd2luLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9zdGF0aWNfbGlzdF9ib3hfY2FwdGlvbl9leHBlY3RlZF93aW4ucGRmLjAucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MWVkYWZkLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9zdGF0aWNfbGlzdF9ib3hfY2FwdGlvbl9leHBlY3RlZF93aW4ucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3N0YXRpY19wYXNzd29yZF9maWVsZF9yb3RhdGVfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9zdGF0aWNfcGFzc3dvcmRfZmllbGRfcm90YXRlX2V4cGVjdGVkX21hYy5wZGYuMC5wbmcKaW5kZXggNThhZWU5ZS4uYmM4NzcyNiAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3N0YXRpY19wYXNzd29yZF9maWVsZF9yb3RhdGVfZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZworKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX3Bhc3N3b3JkX2ZpZWxkX3JvdGF0ZV9leHBlY3RlZF9tYWMucGRmLjAucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9zdGF0aWNfcGFzc3dvcmRfZmllbGRfcm90YXRlX2V4cGVjdGVkX21hYy5wZGYuMS5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX3Bhc3N3b3JkX2ZpZWxkX3JvdGF0ZV9leHBlY3RlZF9tYWMucGRmLjEucG5nCmluZGV4IGFkMzZhYTkuLjRkYmQ4NWEgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9zdGF0aWNfcGFzc3dvcmRfZmllbGRfcm90YXRlX2V4cGVjdGVkX21hYy5wZGYuMS5wbmcKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3N0YXRpY19wYXNzd29yZF9maWVsZF9yb3RhdGVfZXhwZWN0ZWRfbWFjLnBkZi4xLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX3Bhc3N3b3JkX2ZpZWxkX3JvdGF0ZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9zdGF0aWNfcGFzc3dvcmRfZmllbGRfcm90YXRlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiMzUxNDAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX3Bhc3N3b3JkX2ZpZWxkX3JvdGF0ZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX3Bhc3N3b3JkX2ZpZWxkX3JvdGF0ZV9leHBlY3RlZF9za2lhLnBkZi4xLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9zdGF0aWNfcGFzc3dvcmRfZmllbGRfcm90YXRlX2V4cGVjdGVkX3NraWEucGRmLjEucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkODhkYjIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX3Bhc3N3b3JkX2ZpZWxkX3JvdGF0ZV9leHBlY3RlZF9za2lhLnBkZi4xLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX3Bhc3N3b3JkX2ZpZWxkX3JvdGF0ZV9leHBlY3RlZF93aW4ucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3N0YXRpY19wYXNzd29yZF9maWVsZF9yb3RhdGVfZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWE5MzlhYy4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvc3RhdGljX3Bhc3N3b3JkX2ZpZWxkX3JvdGF0ZV9leHBlY3RlZF93aW4ucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3N0YXRpY19wYXNzd29yZF9maWVsZF9yb3RhdGVfZXhwZWN0ZWRfd2luLnBkZi4xLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy9zdGF0aWNfcGFzc3dvcmRfZmllbGRfcm90YXRlX2V4cGVjdGVkX3dpbi5wZGYuMS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3M2YxYTkuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3N0YXRpY19wYXNzd29yZF9maWVsZF9yb3RhdGVfZXhwZWN0ZWRfd2luLnBkZi4xLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy91c2VfYWhlbS9SRUFETUUubWQgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvdXNlX2FoZW0vUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzMTI2ZTIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvdXNlX2FoZW0vUkVBRE1FLm1kCkBAIC0wLDAgKzEsMiBAQAorVGhlIGV4cGVjdGVkIHJlc3VsdHMgaW4gdGhpcyBkaXJlY3Rvcnkgc2hvdWxkIG1hdGNoIHRob3NlIGdlbmVyYXRlZCBieSBydW5uaW5nCitgcGRmaXVtX3Rlc3RgIHdpdGggdGhlIG9wdGlvbiBgLS1mb250LWRpcj0vcGF0aC90by9wZGZpdW0vdGVzdGluZy9yZXNvdXJjZXMvZm9udHNgLgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3VzZV9haGVtL2J1Z185OTc0MTIuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvdXNlX2FoZW0vYnVnXzk5NzQxMi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2RhNTYxCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3VzZV9haGVtL2J1Z185OTc0MTIuaW4KQEAgLTAsMCArMSwzNSBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uLy4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uLy4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uLy4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZSB4bWxucz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvMy4zLyI+CisgIDxzdWJmb3JtIGxheW91dD0icmwtdGIiIG5hbWU9InN1YmZvcm0xIj4KKyAgICA8cGFnZVNldD4KKyAgICAgIDxwYWdlQXJlYSBuYW1lPSJQYWdlMSIgaWQ9IlBhZ2UxIj4KKyAgICAgICAgPGNvbnRlbnRBcmVhIHg9IjE4cHQiIHk9IjE4cHQiIHc9IjYxMnB0IiBoPSI3OTJwdCIvPgorICAgICAgICA8bWVkaXVtIHN0b2NrPSJkZWZhdWx0IiBzaG9ydD0iNjEycHQiIGxvbmc9Ijc5MnB0Ii8+CisgICAgICA8L3BhZ2VBcmVhPgorICAgIDwvcGFnZVNldD4KKyAgICA8ZmllbGQgaD0iMzAwMHB0IiBuYW1lPSJGaWVsZDEiPgorICAgICAgPGZvbnQgdHlwZWZhY2U9IkFoZW0iIHNpemU9IjIwcHQiLz4KKyAgICAgIDx2YWx1ZT4KKyAgICAgICAgPHRleHQ+Zm9vCis8IS0tIEludGVudGlvbmFsbHkgZm9ybWF0dGVkIHRvIHRyaWdnZXIgYnVnIC8vLS0+PC90ZXh0PgorICAgICAgPC92YWx1ZT4KKyAgICA8L2ZpZWxkPgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKK3t7aW5jbHVkZSAuLi8uLi8uLi94ZmFfbG9jYWxlXzZfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4vLi4vLi4veGZhX3Bvc3RhbWJsZV83XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uLy4uLy4uL3hmYV9wYWdlc184XzAuZnJhZ21lbnR9fQore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3VzZV9haGVtL2J1Z185OTc0MTJfZXhwZWN0ZWQucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3VzZV9haGVtL2J1Z185OTc0MTJfZXhwZWN0ZWQucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4YzExYjAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvdXNlX2FoZW0vYnVnXzk5NzQxMl9leHBlY3RlZC5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3VzZV9haGVtL2J1Z185OTc0MTJfZXhwZWN0ZWQucGRmLjEucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3VzZV9haGVtL2J1Z185OTc0MTJfZXhwZWN0ZWQucGRmLjEucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3MzRmZjcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvdXNlX2FoZW0vYnVnXzk5NzQxMl9leHBlY3RlZC5wZGYuMS5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3VzZV9haGVtL2J1Z185OTc0MTJfZXhwZWN0ZWRfc2tpYS5wZGYuMS5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvdXNlX2FoZW0vYnVnXzk5NzQxMl9leHBlY3RlZF9za2lhLnBkZi4xLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGRhMjhjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3VzZV9haGVtL2J1Z185OTc0MTJfZXhwZWN0ZWRfc2tpYS5wZGYuMS5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3VzZV9haGVtL3hmYV9leGFtcGxlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3VzZV9haGVtL3hmYV9leGFtcGxlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhM2ViOWYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvdXNlX2FoZW0veGZhX2V4YW1wbGVfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3VzZV9haGVtL3hmYV90ZXh0ZmllbGRfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMvdXNlX2FoZW0veGZhX3RleHRmaWVsZF9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDE4ZDI2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3VzZV9haGVtL3hmYV90ZXh0ZmllbGRfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9ibXBfaW1hZ2UuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX2JtcF9pbWFnZS5pbgppbmRleCA5YjQ0NGYxLi5kZmQ5MDI2IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX2JtcF9pbWFnZS5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX2JtcF9pbWFnZS5pbgpAQCAtMTgsNyArMTgsNyBAQAogICAgIDxzdWJmb3JtIHc9IjU3NnB0IiBoPSI3NTZwdCIgbmFtZT0iUGFnZTEiPgogICAgICAgPGZpZWxkIG5hbWU9IkltYWdlRmllbGQxIiB3PSIyNTBwdCIgaD0iMjUwcHQiPgogICAgICAgICA8dmFsdWU+Ci0gICAgICAgICAgPGltYWdlIGNvbnRlbnRUeXBlPSJpbWFnZS9ibXAiPlFrMHFIZ0FBQUFBQUFIb0FBQUJzQUFBQU1nQUFBRElBQUFBQkFCZ0FBQUFBQUxBZEFBQVRDd0FBRXdzQUFBQUFBQUFBQUFBQVFrZFNjd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBQUFBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUFBQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBQUFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFBQUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQUFBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFBQUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQUFBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUFBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBQUFBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUFBQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBQUFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFBQUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQUFBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFBQUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQUFBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUFBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBQUFBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUFBQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBQUFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFBQUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQUFBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFBQUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQUFBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUFBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBQUFBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUFBQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBQUFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFBQUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQUFBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFBQUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQUFBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUFBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBQUFBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUFBQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBQUFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFBQUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQUFBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFBQUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQUFBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUFBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBQUFBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUFBQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBRC9BQUQvQUFEL0FBQUFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFQOEFBUDhBQVA4QUFBQUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQS93QUEvd0FBL3dBQTwvaW1hZ2U+CisgICAgICAgICAgPGltYWdlIGNvbnRlbnRUeXBlPSJpbWFnZS9ibXAiPlFrMW1DZ0FBQUFBQUFENEFBQUFvQUFBQU1nQUFBRElBQUFBQkFBZ0FBQUFBQUNnS0FBQVRDd0FBRXdzQUFBSUFBQUFDQUFBQUFBRC9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE9PTwvaW1hZ2U+CiAgICAgICAgIDwvdmFsdWU+CiAgICAgICAgIDxib3JkZXI+CiAgICAgICAgICAgPGVkZ2UgdGhpY2tuZXNzPSIwLjI1NG1tIi8+CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX2JtcF9pbWFnZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfYm1wX2ltYWdlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNzc2MjQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX2JtcF9pbWFnZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX2dpZl9pbWFnZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfZ2lmX2ltYWdlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNzc2MjQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX2dpZl9pbWFnZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX2pwZ19pbWFnZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfanBnX2ltYWdlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwZGNkOGUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX2pwZ19pbWFnZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZC5wZGYuMC5wbmcKaW5kZXggNjg1NTM2MS4uNGJmZTdjOCAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9ub2RlX2NhcHRpb25fZXhwZWN0ZWQucGRmLjAucG5nCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfbm9kZV9jYXB0aW9uX2V4cGVjdGVkLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZC5wZGYuMS5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZC5wZGYuMS5wbmcKaW5kZXggMWY1YzFiYi4uNDRhYTBiMSAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9ub2RlX2NhcHRpb25fZXhwZWN0ZWQucGRmLjEucG5nCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfbm9kZV9jYXB0aW9uX2V4cGVjdGVkLnBkZi4xLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9tYWMucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9ub2RlX2NhcHRpb25fZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTEyZGEwCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9ub2RlX2NhcHRpb25fZXhwZWN0ZWRfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9tYWMucGRmLjEucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9ub2RlX2NhcHRpb25fZXhwZWN0ZWRfbWFjLnBkZi4xLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjdiNWIzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9ub2RlX2NhcHRpb25fZXhwZWN0ZWRfbWFjLnBkZi4xLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfbm9kZV9jYXB0aW9uX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlNTA5YTgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9za2lhLnBkZi4xLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfbm9kZV9jYXB0aW9uX2V4cGVjdGVkX3NraWEucGRmLjEucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3MjBiOWIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9za2lhLnBkZi4xLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9za2lhX21hYy5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9za2lhX21hYy5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg0Mjk0YwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfbm9kZV9jYXB0aW9uX2V4cGVjdGVkX3NraWFfbWFjLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9za2lhX21hYy5wZGYuMS5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9za2lhX21hYy5wZGYuMS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM2NmJjMAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfbm9kZV9jYXB0aW9uX2V4cGVjdGVkX3NraWFfbWFjLnBkZi4xLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9za2lhX3dpbi5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9za2lhX3dpbi5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRmMDRkOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfbm9kZV9jYXB0aW9uX2V4cGVjdGVkX3NraWFfd2luLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9za2lhX3dpbi5wZGYuMS5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF9za2lhX3dpbi5wZGYuMS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzY5MWZiMQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfbm9kZV9jYXB0aW9uX2V4cGVjdGVkX3NraWFfd2luLnBkZi4xLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF93aW4ucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9ub2RlX2NhcHRpb25fZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmEzNmZlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9ub2RlX2NhcHRpb25fZXhwZWN0ZWRfd2luLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX25vZGVfY2FwdGlvbl9leHBlY3RlZF93aW4ucGRmLjEucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9ub2RlX2NhcHRpb25fZXhwZWN0ZWRfd2luLnBkZi4xLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDQ4MzIyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9ub2RlX2NhcHRpb25fZXhwZWN0ZWRfd2luLnBkZi4xLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX3BuZ19pbWFnZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfcG5nX2ltYWdlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNzc2MjQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX3BuZ19pbWFnZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX3JlY3RhbmdsZV9ub2RlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9yZWN0YW5nbGVfbm9kZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWNlZTUzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV9yZWN0YW5nbGVfbm9kZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX3RpZmZfZGVmbGF0ZV9pbWFnZS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfdGlmZl9kZWZsYXRlX2ltYWdlLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTdmODRjLi4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfdGlmZl9kZWZsYXRlX2ltYWdlLmluCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAote3toZWFkZXJ9fQote3tpbmNsdWRlIC4uLy4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Ci17e2luY2x1ZGUgLi4vLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQote3tpbmNsdWRlIC4uLy4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQote3tpbmNsdWRlIC4uLy4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KLXt7b2JqZWN0IDUgMH19IDw8Ci0gIHt7c3RyZWFtbGVufX0KLT4+Ci1zdHJlYW0KLTx0ZW1wbGF0ZSB4bWxucz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvMy4zLyI+Ci0gIDxzdWJmb3JtIG5hbWU9ImZvcm0xIiBsYXlvdXQ9InRiIiBsb2NhbGU9ImVuX1VTIiByZXN0b3JlU3RhdGU9ImF1dG8iPgotICAgIDxwYWdlU2V0PgotICAgICAgPHBhZ2VBcmVhIG5hbWU9IlBhZ2UxIiBpZD0iUGFnZTEiPgotICAgICAgICA8Y29udGVudEFyZWEgeD0iMThwdCIgeT0iMThwdCIgdz0iNjEycHQiIGg9Ijc5MnB0Ii8+Ci0gICAgICAgIDxtZWRpdW0gc3RvY2s9ImRlZmF1bHQiIHNob3J0PSI2MTJwdCIgbG9uZz0iNzkycHQiLz4KLSAgICAgIDwvcGFnZUFyZWE+Ci0gICAgPC9wYWdlU2V0PgotICAgIDxzdWJmb3JtIHc9IjU3NnB0IiBoPSI3NTZwdCIgbmFtZT0iUGFnZTEiPgotICAgICAgPGZpZWxkIG5hbWU9IkltYWdlRmllbGQxIiB3PSIyNTBwdCIgaD0iMjUwcHQiPgotICAgICAgICA8dmFsdWU+Ci0gICAgICAgICAgPGltYWdlIGNvbnRlbnRUeXBlPSJpbWFnZS90aWZmIj5TVWtxQUFRREFBQjRuTzNTTVFFQU1BeUFzUG8zM2JyWURoSUZIT3hBeGY0T2dHZmNUb2ZiNlhBN0hXNm53KzEwdUowT3Q5UGhkanJjVG9mYjZYQTdIVzZudysxMHVKME90OVBoZGpyY1RvZmI2WEE3SFc2bncrMTB1SjBPdDlQaGRqcmNUb2ZiNlhBN0hXNm53KzEwdUowT3Q5UGhkanJjVG9mYjZYQTdIVzZudysxMHVKME90OVBoZGpyY1RvZmI2WEE3SFc2bncrMTB1SjBPdDlQaGRqcmNUb2ZiNlhBN0hXNm53KzEwdUowT3Q5UGhkanJjVG9mYjZYQTdIVzZudysxMHVKMk9BeEdJUDhGNG5PM1NNUUVBTUF5QXNQbzMzYnJZRGhJRkhPeEF4ZjRPZ0dmY1RvZmI2WEE3SFc2bncrMTB1SjBPdDlQaGRqcmNUb2ZiNlhBN0hXNm53KzEwdUowT3Q5UGhkanJjVG9mYjZYQTdIVzZudysxMHVKME90OVBoZGpyY1RvZmI2WEE3SFc2bncrMTB1SjBPdDlQaGRqcmNUb2ZiNlhBN0hXNm53KzEwdUowT3Q5UGhkanJjVG9mYjZYQTdIVzZudysxMHVKME90OVBoZGpyY1RvZmI2WEE3SFc2bncrMTB1SjBPdDlQaGRqcmNUb2ZiNlhBN0hXNm53KzEwdUoyT0F4R0lQOEY0bk8zU01RRUFNQXlBc1BvMzNicllEaElGSE94QXhmNE9nR2ZjVG9mYjZYQTdIVzZudysxMHVKME90OVBoZGpyY1RvZmI2WEE3SFc2bncrMTB1SjBPdDlQaGRqcmNUb2ZiNlhBN0hXNm53KzEwdUowT3Q5UGhkanJjVG9mYjZYQTdIVzZudysxMHVKME90OVBoZGpyY1RvZmI2WEE3SFc2bncrMTB1SjBPdDlQaGRqcmNUb2ZiNlhBN0hXNm53KzEwdUowT3Q5UGhkanJjVG9mYjZYQTdIVzZudysxMHVKME90OVBoZGpyY1RvZmI2WEE3SFc2bncrMTB1SjJPQXhHSVA4RjRuTzNTTVFFQU1BeUFzUG8zM2JyWURoSUZIT3hBeGY0T2dHZmNUb2ZiNlhBN0hXNm53KzEwdUowT3Q5UGhkanJjVG9mYjZYQTdIVzZudysxMHVKME90OVBoZGpyY1RvZmI2WEE3SFc2bncrMTB1SjBPdDlQaGRqcmNUb2ZiNlhBN0hXNm53KzEwdUowT3Q5UGhkanJjVG9mYjZYQTdIVzZudysxMHVKME90OVBoZGpyY1RvZmI2WEE3SFc2bncrMTB1SjBPdDlQaGRqcmNUb2ZiNlhBN0hXNm53KzEwdUowT3Q5UGhkam9PNjlnNXh4SUEvZ0FFQUFFQUFBQUFBQUFBQUFFREFBRUFBQUQ2QUFBQUFRRURBQUVBQUFENkFBQUFBZ0VEQUFNQUFBRHlBd0FBQXdFREFBRUFBQUFJQUFBQUJnRURBQUVBQUFBQ0FBQUFEUUVDQUVJQUFBQVlCQUFBRGdFQ0FCSUFBQUJhQkFBQUVRRUVBQVFBQUFBSUJBQUFFZ0VEQUFFQUFBQUJBQUFBRlFFREFBRUFBQUFEQUFBQUZnRURBQUVBQUFCQUFBQUFGd0VFQUFRQUFBRDRBd0FBR2dFRkFBRUFBQURpQXdBQUd3RUZBQUVBQUFEcUF3QUFIQUVEQUFFQUFBQUJBQUFBS0FFREFBRUFBQUFDQUFBQVBRRURBQUVBQUFBQ0FBQUFBQUFBQUVnQUFBQUJBQUFBU0FBQUFBRUFBQUFJQUFnQUNBRERBQUFBd3dBQUFNTUFBQUN6QUFBQUNBQUFBTXNBQUFDT0FRQUFVUUlBQUM5MWMzSXZiRzlqWVd3dloyOXZaMnhsTDJodmJXVXZjbWhoY25KcGMyOXVMMUJwWTNSMWNtVnpMMUpsWkY5VGNYVmhjbVZmWkdWbWJHRjBaUzUwYVdabUFFTnlaV0YwWldRZ2QybDBhQ0JIU1UxUUFBPT08L2ltYWdlPgotICAgICAgICA8L3ZhbHVlPgotICAgICAgICA8Ym9yZGVyPgotICAgICAgICAgIDxlZGdlIHRoaWNrbmVzcz0iMC4yNTRtbSIvPgotICAgICAgICAgIDxjb3JuZXIgdGhpY2tuZXNzPSIwLjI1NG1tIi8+Ci0gICAgICAgIDwvYm9yZGVyPgotICAgICAgPC9maWVsZD4KLSAgICA8L3N1YmZvcm0+Ci0gIDwvc3ViZm9ybT4KLTwvdGVtcGxhdGU+Ci1lbmRzdHJlYW0KLWVuZG9iagote3tpbmNsdWRlIC4uLy4uL3hmYV9sb2NhbGVfNl8wLmZyYWdtZW50fX0KLXt7aW5jbHVkZSAuLi8uLi94ZmFfcG9zdGFtYmxlXzdfMC5mcmFnbWVudH19Ci17e2luY2x1ZGUgLi4vLi4veGZhX3BhZ2VzXzhfMC5mcmFnbWVudH19Ci17e3hyZWZ9fQote3t0cmFpbGVyfX0KLXt7c3RhcnR4cmVmfX0KLSUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX3RpZmZfZGVmbGF0ZV9pbWFnZV9leHBlY3RlZC5wZGYuMC5wbmcgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX3RpZmZfZGVmbGF0ZV9pbWFnZV9leHBlY3RlZC5wZGYuMC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyMDRmZDcuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV90aWZmX2RlZmxhdGVfaW1hZ2VfZXhwZWN0ZWQucGRmLjAucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV90aWZmX2ltYWdlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV90aWZmX2ltYWdlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNzc2MjQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX3RpZmZfaW1hZ2VfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV90aWZmX2x6d19pbWFnZV9leHBlY3RlZF9za2lhLnBkZi4wLnBuZyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfdGlmZl9sendfaW1hZ2VfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY3NzYyNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BpeGVsL3hmYV9zcGVjaWZpYy94ZmFfdGlmZl9sendfaW1hZ2VfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV90aWZmX3BhY2tiaXRzX2ltYWdlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nIGIvdGVzdGluZy9yZXNvdXJjZXMvcGl4ZWwveGZhX3NwZWNpZmljL3hmYV90aWZmX3BhY2tiaXRzX2ltYWdlX2V4cGVjdGVkX3NraWEucGRmLjAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNzc2MjQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9waXhlbC94ZmFfc3BlY2lmaWMveGZhX3RpZmZfcGFja2JpdHNfaW1hZ2VfZXhwZWN0ZWRfc2tpYS5wZGYuMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcG9seWdvbl9hbm5vdC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BvbHlnb25fYW5ub3QuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY5ZGRjMQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BvbHlnb25fYW5ub3QuaW4KQEAgLTAsMCArMSw0OCBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvQW5ub3RzIFsKKyAgICA0IDAgUiA1IDAgUgorICBdCisgIC9UYWJzIC9SCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1BvbHlnb24KKyAgL05NIChQb2x5Z29uLTEpCisgIC9GIDQKKyAgL1ZlcnRpY2VzIFsxNTkgMjk2IDM1MCA0MTEgNDcyIDI0My40Ml0KKyAgL1AgMyAwIFIKKyAgL0MgWzEgMC45MDE5NiAwXQorICAvUmVjdCBbMjkzIDUzMCAzNDkgNTQyXQorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9Qb2x5Z29uCisgIC9OTSAoUG9seWdvbi0yKQorICAvRiA0CisgIC9WZXJ0aWNlcyBbMjU5IDM5NiA0NTAgNTExIDU3MiAzNDMgNDJdCisgIC9QIDMgMCBSCisgIC9DIFsxIDAuOTAxOTYgMF0KKyAgL1JlY3QgWzI5MyA1MzAgMzQ5IDU0Ml0KKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3BvbHlnb25fYW5ub3QucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvcG9seWdvbl9hbm5vdC5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGVmYWEyNwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3BvbHlnb25fYW5ub3QucGRmCkBAIC0wLDAgKzEsNjAgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvQW5ub3RzIFsKKyAgICA0IDAgUiA1IDAgUgorICBdCisgIC9UYWJzIC9SCis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvUG9seWdvbgorICAvTk0gKFBvbHlnb24tMSkKKyAgL0YgNAorICAvVmVydGljZXMgWzE1OSAyOTYgMzUwIDQxMSA0NzIgMjQzLjQyXQorICAvUCAzIDAgUgorICAvQyBbMSAwLjkwMTk2IDBdCisgIC9SZWN0IFsyOTMgNTMwIDM0OSA1NDJdCis+PgorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvUG9seWdvbgorICAvTk0gKFBvbHlnb24tMikKKyAgL0YgNAorICAvVmVydGljZXMgWzI1OSAzOTYgNDUwIDUxMSA1NzIgMzQzIDQyXQorICAvUCAzIDAgUgorICAvQyBbMSAwLjkwMTk2IDBdCisgIC9SZWN0IFsyOTMgNTMwIDM0OSA1NDJdCis+PgorZW5kb2JqCit4cmVmCiswIDYKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxMzEgMDAwMDAgbiAKKzAwMDAwMDAyNTEgMDAwMDAgbiAKKzAwMDAwMDA0MjkgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgNgorPj4KK3N0YXJ0eHJlZgorNjA3CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcmVjdGFuZ2xlcy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3JlY3RhbmdsZXMuaW4KaW5kZXggNDk5MzJmZi4uNzMzNDUxNiAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcmVjdGFuZ2xlcy5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9yZWN0YW5nbGVzLmluCkBAIC02LDkgKzYsOSBAQAogZW5kb2JqCiB7e29iamVjdCAyIDB9fSA8PAogICAvVHlwZSAvUGFnZXMKLSAgL01lZGlhQm94IFsgMCAwIDIwMCAzMDAgXQorICAvTWVkaWFCb3ggWzAgMCAyMDAgMzAwXQogICAvQ291bnQgMQotICAvS2lkcyBbIDMgMCBSIF0KKyAgL0tpZHMgWzMgMCBSXQogPj4KIGVuZG9iagoge3tvYmplY3QgMyAwfX0gPDwKQEAgLTE4LDYgKzE4LDcgQEAKID4+CiBlbmRvYmoKIHt7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KID4+CiBzdHJlYW0KIHEKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3JlY3RhbmdsZXMucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvcmVjdGFuZ2xlcy5wZGYKaW5kZXggN2JhZDI1MS4uNjkxMWQyMiAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvcmVjdGFuZ2xlcy5wZGYKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcmVjdGFuZ2xlcy5wZGYKQEAgLTcsOSArNyw5IEBACiBlbmRvYmoKIDIgMCBvYmogPDwKICAgL1R5cGUgL1BhZ2VzCi0gIC9NZWRpYUJveCBbIDAgMCAyMDAgMzAwIF0KKyAgL01lZGlhQm94IFswIDAgMjAwIDMwMF0KICAgL0NvdW50IDEKLSAgL0tpZHMgWyAzIDAgUiBdCisgIC9LaWRzIFszIDAgUl0KID4+CiBlbmRvYmoKIDMgMCBvYmogPDwKQEAgLTE5LDYgKzE5LDcgQEAKID4+CiBlbmRvYmoKIDQgMCBvYmogPDwKKyAgL0xlbmd0aCAxODgKID4+CiBzdHJlYW0KIHEKQEAgLTQyLDkgKzQzLDEyIEBACiAwMDAwMDAwMDAwIDY1NTM1IGYgCiAwMDAwMDAwMDE1IDAwMDAwIG4gCiAwMDAwMDAwMDY4IDAwMDAwIG4gCi0wMDAwMDAwMTYxIDAwMDAwIG4gCi0wMDAwMDAwMjMwIDAwMDAwIG4gCi10cmFpbGVyPDwgL1Jvb3QgMSAwIFIgL1NpemUgNSA+PgorMDAwMDAwMDE1NyAwMDAwMCBuIAorMDAwMDAwMDIyNiAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSA1Cis+Pgogc3RhcnR4cmVmCi00NTYKKzQ2NgogJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3JlZGFjdF9hbm5vdC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3JlZGFjdF9hbm5vdC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWI3YjRlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcmVkYWN0X2Fubm90LmluCkBAIC0wLDAgKzEsNDQgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9Bbm5vdHMgWworICAgIDUgMCBSCisgIF0KKyAgL1RhYnMgL1IKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1JlZGFjdAorICAvTk0gKFJlZGFjdC0xKQorICAvRiA0CisgIC9RdWFkUG9pbnRzIFsyOTMgNTQyIDM0OSA1NDIgMjkzIDUzMCAzNDkgNTMwXQorICAvUCAzIDAgUgorICAvQyBbMSAwLjkwMTk2IDBdCisgIC9SZWN0IFsyOTMgNTMwIDM0OSA1NDJdCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9yZWRhY3RfYW5ub3QucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvcmVkYWN0X2Fubm90LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmMyNjA3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcmVkYWN0X2Fubm90LnBkZgpAQCAtMCwwICsxLDU2IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9Bbm5vdHMgWworICAgIDUgMCBSCisgIF0KKyAgL1RhYnMgL1IKKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAwCis+Pgorc3RyZWFtCitlbmRzdHJlYW0KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL1JlZGFjdAorICAvTk0gKFJlZGFjdC0xKQorICAvRiA0CisgIC9RdWFkUG9pbnRzIFsyOTMgNTQyIDM0OSA1NDIgMjkzIDUzMCAzNDkgNTMwXQorICAvUCAzIDAgUgorICAvQyBbMSAwLjkwMTk2IDBdCisgIC9SZWN0IFsyOTMgNTMwIDM0OSA1NDJdCis+PgorZW5kb2JqCit4cmVmCiswIDYKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxMzEgMDAwMDAgbiAKKzAwMDAwMDAyNjMgMDAwMDAgbiAKKzAwMDAwMDAzMTMgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgNgorPj4KK3N0YXJ0eHJlZgorNDk2CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcm90YXRlZF9pbWFnZS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3JvdGF0ZWRfaW1hZ2UuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Y4MmZlOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3JvdGF0ZWRfaW1hZ2UuaW4KQEAgLTAsMCArMSw1MiBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFswIDAgMjAwIDIwMF0KKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvSW1nIDUgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzMwIC0zMCA0MCA0MCAxMDAgMTAwIGNtCisvSW1nIERvCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9XaWR0aCA1MAorICAvSGVpZ2h0IDUwCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis3ODljZWRjMjMxMGQwMDAwMGMwM2EwN2YyYWFhYjNlYTdiY2YwMzg0MjY1NTU1NTU1NTU1NTU1NWY1YmYwMWNjNzgxOGRjCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvcm90YXRlZF9pbWFnZS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9yb3RhdGVkX2ltYWdlLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmIxODM2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvcm90YXRlZF9pbWFnZS5wZGYKQEAgLTAsMCArMSw2NCBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFswIDAgMjAwIDIwMF0KKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9JbWcgNSAwIFIKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvTGVuZ3RoIDM2Cis+Pgorc3RyZWFtCitxCiszMCAtMzAgNDAgNDAgMTAwIDEwMCBjbQorL0ltZyBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9XaWR0aCA1MAorICAvSGVpZ2h0IDUwCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICAvTGVuZ3RoIDcxCis+Pgorc3RyZWFtCis3ODljZWRjMjMxMGQwMDAwMGMwM2EwN2YyYWFhYjNlYTdiY2YwMzg0MjY1NTU1NTU1NTU1NTU1NWY1YmYwMWNjNzgxOGRjCitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCA2CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTU3IDAwMDAwIG4gCiswMDAwMDAwMjg3IDAwMDAwIG4gCiswMDAwMDAwMzc0IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDYKKz4+CitzdGFydHhyZWYKKzY0NAorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3NpZ25hdHVyZV9ub19zdWJfZmlsdGVyLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvc2lnbmF0dXJlX25vX3N1Yl9maWx0ZXIuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWMxZDFkOAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3NpZ25hdHVyZV9ub19zdWJfZmlsdGVyLmluCkBAIC0wLDAgKzEsMTAwIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvTWVkaWFCb3ggWzAgMCAyMDAgMzAwXQorICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorMCAwIDAgcmcKKzAgMjkwIDEwIDEwIHJlIEIqCisxMCAxNTAgNTAgMzAgcmUgQioKKzAgMCAxIHJnCisxOTAgMjkwIDEwIDEwIHJlIEIqCis3MCAyMzIgNTAgMzAgcmUgQioKKzAgMSAwIHJnCisxOTAgMCAxMCAxMCByZSBCKgorMTMwIDE1MCA1MCAzMCByZSBCKgorMSAwIDAgcmcKKzAgMCAxMCAxMCByZSBCKgorNzAgNjcgNTAgMzAgcmUgQioKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCisKKyUlIEZpcnN0IGluY3JlbWVudGFsIHVwZGF0ZSBhZGRzIGFuIGluaXRpYWwgc2lnbmF0dXJlIGFuZCB1cGRhdGUgb2JqZWN0cyB0bworJSUgcmVmZXIgdG8gaXQuCit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDw8CisgICAgL0ZpZWxkcyBbNyAwIFJdCisgICAgL1NpZ0ZsYWdzIDMKKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9Bbm5vdHMgWzcgMCBSXQorPj4KK2VuZG9iagorJSUgQnl0ZVJhbmdlIGlzIGEgcGFpcnMgb2YgaW50ZWdlcnMgKHN0YXJ0aW5nIGJ5dGUgb2Zmc2V0LCBsZW5ndGggaW4gYnl0ZXMpCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvU2lnCisgIC9GaWx0ZXIgL0Fkb2JlLlBQS01TCisgICUgSW50ZW50aW9uYWxseSBubyAvU3ViRmlsdGVyCisgIC9CeXRlUmFuZ2UgWzAgMTAgMzAgMTBdCisgIC9Db250ZW50cyA8MzA4MDA2MDkyQTg2NDg4NkY3MEQwMTA3MDJBMDgwMzA4MDAyMDEwMT4KKyAgL00gKEQ6MjAyMDA2MjQwOTMxMTQrMDInMDAnKQorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0JCb3ggWzAgMCAwIDBdCisgIC9MZW5ndGggMAorPj4KK3N0cmVhbQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvU2lnCisgIC9GIDEzMgorICAvUmVjdCBbMCAwIDAgMF0KKyAgL1AgMyAwIFIKKyAgL1QgKFNpZ25hdHVyZTEpCisgIC9WIDUgMCBSCisgIC9EViA1IDAgUgorICAvQVAgPDwKKyAgICAvTiA2IDAgUgorICA+PgorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvc2lnbmF0dXJlX25vX3N1Yl9maWx0ZXIucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvc2lnbmF0dXJlX25vX3N1Yl9maWx0ZXIucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMzA1ZWYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9zaWduYXR1cmVfbm9fc3ViX2ZpbHRlci5wZGYKQEAgLTAsMCArMSwxMjQgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAzMDBdCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAxODgKKz4+CitzdHJlYW0KK3EKKzAgMCAwIHJnCiswIDI5MCAxMCAxMCByZSBCKgorMTAgMTUwIDUwIDMwIHJlIEIqCiswIDAgMSByZworMTkwIDI5MCAxMCAxMCByZSBCKgorNzAgMjMyIDUwIDMwIHJlIEIqCiswIDEgMCByZworMTkwIDAgMTAgMTAgcmUgQioKKzEzMCAxNTAgNTAgMzAgcmUgQioKKzEgMCAwIHJnCiswIDAgMTAgMTAgcmUgQioKKzcwIDY3IDUwIDMwIHJlIEIqCitRCitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCA1CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTU3IDAwMDAwIG4gCiswMDAwMDAwMjI2IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDUKKz4+CitzdGFydHhyZWYKKzQ2NgorJSVFT0YKKworJSUgRmlyc3QgaW5jcmVtZW50YWwgdXBkYXRlIGFkZHMgYW4gaW5pdGlhbCBzaWduYXR1cmUgYW5kIHVwZGF0ZSBvYmplY3RzIHRvCislJSByZWZlciB0byBpdC4KKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzcgMCBSXQorICAgIC9TaWdGbGFncyAzCisgID4+Cis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9Bbm5vdHMgWzcgMCBSXQorPj4KK2VuZG9iagorJSUgQnl0ZVJhbmdlIGlzIGEgcGFpcnMgb2YgaW50ZWdlcnMgKHN0YXJ0aW5nIGJ5dGUgb2Zmc2V0LCBsZW5ndGggaW4gYnl0ZXMpCis1IDAgb2JqIDw8CisgIC9UeXBlIC9TaWcKKyAgL0ZpbHRlciAvQWRvYmUuUFBLTVMKKyAgJSBJbnRlbnRpb25hbGx5IG5vIC9TdWJGaWx0ZXIKKyAgL0J5dGVSYW5nZSBbMCAxMCAzMCAxMF0KKyAgL0NvbnRlbnRzIDwzMDgwMDYwOTJBODY0ODg2RjcwRDAxMDcwMkEwODAzMDgwMDIwMTAxPgorICAvTSAoRDoyMDIwMDYyNDA5MzExNCswMicwMCcpCis+PgorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9CQm94IFswIDAgMCAwXQorICAvTGVuZ3RoIDAKKz4+CitzdHJlYW0KK2VuZHN0cmVhbQorZW5kb2JqCis3IDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvU2lnCisgIC9GIDEzMgorICAvUmVjdCBbMCAwIDAgMF0KKyAgL1AgMyAwIFIKKyAgL1QgKFNpZ25hdHVyZTEpCisgIC9WIDUgMCBSCisgIC9EViA1IDAgUgorICAvQVAgPDwKKyAgICAvTiA2IDAgUgorICA+PgorPj4KK2VuZG9iagoreHJlZgorMCA4CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwNzI2IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwODM1IDAwMDAwIG4gCiswMDAwMDAwMjI2IDAwMDAwIG4gCiswMDAwMDAwOTk4IDAwMDAwIG4gCiswMDAwMDAxMTk5IDAwMDAwIG4gCiswMDAwMDAxMzAxIDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDgKKz4+CitzdGFydHhyZWYKKzE0NzMKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9zaWduYXR1cmVfcmVhc29uLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvc2lnbmF0dXJlX3JlYXNvbi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzVkMGY5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvc2lnbmF0dXJlX3JlYXNvbi5pbgpAQCAtMCwwICsxLDEwMSBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFswIDAgMjAwIDMwMF0KKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKKzAgMCAwIHJnCiswIDI5MCAxMCAxMCByZSBCKgorMTAgMTUwIDUwIDMwIHJlIEIqCiswIDAgMSByZworMTkwIDI5MCAxMCAxMCByZSBCKgorNzAgMjMyIDUwIDMwIHJlIEIqCiswIDEgMCByZworMTkwIDAgMTAgMTAgcmUgQioKKzEzMCAxNTAgNTAgMzAgcmUgQioKKzEgMCAwIHJnCiswIDAgMTAgMTAgcmUgQioKKzcwIDY3IDUwIDMwIHJlIEIqCitRCitlbmRzdHJlYW0KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgorCislJSBGaXJzdCBpbmNyZW1lbnRhbCB1cGRhdGUgYWRkcyBhbiBpbml0aWFsIHNpZ25hdHVyZSBhbmQgdXBkYXRlIG9iamVjdHMgdG8KKyUlIHJlZmVyIHRvIGl0Lgore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzcgMCBSXQorICAgIC9TaWdGbGFncyAzCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvQW5ub3RzIFs3IDAgUl0KKz4+CitlbmRvYmoKKyUlIEJ5dGVSYW5nZSBpcyBhIHBhaXJzIG9mIGludGVnZXJzIChzdGFydGluZyBieXRlIG9mZnNldCwgbGVuZ3RoIGluIGJ5dGVzKQore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL1NpZworICAvRmlsdGVyIC9BZG9iZS5QUEtNUworICAvU3ViRmlsdGVyIC9FVFNJLkNBZEVTLmRldGFjaGVkCisgIC9CeXRlUmFuZ2UgWzAgMTAgMzAgMTBdCisgIC9Db250ZW50cyA8MzA4MDA2MDkyQTg2NDg4NkY3MEQwMTA3MDJBMDgwMzA4MDAyMDEwMT4KKyAgL00gKEQ6MjAyMDA2MjQwOTMxMTQrMDInMDAnKQorICAvUmVhc29uIDxGRUZGMDA3NDAwNjUwMDczMDA3NDAwMjAwMDcyMDA2NTAwNjEwMDczMDA2RjAwNkU+Cis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvQkJveCBbMCAwIDAgMF0KKyAgL0xlbmd0aCAwCis+Pgorc3RyZWFtCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9TaWcKKyAgL0YgMTMyCisgIC9SZWN0IFswIDAgMCAwXQorICAvUCAzIDAgUgorICAvVCAoU2lnbmF0dXJlMSkKKyAgL1YgNSAwIFIKKyAgL0RWIDUgMCBSCisgIC9BUCA8PAorICAgIC9OIDYgMCBSCisgID4+Cis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9zaWduYXR1cmVfcmVhc29uLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3NpZ25hdHVyZV9yZWFzb24ucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhZDAyMDUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9zaWduYXR1cmVfcmVhc29uLnBkZgpAQCAtMCwwICsxLDEyNSBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL01lZGlhQm94IFswIDAgMjAwIDMwMF0KKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvTGVuZ3RoIDE4OAorPj4KK3N0cmVhbQorcQorMCAwIDAgcmcKKzAgMjkwIDEwIDEwIHJlIEIqCisxMCAxNTAgNTAgMzAgcmUgQioKKzAgMCAxIHJnCisxOTAgMjkwIDEwIDEwIHJlIEIqCis3MCAyMzIgNTAgMzAgcmUgQioKKzAgMSAwIHJnCisxOTAgMCAxMCAxMCByZSBCKgorMTMwIDE1MCA1MCAzMCByZSBCKgorMSAwIDAgcmcKKzAgMCAxMCAxMCByZSBCKgorNzAgNjcgNTAgMzAgcmUgQioKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit4cmVmCiswIDUKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDAxNTcgMDAwMDAgbiAKKzAwMDAwMDAyMjYgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgNQorPj4KK3N0YXJ0eHJlZgorNDY2CislJUVPRgorCislJSBGaXJzdCBpbmNyZW1lbnRhbCB1cGRhdGUgYWRkcyBhbiBpbml0aWFsIHNpZ25hdHVyZSBhbmQgdXBkYXRlIG9iamVjdHMgdG8KKyUlIHJlZmVyIHRvIGl0LgorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDw8CisgICAgL0ZpZWxkcyBbNyAwIFJdCisgICAgL1NpZ0ZsYWdzIDMKKyAgPj4KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL0Fubm90cyBbNyAwIFJdCis+PgorZW5kb2JqCislJSBCeXRlUmFuZ2UgaXMgYSBwYWlycyBvZiBpbnRlZ2VycyAoc3RhcnRpbmcgYnl0ZSBvZmZzZXQsIGxlbmd0aCBpbiBieXRlcykKKzUgMCBvYmogPDwKKyAgL1R5cGUgL1NpZworICAvRmlsdGVyIC9BZG9iZS5QUEtNUworICAvU3ViRmlsdGVyIC9FVFNJLkNBZEVTLmRldGFjaGVkCisgIC9CeXRlUmFuZ2UgWzAgMTAgMzAgMTBdCisgIC9Db250ZW50cyA8MzA4MDA2MDkyQTg2NDg4NkY3MEQwMTA3MDJBMDgwMzA4MDAyMDEwMT4KKyAgL00gKEQ6MjAyMDA2MjQwOTMxMTQrMDInMDAnKQorICAvUmVhc29uIDxGRUZGMDA3NDAwNjUwMDczMDA3NDAwMjAwMDcyMDA2NTAwNjEwMDczMDA2RjAwNkU+Cis+PgorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9CQm94IFswIDAgMCAwXQorICAvTGVuZ3RoIDAKKz4+CitzdHJlYW0KK2VuZHN0cmVhbQorZW5kb2JqCis3IDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvU2lnCisgIC9GIDEzMgorICAvUmVjdCBbMCAwIDAgMF0KKyAgL1AgMyAwIFIKKyAgL1QgKFNpZ25hdHVyZTEpCisgIC9WIDUgMCBSCisgIC9EViA1IDAgUgorICAvQVAgPDwKKyAgICAvTiA2IDAgUgorICA+PgorPj4KK2VuZG9iagoreHJlZgorMCA4CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwNzI2IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwODM1IDAwMDAwIG4gCiswMDAwMDAwMjI2IDAwMDAwIG4gCiswMDAwMDAwOTk4IDAwMDAwIG4gCiswMDAwMDAxMjYyIDAwMDAwIG4gCiswMDAwMDAxMzY0IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDgKKz4+CitzdGFydHhyZWYKKzE1MzYKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9zaW1wbGVfeGZhLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvc2ltcGxlX3hmYS5pbgppbmRleCBiMjBjNzQ2Li5kM2MyZDAwIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9zaW1wbGVfeGZhLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3NpbXBsZV94ZmEuaW4KQEAgLTEyLDYgKzEyLDcgQEAKICAgICA8cGFnZVNldD4KICAgICAgIDxwYWdlQXJlYSBuYW1lPSJQYWdlMSIgaWQ9IlBhZ2UxIj4KICAgICAgICAgPGNvbnRlbnRBcmVhIHg9IjAuMjVpbiIgeT0iMC4yNWluIiB3PSI4aW4iIGg9IjEwLjVpbiIgLz4KKyAgICAgICAgPG1lZGl1bSBsb25nPSIxMWluIiBzaG9ydD0iOC41aW4iIHN0b2NrPSJsZXR0ZXIiLz4KICAgICAgIDwvcGFnZUFyZWE+CiAgICAgPC9wYWdlU2V0PgogICAgIDxmaWVsZCBuYW1lPSJUZXh0RmllbGQxIiB5PSIzMS43NW1tIiB4PSI0NC40NW1tIiB3PSIxMTQuMjkxbW0iIGg9IjEyLjdtbSI+CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9zaW1wbGVfeGZhLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3NpbXBsZV94ZmEucGRmCmluZGV4IDg5ZjlhZWEuLjhmZjViMTIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3NpbXBsZV94ZmEucGRmCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3NpbXBsZV94ZmEucGRmCkBAIC03Miw3ICs3Miw3IEBACiBlbmRzdHJlYW0KIGVuZG9iagogNSAwIG9iaiA8PAotICAvTGVuZ3RoIDQ4MgorICAvTGVuZ3RoIDU0MQogPj4KIHN0cmVhbQogPHRlbXBsYXRlIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS10ZW1wbGF0ZS8zLjMvIj4KQEAgLTgwLDYgKzgwLDcgQEAKICAgICA8cGFnZVNldD4KICAgICAgIDxwYWdlQXJlYSBuYW1lPSJQYWdlMSIgaWQ9IlBhZ2UxIj4KICAgICAgICAgPGNvbnRlbnRBcmVhIHg9IjAuMjVpbiIgeT0iMC4yNWluIiB3PSI4aW4iIGg9IjEwLjVpbiIgLz4KKyAgICAgICAgPG1lZGl1bSBsb25nPSIxMWluIiBzaG9ydD0iOC41aW4iIHN0b2NrPSJsZXR0ZXIiLz4KICAgICAgIDwvcGFnZUFyZWE+CiAgICAgPC9wYWdlU2V0PgogICAgIDxmaWVsZCBuYW1lPSJUZXh0RmllbGQxIiB5PSIzMS43NW1tIiB4PSI0NC40NW1tIiB3PSIxMTQuMjkxbW0iIGg9IjEyLjdtbSI+CkBAIC0yMTUsNyArMjE2LDcgQEAKIGVuZG9iagogOSAwIG9iaiA8PAogICAvVHlwZSAvUGFnZQotICAvUGFyZW50IDIgMCBSCisgIC9QYXJlbnQgOCAwIFIKICAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KID4+CiBlbmRvYmoKQEAgLTIyNywxNCArMjI4LDE0IEBACiAwMDAwMDAwMzU4IDAwMDAwIG4gCiAwMDAwMDAwNTM0IDAwMDAwIG4gCiAwMDAwMDAxMjI4IDAwMDAwIG4gCi0wMDAwMDAxNzYyIDAwMDAwIG4gCi0wMDAwMDA1MjcwIDAwMDAwIG4gCi0wMDAwMDA1MzMyIDAwMDAwIG4gCi0wMDAwMDA1Mzk1IDAwMDAwIG4gCiswMDAwMDAxODIxIDAwMDAwIG4gCiswMDAwMDA1MzI5IDAwMDAwIG4gCiswMDAwMDA1MzkxIDAwMDAwIG4gCiswMDAwMDA1NDU0IDAwMDAwIG4gCiB0cmFpbGVyIDw8CiAgIC9Sb290IDEgMCBSCiAgIC9TaXplIDEwCiA+Pgogc3RhcnR4cmVmCi01NDcyCis1NTMxCiAlJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvc3BsaXRfc3RyZWFtcy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3NwbGl0X3N0cmVhbXMuaW4KaW5kZXggYjEzNDc2OS4uNzI5YzY3YSAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvc3BsaXRfc3RyZWFtcy5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9zcGxpdF9zdHJlYW1zLmluCkBAIC0xMTcsNyArMTE3LDcgQEAKIHt7eHJlZn19CiB0cmFpbGVyIDw8CiAgIC9Sb290IDEgMCBSCi0gIC9TaXplIDE1CisgIHt7dHJhaWxlcnNpemV9fQogICAvSUQgWzxmMzQxYWU2NTRhNzdhY2Q1MDY1YTc2NDVlNTk2ZTZlNj48YmMzNzI5OGEzZjg3ZjQ3OTIyOWJjZTk5N2NhNzkxZjc+XQogPj4KIHt7c3RhcnR4cmVmfX0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF9hY3R1YWxfdGV4dC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF9hY3R1YWxfdGV4dC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmI5MTdiCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX2FjdHVhbF90ZXh0LmluCkBAIC0wLDAgKzEsMTYyIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL1N0cnVjdFRyZWVSb290IDggMCBSCisgIC9MYW5nIChlbi1VUykKKyAgL01hcmtJbmZvIDw8CisgICAgL01hcmtlZCB0cnVlCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0dyb3VwIDw8CisgICAgL0NTIC9EZXZpY2VSR0IKKyAgICAvSSB0cnVlCisgICAgL1MgL1RyYW5zcGFyZW5jeQorICA+PgorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQyAvSW1hZ2VJIC9JbWFnZUJdCisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9UcjggNSAwIFIKKyAgICAgIC9JbTcgNiAwIFIKKyAgICA+PgorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9FR1M5IDcgMCBSCisgICAgPj4KKyAgPj4KKyAgL1N0cnVjdFBhcmVudHMgMAorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMC4xIHcKKy9BcnRpZmFjdAorQk1DCitxCiswIDAgNjEyIDc5MiByZQorVyogbgorRU1DCisvRmlndXJlPDwvTUNJRCAwPj4KK0JEQworUQorcQorMjgxIDY4NS4zIDUwIDUwIHJlCitXKiBuCitxCis0OS45IDAgMCA1MCAyODEuMSA2ODUuNCBjbQorL0ltNyBEbworUQorRU1DCitRCitxCitFR1M5IGdzIC9UcjggRG8KK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvQkJveCBbLTE0MCAzOTUgNzUzIDM5NS4xXQorICAvR3JvdXAgPDwKKyAgICAvQ1MgL0RldmljZVJHQgorICAgIC9LIHRydWUKKyAgICAvUyAvVHJhbnNwYXJlbmN5CisgID4+CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDUwCisgIC9IZWlnaHQgNTAKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvRmxhdGVEZWNvZGVdCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzc4OWNlZGMxMzEwMTAwMDAwMGMyYTBmNTRmZWQ2ZjA2YTAwMDAwMDAwMDAwMDAwMDc4MDMxZDRjMDAwMQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9jYSAwLjUKKyAgL0NBIDAuNQorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdFRyZWVSb290CisgIC9QYXJlbnRUcmVlIDkgMCBSCisgIC9LIFsxMSAwIFJdCisgIC9Sb2xlTWFwIDw8CisgICAgL0RvY3VtZW50IC9Eb2N1bWVudAorICAgIC9TdGFuZGFyZCAvUAorICAgIC9GaWd1cmUgL0ZpZ3VyZQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL051bXMgWzAgWzEwIDAgUl1dCis+PgorZW5kb2JqCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL0ZpZ3VyZQorICAvQSAxMyAwIFIKKyAgL0sgWzBdCisgIC9QIDEyIDAgUgorICAvQWN0dWFsVGV4dCA8ZmVmZjAwNDEwMDYzMDA3NDAwNzUwMDYxMDA2YzAwMjAwMDU0MDA2NTAwNzgwMDc0PgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDExIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvRG9jdW1lbnQKKyAgL0sgWzEyIDAgUl0KKyAgL1AgOCAwIFIKKyAgL1QgKFRpdGxlVGV4dCkKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAxMiAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1N0YW5kYXJkCisgIC9BIDE0IDAgUgorICAvSyBbMTAgMCBSXQorICAvUCAxMSAwIFIKKyAgL1QgPGZlZmYwMDczMDA3OTAwNmQwMDYyMDA2ZjAwNmMwMDNhMDAyMDAwMzEwMDMwMDAzMDAwNmI+CisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTMgMH19IDw8CisgIC9PIC9MYXlvdXQKKyAgL1BsYWNlbWVudCAvQmxvY2sKKyAgL0JCb3ggWzI4MS4xIDY4NS4zIDMzMS4xIDczNS4zXQorICAvV2lkdGggOTkuOQorICAvSGVpZ2h0IDk5LjkKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDE0IDB9fSA8PAorICAvTyAvTGF5b3V0CisgIC9QbGFjZW1lbnQgL0Jsb2NrCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy90YWdnZWRfYWN0dWFsX3RleHQucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX2FjdHVhbF90ZXh0LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzRlMzMzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX2FjdHVhbF90ZXh0LnBkZgpAQCAtMCwwICsxLDE4MyBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvU3RydWN0VHJlZVJvb3QgOCAwIFIKKyAgL0xhbmcgKGVuLVVTKQorICAvTWFya0luZm8gPDwKKyAgICAvTWFya2VkIHRydWUKKyAgPj4KKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0dyb3VwIDw8CisgICAgL0NTIC9EZXZpY2VSR0IKKyAgICAvSSB0cnVlCisgICAgL1MgL1RyYW5zcGFyZW5jeQorICA+PgorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQyAvSW1hZ2VJIC9JbWFnZUJdCisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9UcjggNSAwIFIKKyAgICAgIC9JbTcgNiAwIFIKKyAgICA+PgorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9FR1M5IDcgMCBSCisgICAgPj4KKyAgPj4KKyAgL1N0cnVjdFBhcmVudHMgMAorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvTGVuZ3RoIDE2MgorPj4KK3N0cmVhbQorMC4xIHcKKy9BcnRpZmFjdAorQk1DCitxCiswIDAgNjEyIDc5MiByZQorVyogbgorRU1DCisvRmlndXJlPDwvTUNJRCAwPj4KK0JEQworUQorcQorMjgxIDY4NS4zIDUwIDUwIHJlCitXKiBuCitxCis0OS45IDAgMCA1MCAyODEuMSA2ODUuNCBjbQorL0ltNyBEbworUQorRU1DCitRCitxCitFR1M5IGdzIC9UcjggRG8KK1EKK2VuZHN0cmVhbQorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9CQm94IFstMTQwIDM5NSA3NTMgMzk1LjFdCisgIC9Hcm91cCA8PAorICAgIC9DUyAvRGV2aWNlUkdCCisgICAgL0sgdHJ1ZQorICAgIC9TIC9UcmFuc3BhcmVuY3kKKyAgPj4KKyAgL0xlbmd0aCAwCis+Pgorc3RyZWFtCitlbmRzdHJlYW0KK2VuZG9iagorNiAwIG9iaiA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDUwCisgIC9IZWlnaHQgNTAKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvRmxhdGVEZWNvZGVdCisgIC9MZW5ndGggNjEKKz4+CitzdHJlYW0KKzc4OWNlZGMxMzEwMTAwMDAwMGMyYTBmNTRmZWQ2ZjA2YTAwMDAwMDAwMDAwMDAwMDc4MDMxZDRjMDAwMQorZW5kc3RyZWFtCitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL2NhIDAuNQorICAvQ0EgMC41Cis+PgorZW5kb2JqCis4IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RUcmVlUm9vdAorICAvUGFyZW50VHJlZSA5IDAgUgorICAvSyBbMTEgMCBSXQorICAvUm9sZU1hcCA8PAorICAgIC9Eb2N1bWVudCAvRG9jdW1lbnQKKyAgICAvU3RhbmRhcmQgL1AKKyAgICAvRmlndXJlIC9GaWd1cmUKKyAgPj4KKz4+CitlbmRvYmoKKzkgMCBvYmogPDwKKyAgL051bXMgWzAgWzEwIDAgUl1dCis+PgorZW5kb2JqCisxMCAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvRmlndXJlCisgIC9BIDEzIDAgUgorICAvSyBbMF0KKyAgL1AgMTIgMCBSCisgIC9BY3R1YWxUZXh0IDxmZWZmMDA0MTAwNjMwMDc0MDA3NTAwNjEwMDZjMDAyMDAwNTQwMDY1MDA3ODAwNzQ+CisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagorMTEgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL0RvY3VtZW50CisgIC9LIFsxMiAwIFJdCisgIC9QIDggMCBSCisgIC9UIChUaXRsZVRleHQpCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagorMTIgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1N0YW5kYXJkCisgIC9BIDE0IDAgUgorICAvSyBbMTAgMCBSXQorICAvUCAxMSAwIFIKKyAgL1QgPGZlZmYwMDczMDA3OTAwNmQwMDYyMDA2ZjAwNmMwMDNhMDAyMDAwMzEwMDMwMDAzMDAwNmI+CisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagorMTMgMCBvYmogPDwKKyAgL08gL0xheW91dAorICAvUGxhY2VtZW50IC9CbG9jaworICAvQkJveCBbMjgxLjEgNjg1LjMgMzMxLjEgNzM1LjNdCisgIC9XaWR0aCA5OS45CisgIC9IZWlnaHQgOTkuOQorPj4KK2VuZG9iagorMTQgMCBvYmogPDwKKyAgL08gL0xheW91dAorICAvUGxhY2VtZW50IC9CbG9jaworPj4KK2VuZG9iagoreHJlZgorMCAxNQorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDE0NSAwMDAwMCBuIAorMDAwMDAwMDIwOCAwMDAwMCBuIAorMDAwMDAwMDU1NiAwMDAwMCBuIAorMDAwMDAwMDc3MCAwMDAwMCBuIAorMDAwMDAwMDk1MiAwMDAwMCBuIAorMDAwMDAwMTIxMiAwMDAwMCBuIAorMDAwMDAwMTI1MyAwMDAwMCBuIAorMDAwMDAwMTQxMiAwMDAwMCBuIAorMDAwMDAwMTQ1NCAwMDAwMCBuIAorMDAwMDAwMTYxOSAwMDAwMCBuIAorMDAwMDAwMTczMCAwMDAwMCBuIAorMDAwMDAwMTg5NyAwMDAwMCBuIAorMDAwMDAwMjAxNSAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAxNQorPj4KK3N0YXJ0eHJlZgorMjA3MAorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF9tYXJrZWRfY29udGVudC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF9tYXJrZWRfY29udGVudC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGVhNjRiCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX21hcmtlZF9jb250ZW50LmluCkBAIC0wLDAgKzEsMTQwIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL1N0cnVjdFRyZWVSb290IDcgMCBSCisgIC9NYXJrSW5mbyA8PAorICAgIC9UeXBlIC9NYXJrSW5mbworICAgIC9NYXJrZWQgdHJ1ZQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1N0cnVjdFBhcmVudHMgMAorICAvQW5ub3RzIFs0IDAgUl0KKyAgL0NvbnRlbnRzIDUgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvVGV4dF0KKyAgICAvRm9udCA8PAorICAgICAgL0Y0IDYgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvTGluaworICAvQm9yZGVyIFswIDAgMF0KKyAgL0Rlc3QgL3RvcAorICAvRiA0CisgIC9SZWN0IFsyMCA0NiA2OCA2MV0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKK0JUCisvUCA8PC9NQ0lEIDAgPj5CREMKKy9GNCAxNiBUZgorMjAgNjUwIFRkCisoVG9wIExlZnQpIFRqCitFTUMKK0VUCitCVAorL1AgPDwvTUNJRCAxID4+QkRDCisvRjQgMTYgVGYKKzIwIDUwIFRkCisoQm90dG9tIExlZnQpIFRqCitFTUMKK0VUCitCVAorL1AgPDwvTUNJRCAyID4+QkRDCisvRjQgMTYgVGYKKzQwMCA1MCBUZAorKEJvdHRvbSBSaWdodCkgVGoKK0VNQworRVQKK0JUCisvUCA8PC9NQ0lEIDMgPj5CREMKKy9GNCAxNiBUZgorNDAwIDY1MCBUZAorKFRvcCBSaWdodCkgVGoKK0VNQworRVQKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgorPj4KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdFRyZWVSb290CisgIC9LIFs5IDAgUiAxMCAwIFIgMTEgMCBSIDEyIDAgUl0KKyAgL1BhcmVudFRyZWUgOCAwIFIKKyAgL1BhcmVudFRyZWVOZXh0S2V5IDEKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9UeXBlIC9QYXJlbnRUcmVlCisgIC9OdW1zIFswIFs5IDAgUiAxMCAwIFIgMTEgMCBSIDEyIDAgUl1dCis+PgorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvTm9uU3RydWN0CisgIC9QIDcgMCBSCisgIC9LIDAKKyAgL0lEIC8zCis+PgorZW5kb2JqCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL05vblN0cnVjdAorICAvUCA3IDAgUgorICAvSyA8PAorICAgICAgL1R5cGUgL01DUgorICAgICAgL01DSUQgMQorICAgICAgL1BnIDMgMCBSCisgICAgID4+CisgIC9JRCAvNAorPj4KK2VuZG9iagore3tvYmplY3QgMTEgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9Ob25TdHJ1Y3QKKyAgL1AgNyAwIFIKKyAgL0sgWworICAgICAgPDwKKyAgICAgICAvVHlwZSAvTUNSCisgICAgICAgL01DSUQgMgorICAgICAgIC9QZyAzIDAgUgorICAgICAgPj4KKyAgICAgIDNdCisgIC9JRCAvNQorPj4KK2VuZG9iagore3tvYmplY3QgMTIgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9Ob25TdHJ1Y3QKKyAgL1AgNyAwIFIKKyAgL0lEIC82Cis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy90YWdnZWRfbWFya2VkX2NvbnRlbnQucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX21hcmtlZF9jb250ZW50LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmY3MzFkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX21hcmtlZF9jb250ZW50LnBkZgpAQCAtMCwwICsxLDE1OSBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvU3RydWN0VHJlZVJvb3QgNyAwIFIKKyAgL01hcmtJbmZvIDw8CisgICAgL1R5cGUgL01hcmtJbmZvCisgICAgL01hcmtlZCB0cnVlCisgID4+Cis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1N0cnVjdFBhcmVudHMgMAorICAvQW5ub3RzIFs0IDAgUl0KKyAgL0NvbnRlbnRzIDUgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvVGV4dF0KKyAgICAvRm9udCA8PAorICAgICAgL0Y0IDYgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9Cb3JkZXIgWzAgMCAwXQorICAvRGVzdCAvdG9wCisgIC9GIDQKKyAgL1JlY3QgWzIwIDQ2IDY4IDYxXQorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvTGVuZ3RoIDI2NAorPj4KK3N0cmVhbQorcQorQlQKKy9QIDw8L01DSUQgMCA+PkJEQworL0Y0IDE2IFRmCisyMCA2NTAgVGQKKyhUb3AgTGVmdCkgVGoKK0VNQworRVQKK0JUCisvUCA8PC9NQ0lEIDEgPj5CREMKKy9GNCAxNiBUZgorMjAgNTAgVGQKKyhCb3R0b20gTGVmdCkgVGoKK0VNQworRVQKK0JUCisvUCA8PC9NQ0lEIDIgPj5CREMKKy9GNCAxNiBUZgorNDAwIDUwIFRkCisoQm90dG9tIFJpZ2h0KSBUagorRU1DCitFVAorQlQKKy9QIDw8L01DSUQgMyA+PkJEQworL0Y0IDE2IFRmCis0MDAgNjUwIFRkCisoVG9wIFJpZ2h0KSBUagorRU1DCitFVAorUQorZW5kc3RyZWFtCitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvVGltZXMtUm9tYW4KKz4+CitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdFRyZWVSb290CisgIC9LIFs5IDAgUiAxMCAwIFIgMTEgMCBSIDEyIDAgUl0KKyAgL1BhcmVudFRyZWUgOCAwIFIKKyAgL1BhcmVudFRyZWVOZXh0S2V5IDEKKz4+CitlbmRvYmoKKzggMCBvYmogPDwKKyAgL1R5cGUgL1BhcmVudFRyZWUKKyAgL051bXMgWzAgWzkgMCBSIDEwIDAgUiAxMSAwIFIgMTIgMCBSXV0KKz4+CitlbmRvYmoKKzkgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL05vblN0cnVjdAorICAvUCA3IDAgUgorICAvSyAwCisgIC9JRCAvMworPj4KK2VuZG9iagorMTAgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL05vblN0cnVjdAorICAvUCA3IDAgUgorICAvSyA8PAorICAgICAgL1R5cGUgL01DUgorICAgICAgL01DSUQgMQorICAgICAgL1BnIDMgMCBSCisgICAgID4+CisgIC9JRCAvNAorPj4KK2VuZG9iagorMTEgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL05vblN0cnVjdAorICAvUCA3IDAgUgorICAvSyBbCisgICAgICA8PAorICAgICAgIC9UeXBlIC9NQ1IKKyAgICAgICAvTUNJRCAyCisgICAgICAgL1BnIDMgMCBSCisgICAgICA+PgorICAgICAgM10KKyAgL0lEIC81Cis+PgorZW5kb2JqCisxMiAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvTm9uU3RydWN0CisgIC9QIDcgMCBSCisgIC9JRCAvNgorPj4KK2VuZG9iagoreHJlZgorMCAxMworMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDE0OSAwMDAwMCBuIAorMDAwMDAwMDIxMiAwMDAwMCBuIAorMDAwMDAwMDQyNyAwMDAwMCBuIAorMDAwMDAwMDU0MCAwMDAwMCBuIAorMDAwMDAwMDg1NiAwMDAwMCBuIAorMDAwMDAwMDkzNCAwMDAwMCBuIAorMDAwMDAwMTA1NiAwMDAwMCBuIAorMDAwMDAwMTEzOCAwMDAwMCBuIAorMDAwMDAwMTIyMiAwMDAwMCBuIAorMDAwMDAwMTM2MyAwMDAwMCBuIAorMDAwMDAwMTUyNSAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAxMworPj4KK3N0YXJ0eHJlZgorMTYwMworJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF9tY3Jfb2Jqci5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF9tY3Jfb2Jqci5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzk0NjMzCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX21jcl9vYmpyLmluCkBAIC0wLDAgKzEsMTYwIEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL1N0cnVjdFRyZWVSb290IDcgMCBSCisgIC9NYXJrSW5mbyA8PAorICAgIC9UeXBlIC9NYXJrSW5mbworICAgIC9NYXJrZWQgdHJ1ZQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1N0cnVjdFBhcmVudHMgMAorICAvQW5ub3RzIFs0IDAgUl0KKyAgL0NvbnRlbnRzIDUgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvVGV4dF0KKyAgICAvRm9udCA8PAorICAgICAgL0Y0IDYgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvTGluaworICAvQm9yZGVyIFswIDAgMF0KKyAgL0Rlc3QgL3RvcAorICAvRiA0CisgIC9SZWN0IFsyMCA0NiA2OCA2MV0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK3EKK0JUCisvUCA8PC9NQ0lEIDAgPj5CREMKKy9GNCAxNiBUZgorMjAgNjUwIFRkCisoSGVsbG8sIHdvcmxkISkgVGoKK0VNQworRVQKK0JUCisvUCA8PC9NQ0lEIDEgPj5CREMKKy9GNCAxNiBUZgorMjAgNTAgVGQKKyhMaW5rIHRvIHRvcCkgVGoKK0VNQworRVQKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgorPj4KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdFRyZWVSb290CisgIC9LIDggMCBSCisgIC9QYXJlbnRUcmVlIDkgMCBSCisgIC9QYXJlbnRUcmVlTmV4dEtleSAxCis+PgorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvRG9jdW1lbnQKKyAgL1AgNyAwIFIKKyAgL0sgWzEwIDAgUiAxMSAwIFJdCisgIC9JRCAvMgorICAvTGFuZyAoZW4tVVMpCis+PgorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICAvVHlwZSAvUGFyZW50VHJlZQorICAvTnVtcyBbMCBbMTMgMCBSIDE1IDAgUl1dCis+PgorZW5kb2JqCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL05vblN0cnVjdAorICAvUCA4IDAgUgorICAvSyBbMTIgMCBSXQorICAvSUQgLzYKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDExIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCA4IDAgUgorICAvSyBbMTQgMCBSXQorICAvSUQgLzQKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEyIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUAorICAvUCAxMCAwIFIKKyAgL0sgWzEzIDAgUl0KKyAgL0lEIC8zCis+PgorZW5kb2JqCit7e29iamVjdCAxMyAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL05vblN0cnVjdAorICAvUCAxMiAwIFIKKyAgL0sgWworICAgIDw8CisgICAgICAvVHlwZSAvTUNSCisgICAgICAvTUNJRCAwCisgICAgICAvUGcgMyAwIFIKKyAgICA+PgorICBdCisgIC9JRCAvNworPj4KK2VuZG9iagore3tvYmplY3QgMTQgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9Ob25TdHJ1Y3QKKyAgL1AgMTEgMCBSCisgIC9LIFsKKyAgICAxNSAwIFIKKyAgICA8PAorICAgICAgL1R5cGUgL09CSlIKKyAgICAgIC9PYmogNCAwIFIKKyAgICA+PgorICBdCisgIC9JRCAvOQorPj4KK2VuZG9iagore3tvYmplY3QgMTUgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9Ob25TdHJ1Y3QKKyAgL1AgMTQgMCBSCisgIC9LIFsKKyAgICA8PAorICAgICAgL1R5cGUgL01DUgorICAgICAgL1BnIDMgMCBSCisgICAgICAvTUNJRCAxCisgICAgPj4KKyAgXQorICAvSUQgLzEwCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy90YWdnZWRfbWNyX29ianIucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX21jcl9vYmpyLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODZmYWE3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX21jcl9vYmpyLnBkZgpAQCAtMCwwICsxLDE4MiBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvU3RydWN0VHJlZVJvb3QgNyAwIFIKKyAgL01hcmtJbmZvIDw8CisgICAgL1R5cGUgL01hcmtJbmZvCisgICAgL01hcmtlZCB0cnVlCisgID4+Cis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1N0cnVjdFBhcmVudHMgMAorICAvQW5ub3RzIFs0IDAgUl0KKyAgL0NvbnRlbnRzIDUgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvVGV4dF0KKyAgICAvRm9udCA8PAorICAgICAgL0Y0IDYgMCBSCisgICAgPj4KKyAgPj4KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9Cb3JkZXIgWzAgMCAwXQorICAvRGVzdCAvdG9wCisgIC9GIDQKKyAgL1JlY3QgWzIwIDQ2IDY4IDYxXQorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvTGVuZ3RoIDEzNworPj4KK3N0cmVhbQorcQorQlQKKy9QIDw8L01DSUQgMCA+PkJEQworL0Y0IDE2IFRmCisyMCA2NTAgVGQKKyhIZWxsbywgd29ybGQhKSBUagorRU1DCitFVAorQlQKKy9QIDw8L01DSUQgMSA+PkJEQworL0Y0IDE2IFRmCisyMCA1MCBUZAorKExpbmsgdG8gdG9wKSBUagorRU1DCitFVAorUQorZW5kc3RyZWFtCitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvVGltZXMtUm9tYW4KKz4+CitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdFRyZWVSb290CisgIC9LIDggMCBSCisgIC9QYXJlbnRUcmVlIDkgMCBSCisgIC9QYXJlbnRUcmVlTmV4dEtleSAxCis+PgorZW5kb2JqCis4IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9Eb2N1bWVudAorICAvUCA3IDAgUgorICAvSyBbMTAgMCBSIDExIDAgUl0KKyAgL0lEIC8yCisgIC9MYW5nIChlbi1VUykKKz4+CitlbmRvYmoKKzkgMCBvYmogPDwKKyAgL1R5cGUgL1BhcmVudFRyZWUKKyAgL051bXMgWzAgWzEzIDAgUiAxNSAwIFJdXQorPj4KK2VuZG9iagorMTAgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL05vblN0cnVjdAorICAvUCA4IDAgUgorICAvSyBbMTIgMCBSXQorICAvSUQgLzYKKz4+CitlbmRvYmoKKzExIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QCisgIC9QIDggMCBSCisgIC9LIFsxNCAwIFJdCisgIC9JRCAvNAorPj4KK2VuZG9iagorMTIgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1AKKyAgL1AgMTAgMCBSCisgIC9LIFsxMyAwIFJdCisgIC9JRCAvMworPj4KK2VuZG9iagorMTMgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL05vblN0cnVjdAorICAvUCAxMiAwIFIKKyAgL0sgWworICAgIDw8CisgICAgICAvVHlwZSAvTUNSCisgICAgICAvTUNJRCAwCisgICAgICAvUGcgMyAwIFIKKyAgICA+PgorICBdCisgIC9JRCAvNworPj4KK2VuZG9iagorMTQgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL05vblN0cnVjdAorICAvUCAxMSAwIFIKKyAgL0sgWworICAgIDE1IDAgUgorICAgIDw8CisgICAgICAvVHlwZSAvT0JKUgorICAgICAgL09iaiA0IDAgUgorICAgID4+CisgIF0KKyAgL0lEIC85Cis+PgorZW5kb2JqCisxNSAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvTm9uU3RydWN0CisgIC9QIDE0IDAgUgorICAvSyBbCisgICAgPDwKKyAgICAgIC9UeXBlIC9NQ1IKKyAgICAgIC9QZyAzIDAgUgorICAgICAgL01DSUQgMQorICAgID4+CisgIF0KKyAgL0lEIC8xMAorPj4KK2VuZG9iagoreHJlZgorMCAxNgorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDE0OSAwMDAwMCBuIAorMDAwMDAwMDIxMiAwMDAwMCBuIAorMDAwMDAwMDQyNyAwMDAwMCBuIAorMDAwMDAwMDU0MCAwMDAwMCBuIAorMDAwMDAwMDcyOSAwMDAwMCBuIAorMDAwMDAwMDgwNyAwMDAwMCBuIAorMDAwMDAwMDkwNiAwMDAwMCBuIAorMDAwMDAwMTAxOSAwMDAwMCBuIAorMDAwMDAwMTA4OCAwMDAwMCBuIAorMDAwMDAwMTE4MCAwMDAwMCBuIAorMDAwMDAwMTI2NCAwMDAwMCBuIAorMDAwMDAwMTM0OSAwMDAwMCBuIAorMDAwMDAwMTUwMCAwMDAwMCBuIAorMDAwMDAwMTY1MCAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAxNgorPj4KK3N0YXJ0eHJlZgorMTgwMgorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF9uZXN0ZWQuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy90YWdnZWRfbmVzdGVkLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3ZDIwMjIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy90YWdnZWRfbmVzdGVkLmluCkBAIC0wLDAgKzEsMzQ2IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL1N0cnVjdFRyZWVSb290IDUgMCBSCisgIC9MYW5nIChlbi1VUykKKyAgL01hcmtJbmZvIDw8CisgICAgL01hcmtlZCB0cnVlCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL1N0cnVjdFBhcmVudHMgMAorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorQlQKKy9QYXJhPDwvTUNJRCAwPj4KK0JNQworMCAwIFRkCisvRjEgMTggVGYKKyhTYW1wbGUgVGV4dCkgVGoKK0VNQworRVQKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvU3RydWN0VHJlZVJvb3QKKyAgL1BhcmVudFRyZWUgNiAwIFIKKyAgL0sgWzggMCBSXQorICAvUm9sZU1hcCA8PAorICAgIC9Eb2N1bWVudCAvRG9jdW1lbnQKKyAgICAvUGFyYSAvUGFyYQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL051bXMgWzAgWzcgMCBSXV0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFswXQorICAvUCA0MiAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA4IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvRG9jdW1lbnQKKyAgL0sgWzkgMCBSXQorICAvUCA1IDAgUgorICAvVCAoVGl0bGVUZXh0KQorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDkgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxMCAwIFJdCisgIC9QIDggMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTAgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxMSAwIFJdCisgIC9QIDkgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTEgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxMiAwIFJdCisgIC9QIDEwIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEyIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbMTMgMCBSXQorICAvUCAxMSAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAxMyAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1BhcmEKKyAgL0sgWzE0IDAgUl0KKyAgL1AgMTIgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTQgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxNSAwIFJdCisgIC9QIDEzIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDE1IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbMTYgMCBSXQorICAvUCAxNCAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAxNiAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1BhcmEKKyAgL0sgWzE3IDAgUl0KKyAgL1AgMTUgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMTcgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxOCAwIFJdCisgIC9QIDE2IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDE4IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbMTkgMCBSXQorICAvUCAxNyAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAxOSAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1BhcmEKKyAgL0sgWzIwIDAgUl0KKyAgL1AgMTggMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMjAgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyMSAwIFJdCisgIC9QIDE5IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIxIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbMjIgMCBSXQorICAvUCAyMCAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyMiAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1BhcmEKKyAgL0sgWzIzIDAgUl0KKyAgL1AgMjEgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMjMgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyNCAwIFJdCisgIC9QIDIyIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDI0IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbMjUgMCBSXQorICAvUCAyMyAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyNSAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1BhcmEKKyAgL0sgWzI2IDAgUl0KKyAgL1AgMjQgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMjYgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyNyAwIFJdCisgIC9QIDI1IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDI3IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbMjggMCBSXQorICAvUCAyNiAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyOCAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1BhcmEKKyAgL0sgWzI5IDAgUl0KKyAgL1AgMjcgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMjkgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszMCAwIFJdCisgIC9QIDI4IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMwIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbMzEgMCBSXQorICAvUCAyOSAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAzMSAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1BhcmEKKyAgL0sgWzMyIDAgUl0KKyAgL1AgMzAgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMzIgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszMyAwIFJdCisgIC9QIDMxIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMzIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbMzQgMCBSXQorICAvUCAzMiAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAzNCAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1BhcmEKKyAgL0sgWzM1IDAgUl0KKyAgL1AgMzMgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMzUgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszNiAwIFJdCisgIC9QIDM0IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDM2IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbMzcgMCBSXQorICAvUCAzNSAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAzNyAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1BhcmEKKyAgL0sgWzM4IDAgUl0KKyAgL1AgMzYgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMzggMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszOSAwIFJdCisgIC9QIDM3IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDM5IDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbNDAgMCBSXQorICAvUCAzOCAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCA0MCAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1BhcmEKKyAgL0sgWzQxIDAgUl0KKyAgL1AgMzkgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNDEgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFs0MiAwIFJdCisgIC9QIDQwIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQyIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbNyAwIFJdCisgIC9QIDQxIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF9uZXN0ZWQucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX25lc3RlZC5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGUwOTM2MAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF9uZXN0ZWQucGRmCkBAIC0wLDAgKzEsMzk1IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9TdHJ1Y3RUcmVlUm9vdCA1IDAgUgorICAvTGFuZyAoZW4tVVMpCisgIC9NYXJrSW5mbyA8PAorICAgIC9NYXJrZWQgdHJ1ZQorICA+PgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvU3RydWN0UGFyZW50cyAwCis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9MZW5ndGggNjUKKz4+CitzdHJlYW0KK0JUCisvUGFyYTw8L01DSUQgMD4+CitCTUMKKzAgMCBUZAorL0YxIDE4IFRmCisoU2FtcGxlIFRleHQpIFRqCitFTUMKK0VUCitlbmRzdHJlYW0KK2VuZG9iagorNSAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0VHJlZVJvb3QKKyAgL1BhcmVudFRyZWUgNiAwIFIKKyAgL0sgWzggMCBSXQorICAvUm9sZU1hcCA8PAorICAgIC9Eb2N1bWVudCAvRG9jdW1lbnQKKyAgICAvUGFyYSAvUGFyYQorICA+PgorPj4KK2VuZG9iagorNiAwIG9iaiA8PAorICAvTnVtcyBbMCBbNyAwIFJdXQorPj4KK2VuZG9iagorNyAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbMF0KKyAgL1AgNDIgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagorOCAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvRG9jdW1lbnQKKyAgL0sgWzkgMCBSXQorICAvUCA1IDAgUgorICAvVCAoVGl0bGVUZXh0KQorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzkgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1BhcmEKKyAgL0sgWzEwIDAgUl0KKyAgL1AgOCAwIFIKKyAgL1BnIDMgMCBSCis+PgorZW5kb2JqCisxMCAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvUGFyYQorICAvSyBbMTEgMCBSXQorICAvUCA5IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzExIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxMiAwIFJdCisgIC9QIDEwIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzEyIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxMyAwIFJdCisgIC9QIDExIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzEzIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxNCAwIFJdCisgIC9QIDEyIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzE0IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxNSAwIFJdCisgIC9QIDEzIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzE1IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxNiAwIFJdCisgIC9QIDE0IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzE2IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxNyAwIFJdCisgIC9QIDE1IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzE3IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxOCAwIFJdCisgIC9QIDE2IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzE4IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsxOSAwIFJdCisgIC9QIDE3IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzE5IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyMCAwIFJdCisgIC9QIDE4IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzIwIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyMSAwIFJdCisgIC9QIDE5IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzIxIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyMiAwIFJdCisgIC9QIDIwIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzIyIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyMyAwIFJdCisgIC9QIDIxIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzIzIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyNCAwIFJdCisgIC9QIDIyIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzI0IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyNSAwIFJdCisgIC9QIDIzIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzI1IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyNiAwIFJdCisgIC9QIDI0IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzI2IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyNyAwIFJdCisgIC9QIDI1IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzI3IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyOCAwIFJdCisgIC9QIDI2IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzI4IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFsyOSAwIFJdCisgIC9QIDI3IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzI5IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszMCAwIFJdCisgIC9QIDI4IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzMwIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszMSAwIFJdCisgIC9QIDI5IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzMxIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszMiAwIFJdCisgIC9QIDMwIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzMyIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszMyAwIFJdCisgIC9QIDMxIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzMzIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszNCAwIFJdCisgIC9QIDMyIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzM0IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszNSAwIFJdCisgIC9QIDMzIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzM1IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszNiAwIFJdCisgIC9QIDM0IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzM2IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszNyAwIFJdCisgIC9QIDM1IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzM3IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszOCAwIFJdCisgIC9QIDM2IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzM4IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFszOSAwIFJdCisgIC9QIDM3IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzM5IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFs0MCAwIFJdCisgIC9QIDM4IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzQwIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFs0MSAwIFJdCisgIC9QIDM5IDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzQxIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFs0MiAwIFJdCisgIC9QIDQwIDAgUgorICAvUGcgMyAwIFIKKz4+CitlbmRvYmoKKzQyIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9QYXJhCisgIC9LIFs3IDAgUl0KKyAgL1AgNDEgMCBSCisgIC9QZyAzIDAgUgorPj4KK2VuZG9iagoreHJlZgorMCA0MworMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDE0NSAwMDAwMCBuIAorMDAwMDAwMDIwOCAwMDAwMCBuIAorMDAwMDAwMDMyMiAwMDAwMCBuIAorMDAwMDAwMDQzOCAwMDAwMCBuIAorMDAwMDAwMDU3NSAwMDAwMCBuIAorMDAwMDAwMDYxNiAwMDAwMCBuIAorMDAwMDAwMDcwMSAwMDAwMCBuIAorMDAwMDAwMDgxMCAwMDAwMCBuIAorMDAwMDAwMDg5OSAwMDAwMCBuIAorMDAwMDAwMDk4OSAwMDAwMCBuIAorMDAwMDAwMTA4MCAwMDAwMCBuIAorMDAwMDAwMTE3MSAwMDAwMCBuIAorMDAwMDAwMTI2MiAwMDAwMCBuIAorMDAwMDAwMTM1MyAwMDAwMCBuIAorMDAwMDAwMTQ0NCAwMDAwMCBuIAorMDAwMDAwMTUzNSAwMDAwMCBuIAorMDAwMDAwMTYyNiAwMDAwMCBuIAorMDAwMDAwMTcxNyAwMDAwMCBuIAorMDAwMDAwMTgwOCAwMDAwMCBuIAorMDAwMDAwMTg5OSAwMDAwMCBuIAorMDAwMDAwMTk5MCAwMDAwMCBuIAorMDAwMDAwMjA4MSAwMDAwMCBuIAorMDAwMDAwMjE3MiAwMDAwMCBuIAorMDAwMDAwMjI2MyAwMDAwMCBuIAorMDAwMDAwMjM1NCAwMDAwMCBuIAorMDAwMDAwMjQ0NSAwMDAwMCBuIAorMDAwMDAwMjUzNiAwMDAwMCBuIAorMDAwMDAwMjYyNyAwMDAwMCBuIAorMDAwMDAwMjcxOCAwMDAwMCBuIAorMDAwMDAwMjgwOSAwMDAwMCBuIAorMDAwMDAwMjkwMCAwMDAwMCBuIAorMDAwMDAwMjk5MSAwMDAwMCBuIAorMDAwMDAwMzA4MiAwMDAwMCBuIAorMDAwMDAwMzE3MyAwMDAwMCBuIAorMDAwMDAwMzI2NCAwMDAwMCBuIAorMDAwMDAwMzM1NSAwMDAwMCBuIAorMDAwMDAwMzQ0NiAwMDAwMCBuIAorMDAwMDAwMzUzNyAwMDAwMCBuIAorMDAwMDAwMzYyOCAwMDAwMCBuIAorMDAwMDAwMzcxOSAwMDAwMCBuIAorMDAwMDAwMzgxMCAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSA0MworPj4KK3N0YXJ0eHJlZgorMzkwMAorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF90YWJsZS5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF90YWJsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTI5OGM1Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX3RhYmxlLmluCkBAIC0wLDAgKzEsMjE3IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL1N0cnVjdFRyZWVSb290IDggMCBSCisgIC9MYW5nIChlbi1VUykKKyAgL01hcmtJbmZvIDw8CisgICAgL01hcmtlZCB0cnVlCisgID4+Cis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0dyb3VwIDw8CisgICAgL0NTIC9EZXZpY2VSR0IKKyAgICAvSSB0cnVlCisgICAgL1MgL1RyYW5zcGFyZW5jeQorICA+PgorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQyAvSW1hZ2VJIC9JbWFnZUJdCisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9UcjggNSAwIFIKKyAgICAgIC9JbTcgNiAwIFIKKyAgICA+PgorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9FR1M5IDcgMCBSCisgICAgPj4KKyAgPj4KKyAgL1N0cnVjdFBhcmVudHMgMAorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorMC4xIHcKKy9BcnRpZmFjdAorQk1DCitxCiswIDAgNjEyIDc5MiByZQorVyogbgorRU1DCisvRmlndXJlPDwvTUNJRCAwPj4KK0JEQworUQorcQorMjgxIDY4NS4zIDUwIDUwIHJlCitXKiBuCitxCis0OS45IDAgMCA1MCAyODEuMSA2ODUuNCBjbQorL0ltNyBEbworUQorRU1DCitRCitxCitFR1M5IGdzIC9UcjggRG8KK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvQkJveCBbLTE0MCAzOTUgNzUzIDM5NS4xXQorICAvR3JvdXAgPDwKKyAgICAvQ1MgL0RldmljZVJHQgorICAgIC9LIHRydWUKKyAgICAvUyAvVHJhbnNwYXJlbmN5CisgID4+CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDUwCisgIC9IZWlnaHQgNTAKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvRmxhdGVEZWNvZGVdCisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzc4OWNlZGMxMzEwMTAwMDAwMGMyYTBmNTRmZWQ2ZjA2YTAwMDAwMDAwMDAwMDAwMDc4MDMxZDRjMDAwMQorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDcgMH19IDw8CisgIC9jYSAwLjUKKyAgL0NBIDAuNQorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdFRyZWVSb290CisgIC9QYXJlbnRUcmVlIDkgMCBSCisgIC9LIFsxMCAwIFJdCisgIC9Sb2xlTWFwIDw8CisgICAgL0RvY3VtZW50IC9Eb2N1bWVudAorICAgIC9TdGFuZGFyZCAvUAorICAgIC9GaWd1cmUgL0ZpZ3VyZQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL051bXMgWworICAgIDAKKyAgICBbMTAgMCBSIDExIDAgUiAxMiAwIFIgMTMgMCBSIDE0IDAgUiAxNSAwIFIgMTYgMCBSIDE3IDAgUl0KKyAgXQorPj4KK2VuZG9iagore3tvYmplY3QgMTAgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9Eb2N1bWVudAorICAvSyBbMTEgMCBSXQorICAvUCA4IDAgUgorICAvVCAoVGl0bGVUZXh0KQorICAvUGcgMyAwIFIKKyAgL0xhbmcgKGVuLVVTKQorPj4KK2VuZG9iagore3tvYmplY3QgMTEgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UYWJsZQorICAvSyBbMTIgMCBSIDEzIDAgUl0KKyAgL1AgMTAgMCBSCisgIC9QZyAzIDAgUgorICAvQSBbPDwKKyAgICAgICAgL08gL1RhYmxlCisgICAgICAgIC9TdW1tYXJ5ICgpCisgICAgICA+Pl0KKyAgL0lEIChub2RlMTIpCisgIC9MYW5nIChodSkKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDEyIDB9fSA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVFIKKyAgL0sgWzE0IDAgUiAxNSAwIFJdCisgIC9QIDExIDAgUgorICAvUGcgMyAwIFIKKyAgL0lEICgpCis+PgorZW5kb2JqCit7e29iamVjdCAxMyAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RSCisgIC9LIFsxNiAwIFIgMTcgMCBSXQorICAvUCAxMSAwIFIKKyAgL1BnIDMgMCBSCisgIC9BIDw8CisgICAgICAvTyAvVGFibGUKKyAgICAgPj4KKyAgL0lEIChub2RlMTQpCis+PgorZW5kb2JqCit7e29iamVjdCAxNCAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RICisgIC9QIDEyIDAgUgorICAvUGcgMyAwIFIKKyAgL0EgWzw8CisgICAgICAgIC9PIC9UYWJsZQorICAgICAgICAvU2NvcGUgL1JvdworICAgICAgPj4KKyAgICAgIDw8CisgICAgICAgIC9PIC9UYWJsZQorICAgICAgICAvQ29sU3BhbiAyCisgICAgICA+Pl0KKyAgL0lEIChub2RlMTUpCis+PgorZW5kb2JqCit7e29iamVjdCAxNSAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RECisgIC9QIDEyIDAgUgorICAvUGcgMyAwIFIKKyAgL0lEIChub2RlMTYpCis+PgorZW5kb2JqCit7e29iamVjdCAxNiAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RICisgIC9QIDEzIDAgUgorICAvUGcgMyAwIFIKKyAgL0EgWzw8CisgICAgICAgIC9PIC9UYWJsZQorICAgICAgICAvU2NvcGUgL1JvdworICAgICAgPj5dCisgIC9JRCAobm9kZTE3KQorPj4KK2VuZG9iagore3tvYmplY3QgMTcgMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9URAorICAvUCAxMyAwIFIKKyAgL1BnIDMgMCBSCisgIC9BIFs8PAorICAgICAgICAvTyAvVGFibGUKKyAgICAgICAgL0NvbFByb3AgKFN1bSkKKyAgICAgICAgL0N1clVTRCB0cnVlCisgICAgID4+XQorICAvSUQgKG5vZGUxOCkKKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF90YWJsZS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy90YWdnZWRfdGFibGUucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0Mjg2ODIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy90YWdnZWRfdGFibGUucGRmCkBAIC0wLDAgKzEsMjQxIEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9TdHJ1Y3RUcmVlUm9vdCA4IDAgUgorICAvTGFuZyAoZW4tVVMpCisgIC9NYXJrSW5mbyA8PAorICAgIC9NYXJrZWQgdHJ1ZQorICA+PgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvR3JvdXAgPDwKKyAgICAvQ1MgL0RldmljZVJHQgorICAgIC9JIHRydWUKKyAgICAvUyAvVHJhbnNwYXJlbmN5CisgID4+CisgIC9SZXNvdXJjZXMgPDwKKyAgICAvUHJvY1NldCBbL1BERiAvSW1hZ2VDIC9JbWFnZUkgL0ltYWdlQl0KKyAgICAvWE9iamVjdCA8PAorICAgICAgL1RyOCA1IDAgUgorICAgICAgL0ltNyA2IDAgUgorICAgID4+CisgICAgL0V4dEdTdGF0ZSA8PAorICAgICAgL0VHUzkgNyAwIFIKKyAgICA+PgorICA+PgorICAvU3RydWN0UGFyZW50cyAwCis+PgorZW5kb2JqCis0IDAgb2JqIDw8CisgIC9MZW5ndGggMTYyCis+Pgorc3RyZWFtCiswLjEgdworL0FydGlmYWN0CitCTUMKK3EKKzAgMCA2MTIgNzkyIHJlCitXKiBuCitFTUMKKy9GaWd1cmU8PC9NQ0lEIDA+PgorQkRDCitRCitxCisyODEgNjg1LjMgNTAgNTAgcmUKK1cqIG4KK3EKKzQ5LjkgMCAwIDUwIDI4MS4xIDY4NS40IGNtCisvSW03IERvCitRCitFTUMKK1EKK3EKK0VHUzkgZ3MgL1RyOCBEbworUQorZW5kc3RyZWFtCitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0JCb3ggWy0xNDAgMzk1IDc1MyAzOTUuMV0KKyAgL0dyb3VwIDw8CisgICAgL0NTIC9EZXZpY2VSR0IKKyAgICAvSyB0cnVlCisgICAgL1MgL1RyYW5zcGFyZW5jeQorICA+PgorICAvTGVuZ3RoIDAKKz4+CitzdHJlYW0KK2VuZHN0cmVhbQorZW5kb2JqCis2IDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9JbWFnZQorICAvV2lkdGggNTAKKyAgL0hlaWdodCA1MAorICAvQml0c1BlckNvbXBvbmVudCA4CisgIC9Db2xvclNwYWNlIC9EZXZpY2VSR0IKKyAgL0ZpbHRlciBbL0FTQ0lJSGV4RGVjb2RlIC9GbGF0ZURlY29kZV0KKyAgL0xlbmd0aCA2MQorPj4KK3N0cmVhbQorNzg5Y2VkYzEzMTAxMDAwMDAwYzJhMGY1NGZlZDZmMDZhMDAwMDAwMDAwMDAwMDAwNzgwMzFkNGMwMDAxCitlbmRzdHJlYW0KK2VuZG9iagorNyAwIG9iaiA8PAorICAvY2EgMC41CisgIC9DQSAwLjUKKz4+CitlbmRvYmoKKzggMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdFRyZWVSb290CisgIC9QYXJlbnRUcmVlIDkgMCBSCisgIC9LIFsxMCAwIFJdCisgIC9Sb2xlTWFwIDw8CisgICAgL0RvY3VtZW50IC9Eb2N1bWVudAorICAgIC9TdGFuZGFyZCAvUAorICAgIC9GaWd1cmUgL0ZpZ3VyZQorICA+PgorPj4KK2VuZG9iagorOSAwIG9iaiA8PAorICAvTnVtcyBbCisgICAgMAorICAgIFsxMCAwIFIgMTEgMCBSIDEyIDAgUiAxMyAwIFIgMTQgMCBSIDE1IDAgUiAxNiAwIFIgMTcgMCBSXQorICBdCis+PgorZW5kb2JqCisxMCAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvRG9jdW1lbnQKKyAgL0sgWzExIDAgUl0KKyAgL1AgOCAwIFIKKyAgL1QgKFRpdGxlVGV4dCkKKyAgL1BnIDMgMCBSCisgIC9MYW5nIChlbi1VUykKKz4+CitlbmRvYmoKKzExIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UYWJsZQorICAvSyBbMTIgMCBSIDEzIDAgUl0KKyAgL1AgMTAgMCBSCisgIC9QZyAzIDAgUgorICAvQSBbPDwKKyAgICAgICAgL08gL1RhYmxlCisgICAgICAgIC9TdW1tYXJ5ICgpCisgICAgICA+Pl0KKyAgL0lEIChub2RlMTIpCisgIC9MYW5nIChodSkKKz4+CitlbmRvYmoKKzEyIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UUgorICAvSyBbMTQgMCBSIDE1IDAgUl0KKyAgL1AgMTEgMCBSCisgIC9QZyAzIDAgUgorICAvSUQgKCkKKz4+CitlbmRvYmoKKzEzIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9UUgorICAvSyBbMTYgMCBSIDE3IDAgUl0KKyAgL1AgMTEgMCBSCisgIC9QZyAzIDAgUgorICAvQSA8PAorICAgICAgL08gL1RhYmxlCisgICAgID4+CisgIC9JRCAobm9kZTE0KQorPj4KK2VuZG9iagorMTQgMCBvYmogPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL1RICisgIC9QIDEyIDAgUgorICAvUGcgMyAwIFIKKyAgL0EgWzw8CisgICAgICAgIC9PIC9UYWJsZQorICAgICAgICAvU2NvcGUgL1JvdworICAgICAgPj4KKyAgICAgIDw8CisgICAgICAgIC9PIC9UYWJsZQorICAgICAgICAvQ29sU3BhbiAyCisgICAgICA+Pl0KKyAgL0lEIChub2RlMTUpCis+PgorZW5kb2JqCisxNSAwIG9iaiA8PAorICAvVHlwZSAvU3RydWN0RWxlbQorICAvUyAvVEQKKyAgL1AgMTIgMCBSCisgIC9QZyAzIDAgUgorICAvSUQgKG5vZGUxNikKKz4+CitlbmRvYmoKKzE2IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9USAorICAvUCAxMyAwIFIKKyAgL1BnIDMgMCBSCisgIC9BIFs8PAorICAgICAgICAvTyAvVGFibGUKKyAgICAgICAgL1Njb3BlIC9Sb3cKKyAgICAgID4+XQorICAvSUQgKG5vZGUxNykKKz4+CitlbmRvYmoKKzE3IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9URAorICAvUCAxMyAwIFIKKyAgL1BnIDMgMCBSCisgIC9BIFs8PAorICAgICAgICAvTyAvVGFibGUKKyAgICAgICAgL0NvbFByb3AgKFN1bSkKKyAgICAgICAgL0N1clVTRCB0cnVlCisgICAgID4+XQorICAvSUQgKG5vZGUxOCkKKz4+CitlbmRvYmoKK3hyZWYKKzAgMTgKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAxNDUgMDAwMDAgbiAKKzAwMDAwMDAyMDggMDAwMDAgbiAKKzAwMDAwMDA1NTYgMDAwMDAgbiAKKzAwMDAwMDA3NzAgMDAwMDAgbiAKKzAwMDAwMDA5NTIgMDAwMDAgbiAKKzAwMDAwMDEyMTIgMDAwMDAgbiAKKzAwMDAwMDEyNTMgMDAwMDAgbiAKKzAwMDAwMDE0MTIgMDAwMDAgbiAKKzAwMDAwMDE1MTUgMDAwMDAgbiAKKzAwMDAwMDE2NDIgMDAwMDAgbiAKKzAwMDAwMDE4MjYgMDAwMDAgbiAKKzAwMDAwMDE5MzEgMDAwMDAgbiAKKzAwMDAwMDIwNzQgMDAwMDAgbiAKKzAwMDAwMDIyNzYgMDAwMDAgbiAKKzAwMDAwMDIzNjYgMDAwMDAgbiAKKzAwMDAwMDI1MTMgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgMTgKKz4+CitzdGFydHhyZWYKKzI2ODMKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy90YWdnZWRfdGFibGVfYmFkX2VsZW0uaW4gYi90ZXN0aW5nL3Jlc291cmNlcy90YWdnZWRfdGFibGVfYmFkX2VsZW0uaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzUwMjA0NwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3RhZ2dlZF90YWJsZV9iYWRfZWxlbS5pbgpAQCAtMCwwICsxLDE1MyBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9TdHJ1Y3RUcmVlUm9vdCA4IDAgUgorICAvTGFuZyAoZW4tVVMpCisgIC9NYXJrSW5mbyA8PAorICAgIC9NYXJrZWQgdHJ1ZQorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCisgIC9Hcm91cCA8PAorICAgIC9DUyAvRGV2aWNlUkdCCisgICAgL0kgdHJ1ZQorICAgIC9TIC9UcmFuc3BhcmVuY3kKKyAgPj4KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Qcm9jU2V0IFsvUERGIC9JbWFnZUMgL0ltYWdlSSAvSW1hZ2VCXQorICAgIC9YT2JqZWN0IDw8CisgICAgICAvVHI4IDUgMCBSCisgICAgICAvSW03IDYgMCBSCisgICAgPj4KKyAgICAvRXh0R1N0YXRlIDw8CisgICAgICAvRUdTOSA3IDAgUgorICAgID4+CisgID4+CisgIC9TdHJ1Y3RQYXJlbnRzIDAKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDQgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzAuMSB3CisvQXJ0aWZhY3QKK0JNQworcQorMCAwIDYxMiA3OTIgcmUKK1cqIG4KK0VNQworL0ZpZ3VyZTw8L01DSUQgMD4+CitCREMKK1EKK3EKKzI4MSA2ODUuMyA1MCA1MCByZQorVyogbgorcQorNDkuOSAwIDAgNTAgMjgxLjEgNjg1LjQgY20KKy9JbTcgRG8KK1EKK0VNQworUQorcQorRUdTOSBncyAvVHI4IERvCitRCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0JCb3ggWy0xNDAgMzk1IDc1MyAzOTUuMV0KKyAgL0dyb3VwIDw8CisgICAgL0NTIC9EZXZpY2VSR0IKKyAgICAvSyB0cnVlCisgICAgL1MgL1RyYW5zcGFyZW5jeQorICA+PgorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNiAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0ltYWdlCisgIC9XaWR0aCA1MAorICAvSGVpZ2h0IDUwCisgIC9CaXRzUGVyQ29tcG9uZW50IDgKKyAgL0NvbG9yU3BhY2UgL0RldmljZVJHQgorICAvRmlsdGVyIFsvQVNDSUlIZXhEZWNvZGUgL0ZsYXRlRGVjb2RlXQorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCis3ODljZWRjMTMxMDEwMDAwMDBjMmEwZjU0ZmVkNmYwNmEwMDAwMDAwMDAwMDAwMDA3ODAzMWQ0YzAwMDEKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCA3IDB9fSA8PAorICAvY2EgMC41CisgIC9DQSAwLjUKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9UeXBlIC9TdHJ1Y3RUcmVlUm9vdAorICAvUGFyZW50VHJlZSA5IDAgUgorICAvSyBbMTAgMCBSXQorICAvUm9sZU1hcCA8PAorICAgIC9Eb2N1bWVudCAvRG9jdW1lbnQKKyAgICAvU3RhbmRhcmQgL1AKKyAgICAvRmlndXJlIC9GaWd1cmUKKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDkgMH19IDw8CisgIC9OdW1zIFsKKyAgICAwCisgICAgWzEwIDAgUiAxMSAwIFIgMTIgMCBSXQorICBdCis+PgorZW5kb2JqCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1R5cGUgL1N0cnVjdEVsZW0KKyAgL1MgL0RvY3VtZW50CisgIC9LIFsxMSAwIFJdCisgIC9QIDggMCBSCisgIC9UIChUaXRsZVRleHQpCisgIC9QZyAzIDAgUgorICAvTGFuZyAoZW4tVVMpCis+PgorZW5kb2JqCit7e29iamVjdCAxMSAwfX0gPDwKKyAgJSBEZWxpYmVyYXRlbHkgbWlzc2luZyAvVHlwZQorICAvUyAvVGFibGUKKyAgL0sgWzEyIDAgUl0KKyAgL1AgMTAgMCBSCisgIC9QZyAzIDAgUgorICAvQSBbKGJvZ3VzIHR5cGUpXQorICAvSUQgKG5vZGUxMikKKyAgL0xhbmcgKGh1KQorPj4KK2VuZG9iagore3tvYmplY3QgMTIgMH19IDw8CisgICUgRGVsaWJlcmF0ZWx5IGJhZCAvVHlwZS4KKyAgL1R5cGUgL05vdFN0cnVjdEVsZW0KKyAgL1MgL1RSCisgIC9QIDExIDAgUgorICAvUGcgMyAwIFIKKyAgL0lEICgpCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy90YWdnZWRfdGFibGVfYmFkX2VsZW0ucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX3RhYmxlX2JhZF9lbGVtLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmJlZWUwCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvdGFnZ2VkX3RhYmxlX2JhZF9lbGVtLnBkZgpAQCAtMCwwICsxLDE3MiBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvU3RydWN0VHJlZVJvb3QgOCAwIFIKKyAgL0xhbmcgKGVuLVVTKQorICAvTWFya0luZm8gPDwKKyAgICAvTWFya2VkIHRydWUKKyAgPj4KKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0dyb3VwIDw8CisgICAgL0NTIC9EZXZpY2VSR0IKKyAgICAvSSB0cnVlCisgICAgL1MgL1RyYW5zcGFyZW5jeQorICA+PgorICAvUmVzb3VyY2VzIDw8CisgICAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQyAvSW1hZ2VJIC9JbWFnZUJdCisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9UcjggNSAwIFIKKyAgICAgIC9JbTcgNiAwIFIKKyAgICA+PgorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9FR1M5IDcgMCBSCisgICAgPj4KKyAgPj4KKyAgL1N0cnVjdFBhcmVudHMgMAorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvTGVuZ3RoIDE2MgorPj4KK3N0cmVhbQorMC4xIHcKKy9BcnRpZmFjdAorQk1DCitxCiswIDAgNjEyIDc5MiByZQorVyogbgorRU1DCisvRmlndXJlPDwvTUNJRCAwPj4KK0JEQworUQorcQorMjgxIDY4NS4zIDUwIDUwIHJlCitXKiBuCitxCis0OS45IDAgMCA1MCAyODEuMSA2ODUuNCBjbQorL0ltNyBEbworUQorRU1DCitRCitxCitFR1M5IGdzIC9UcjggRG8KK1EKK2VuZHN0cmVhbQorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0CisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9CQm94IFstMTQwIDM5NSA3NTMgMzk1LjFdCisgIC9Hcm91cCA8PAorICAgIC9DUyAvRGV2aWNlUkdCCisgICAgL0sgdHJ1ZQorICAgIC9TIC9UcmFuc3BhcmVuY3kKKyAgPj4KKyAgL0xlbmd0aCAwCis+Pgorc3RyZWFtCitlbmRzdHJlYW0KK2VuZG9iagorNiAwIG9iaiA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDUwCisgIC9IZWlnaHQgNTAKKyAgL0JpdHNQZXJDb21wb25lbnQgOAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9GaWx0ZXIgWy9BU0NJSUhleERlY29kZSAvRmxhdGVEZWNvZGVdCisgIC9MZW5ndGggNjEKKz4+CitzdHJlYW0KKzc4OWNlZGMxMzEwMTAwMDAwMGMyYTBmNTRmZWQ2ZjA2YTAwMDAwMDAwMDAwMDAwMDc4MDMxZDRjMDAwMQorZW5kc3RyZWFtCitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL2NhIDAuNQorICAvQ0EgMC41Cis+PgorZW5kb2JqCis4IDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RUcmVlUm9vdAorICAvUGFyZW50VHJlZSA5IDAgUgorICAvSyBbMTAgMCBSXQorICAvUm9sZU1hcCA8PAorICAgIC9Eb2N1bWVudCAvRG9jdW1lbnQKKyAgICAvU3RhbmRhcmQgL1AKKyAgICAvRmlndXJlIC9GaWd1cmUKKyAgPj4KKz4+CitlbmRvYmoKKzkgMCBvYmogPDwKKyAgL051bXMgWworICAgIDAKKyAgICBbMTAgMCBSIDExIDAgUiAxMiAwIFJdCisgIF0KKz4+CitlbmRvYmoKKzEwIDAgb2JqIDw8CisgIC9UeXBlIC9TdHJ1Y3RFbGVtCisgIC9TIC9Eb2N1bWVudAorICAvSyBbMTEgMCBSXQorICAvUCA4IDAgUgorICAvVCAoVGl0bGVUZXh0KQorICAvUGcgMyAwIFIKKyAgL0xhbmcgKGVuLVVTKQorPj4KK2VuZG9iagorMTEgMCBvYmogPDwKKyAgJSBEZWxpYmVyYXRlbHkgbWlzc2luZyAvVHlwZQorICAvUyAvVGFibGUKKyAgL0sgWzEyIDAgUl0KKyAgL1AgMTAgMCBSCisgIC9QZyAzIDAgUgorICAvQSBbKGJvZ3VzIHR5cGUpXQorICAvSUQgKG5vZGUxMikKKyAgL0xhbmcgKGh1KQorPj4KK2VuZG9iagorMTIgMCBvYmogPDwKKyAgJSBEZWxpYmVyYXRlbHkgYmFkIC9UeXBlLgorICAvVHlwZSAvTm90U3RydWN0RWxlbQorICAvUyAvVFIKKyAgL1AgMTEgMCBSCisgIC9QZyAzIDAgUgorICAvSUQgKCkKKz4+CitlbmRvYmoKK3hyZWYKKzAgMTMKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAxNDUgMDAwMDAgbiAKKzAwMDAwMDAyMDggMDAwMDAgbiAKKzAwMDAwMDA1NTYgMDAwMDAgbiAKKzAwMDAwMDA3NzAgMDAwMDAgbiAKKzAwMDAwMDA5NTIgMDAwMDAgbiAKKzAwMDAwMDEyMTIgMDAwMDAgbiAKKzAwMDAwMDEyNTMgMDAwMDAgbiAKKzAwMDAwMDE0MTIgMDAwMDAgbiAKKzAwMDAwMDE0ODAgMDAwMDAgbiAKKzAwMDAwMDE2MDcgMDAwMDAgbiAKKzAwMDAwMDE3NTggMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgMTMKKz4+CitzdGFydHhyZWYKKzE4NzMKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy90ZXh0X2luX3BhZ2VfbWFya2VkLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvdGV4dF9pbl9wYWdlX21hcmtlZC5pbgppbmRleCBlMzM4NDc5Li41OTc4MTEwIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy90ZXh0X2luX3BhZ2VfbWFya2VkLmluCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3RleHRfaW5fcGFnZV9tYXJrZWQuaW4KQEAgLTEzMSw3ICsxMzEsNyBAQAoge3t4cmVmfX0KIHRyYWlsZXIgPDwKICAgL1Jvb3QgMSAwIFIKLSAgL1NpemUgMTMKKyAge3t0cmFpbGVyc2l6ZX19CiAgIC9JRCBbPGYzNDFhZTY1NGE3N2FjZDUwNjVhNzY0NWU1OTZlNmU2PjxiYzM3Mjk4YTNmODdmNDc5MjI5YmNlOTk3Y2E3OTFmNz5dCiA+Pgoge3tzdGFydHhyZWZ9fQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvdGV4dF9pbl9wYWdlX21hcmtlZF9pbmRpcmVjdC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3RleHRfaW5fcGFnZV9tYXJrZWRfaW5kaXJlY3QuaW4KaW5kZXggMWY5ODlmNi4uNjAwNGFkNCAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvdGV4dF9pbl9wYWdlX21hcmtlZF9pbmRpcmVjdC5pbgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy90ZXh0X2luX3BhZ2VfbWFya2VkX2luZGlyZWN0LmluCkBAIC0xMzcsNyArMTM3LDcgQEAKIHt7eHJlZn19CiB0cmFpbGVyIDw8CiAgIC9Sb290IDEgMCBSCi0gIC9TaXplIDE0CisgIHt7dHJhaWxlcnNpemV9fQogICAvSUQgWzxmMzQxYWU2NTRhNzdhY2Q1MDY1YTc2NDVlNTk2ZTZlNj48YmMzNzI5OGEzZjg3ZjQ3OTIyOWJjZTk5N2NhNzkxZjc+XQogPj4KIHt7c3RhcnR4cmVmfX0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3RyYWlsZXJfZW5kX3RyYWlsaW5nX3NwYWNlLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvdHJhaWxlcl9lbmRfdHJhaWxpbmdfc3BhY2UuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDIzM2I3NQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3RyYWlsZXJfZW5kX3RyYWlsaW5nX3NwYWNlLmluCkBAIC0wLDAgKzEsODYgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvRjEgNCAwIFIKKyAgICAgIC9GMiA1IDAgUgorICAgID4+CisgID4+CisgIC9Db250ZW50cyA2IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvVGltZXMtUm9tYW4KKz4+CitlbmRvYmoKKyUgU2luZ2xlIHNwYWNlIGFmdGVyIGVuZHN0cmVhbSBhbmQgZW5kb2JqLgore3tvYmplY3QgNiAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorQlQKKzIwIDUwIFRkCisvRjEgMTIgVGYKKyhIZWxsbywgd29ybGQhKSBUagorMCA1MCBUZAorL0YyIDE2IFRmCisoR29vZGJ5ZSwgd29ybGQhKSBUagorRVQKK2VuZHN0cmVhbSAKK2VuZG9iaiAKKyUgTXVsdGlwbGUgc3BhY2VzIGFmdGVyIGVuZHN0cmVhbSBhbmQgZW5kb2JqLgore3tvYmplY3QgNiAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorQlQKKzIwIDUwIFRkCisvRjEgMTIgVGYKKyhIZWxsbywgd29ybGQhKSBUagorMCA1MCBUZAorL0YyIDE2IFRmCisoR29vZGJ5ZSwgd29ybGQhKSBUagorRVQKK2VuZHN0cmVhbSAgCitlbmRvYmogIAorJSBUYWIgYWZ0ZXIgZW5kc3RyZWFtIGFuZCBlbmRvYmouCit7e29iamVjdCA2IDB9fSA8PAorICB7e3N0cmVhbWxlbn19Cis+Pgorc3RyZWFtCitCVAorMjAgNTAgVGQKKy9GMSAxMiBUZgorKEhlbGxvLCB3b3JsZCEpIFRqCiswIDUwIFRkCisvRjIgMTYgVGYKKyhHb29kYnllLCB3b3JsZCEpIFRqCitFVAorZW5kc3RyZWFtCQorZW5kb2JqCQore3tvYmplY3QgNSAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvSGVsdmV0aWNhCis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy90cmFpbGVyX2VuZF90cmFpbGluZ19zcGFjZS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy90cmFpbGVyX2VuZF90cmFpbGluZ19zcGFjZS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBlYzZlNAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3RyYWlsZXJfZW5kX3RyYWlsaW5nX3NwYWNlLnBkZgpAQCAtMCwwICsxLDk5IEBACislUERGLTEuNworJaDypPQKKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCisyIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlcworICAvTWVkaWFCb3ggWzAgMCAyMDAgMjAwXQorICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvRjEgNCAwIFIKKyAgICAgIC9GMiA1IDAgUgorICAgID4+CisgID4+CisgIC9Db250ZW50cyA2IDAgUgorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvVHlwZSAvRm9udAorICAvU3VidHlwZSAvVHlwZTEKKyAgL0Jhc2VGb250IC9UaW1lcy1Sb21hbgorPj4KK2VuZG9iagorJSBTaW5nbGUgc3BhY2UgYWZ0ZXIgZW5kc3RyZWFtIGFuZCBlbmRvYmouCis2IDAgb2JqIDw8CisgIC9MZW5ndGggODMKKz4+CitzdHJlYW0KK0JUCisyMCA1MCBUZAorL0YxIDEyIFRmCisoSGVsbG8sIHdvcmxkISkgVGoKKzAgNTAgVGQKKy9GMiAxNiBUZgorKEdvb2RieWUsIHdvcmxkISkgVGoKK0VUCitlbmRzdHJlYW0gCitlbmRvYmogCislIE11bHRpcGxlIHNwYWNlcyBhZnRlciBlbmRzdHJlYW0gYW5kIGVuZG9iai4KKzYgMCBvYmogPDwKKyAgL0xlbmd0aCA4MworPj4KK3N0cmVhbQorQlQKKzIwIDUwIFRkCisvRjEgMTIgVGYKKyhIZWxsbywgd29ybGQhKSBUagorMCA1MCBUZAorL0YyIDE2IFRmCisoR29vZGJ5ZSwgd29ybGQhKSBUagorRVQKK2VuZHN0cmVhbSAgCitlbmRvYmogIAorJSBUYWIgYWZ0ZXIgZW5kc3RyZWFtIGFuZCBlbmRvYmouCis2IDAgb2JqIDw8CisgIC9MZW5ndGggODMKKz4+CitzdHJlYW0KK0JUCisyMCA1MCBUZAorL0YxIDEyIFRmCisoSGVsbG8sIHdvcmxkISkgVGoKKzAgNTAgVGQKKy9GMiAxNiBUZgorKEdvb2RieWUsIHdvcmxkISkgVGoKK0VUCitlbmRzdHJlYW0JCitlbmRvYmoJCis1IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorPj4KK2VuZG9iagoreHJlZgorMCA3CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTU3IDAwMDAwIG4gCiswMDAwMDAwMjk5IDAwMDAwIG4gCiswMDAwMDAwOTEwIDAwMDAwIG4gCiswMDAwMDAwNzc0IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDcKKz4+CitzdGFydHhyZWYKKzk4NgorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3R3b19zaWduYXR1cmVzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvdHdvX3NpZ25hdHVyZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE4NDk1ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3R3b19zaWduYXR1cmVzLmluCkBAIC0wLDAgKzEsMTU1IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvTWVkaWFCb3ggWzAgMCAyMDAgMzAwXQorICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorMCAwIDAgcmcKKzAgMjkwIDEwIDEwIHJlIEIqCisxMCAxNTAgNTAgMzAgcmUgQioKKzAgMCAxIHJnCisxOTAgMjkwIDEwIDEwIHJlIEIqCis3MCAyMzIgNTAgMzAgcmUgQioKKzAgMSAwIHJnCisxOTAgMCAxMCAxMCByZSBCKgorMTMwIDE1MCA1MCAzMCByZSBCKgorMSAwIDAgcmcKKzAgMCAxMCAxMCByZSBCKgorNzAgNjcgNTAgMzAgcmUgQioKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCisKKyUlIEZpcnN0IGluY3JlbWVudGFsIHVwZGF0ZSBhZGRzIGFuIGluaXRpYWwgc2lnbmF0dXJlIGFuZCB1cGRhdGUgb2JqZWN0cyB0bworJSUgcmVmZXIgdG8gaXQuCit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDw8CisgICAgL0ZpZWxkcyBbNyAwIFJdCisgICAgL1NpZ0ZsYWdzIDMKKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9Bbm5vdHMgWzcgMCBSXQorPj4KK2VuZG9iagorJSUgQnl0ZVJhbmdlIGlzIGEgcGFpcnMgb2YgaW50ZWdlcnMgKHN0YXJ0aW5nIGJ5dGUgb2Zmc2V0LCBsZW5ndGggaW4gYnl0ZXMpCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvU2lnCisgIC9GaWx0ZXIgL0Fkb2JlLlBQS01TCisgIC9TdWJGaWx0ZXIgL0VUU0kuQ0FkRVMuZGV0YWNoZWQKKyAgL0J5dGVSYW5nZSBbMCAxMCAzMCAxMF0KKyAgL0NvbnRlbnRzIDwzMDgwMDYwOTJBODY0ODg2RjcwRDAxMDcwMkEwODAzMDgwMDIwMTAxPgorICAvTSAoRDoyMDIwMDYyNDA5MzExNCswMicwMCcpCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvQkJveCBbMCAwIDAgMF0KKyAgL0xlbmd0aCAwCis+Pgorc3RyZWFtCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9TaWcKKyAgL0YgMTMyCisgIC9SZWN0IFswIDAgMCAwXQorICAvUCAzIDAgUgorICAvVCAoU2lnbmF0dXJlMSkKKyAgL1YgNSAwIFIKKyAgL0RWIDUgMCBSCisgIC9BUCA8PAorICAgIC9OIDYgMCBSCisgID4+Cis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCisKKyUlIFNlY29uZCBpbmNyZW1lbnRhbCB1cGRhdGUgYWRkcyBhIG5leHQgc2lnbmF0dXJlIGFuZCB1cGRhdGUgb2JqZWN0cyBvbmNlIGFnYWluIHRvIHJlZmVyIHRvIGl0Lgore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzcgMCBSIDEwIDAgUl0KKyAgICAvU2lnRmxhZ3MgMworICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL0Fubm90cyBbNyAwIFIgMTAgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL1NpZworICAvRmlsdGVyIC9BZG9iZS5QUEtNUworICAvU3ViRmlsdGVyIC9FVFNJLkNBZEVTLmRldGFjaGVkCisgIC9CeXRlUmFuZ2UgWzAgNDAgNTAgMTBdCisgIC9Db250ZW50cyA8MzA4MDA2MDkyQTg2NDg4NkY3MEQwMTA3MDJBMDgwMzA4MDAyMDEwMTMxPgorICAvTSAoRDoyMDIwMDYyNDA5MzExOCswMicwMCcpCis+PgorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvQkJveCBbMCAwIDAgMF0KKyAgL0xlbmd0aCAwCis+Pgorc3RyZWFtCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTAgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvU2lnCisgIC9GIDEzMgorICAvUmVjdCBbMCAwIDAgMF0KKyAgL1AgMyAwIFIKKyAgL1QgKFNpZ25hdHVyZTIpCisgIC9WIDggMCBSCisgIC9EViA4IDAgUgorICAvQVAgPDwKKyAgICAvTiA5IDAgUgorICA+PgorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvdHdvX3NpZ25hdHVyZXMucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvdHdvX3NpZ25hdHVyZXMucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhMDMzZDYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy90d29fc2lnbmF0dXJlcy5wZGYKQEAgLTAsMCArMSwxOTUgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAzMDBdCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAxODgKKz4+CitzdHJlYW0KK3EKKzAgMCAwIHJnCiswIDI5MCAxMCAxMCByZSBCKgorMTAgMTUwIDUwIDMwIHJlIEIqCiswIDAgMSByZworMTkwIDI5MCAxMCAxMCByZSBCKgorNzAgMjMyIDUwIDMwIHJlIEIqCiswIDEgMCByZworMTkwIDAgMTAgMTAgcmUgQioKKzEzMCAxNTAgNTAgMzAgcmUgQioKKzEgMCAwIHJnCiswIDAgMTAgMTAgcmUgQioKKzcwIDY3IDUwIDMwIHJlIEIqCitRCitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCA1CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTU3IDAwMDAwIG4gCiswMDAwMDAwMjI2IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDUKKz4+CitzdGFydHhyZWYKKzQ2NgorJSVFT0YKKworJSUgRmlyc3QgaW5jcmVtZW50YWwgdXBkYXRlIGFkZHMgYW4gaW5pdGlhbCBzaWduYXR1cmUgYW5kIHVwZGF0ZSBvYmplY3RzIHRvCislJSByZWZlciB0byBpdC4KKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzcgMCBSXQorICAgIC9TaWdGbGFncyAzCisgID4+Cis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9Bbm5vdHMgWzcgMCBSXQorPj4KK2VuZG9iagorJSUgQnl0ZVJhbmdlIGlzIGEgcGFpcnMgb2YgaW50ZWdlcnMgKHN0YXJ0aW5nIGJ5dGUgb2Zmc2V0LCBsZW5ndGggaW4gYnl0ZXMpCis1IDAgb2JqIDw8CisgIC9UeXBlIC9TaWcKKyAgL0ZpbHRlciAvQWRvYmUuUFBLTVMKKyAgL1N1YkZpbHRlciAvRVRTSS5DQWRFUy5kZXRhY2hlZAorICAvQnl0ZVJhbmdlIFswIDEwIDMwIDEwXQorICAvQ29udGVudHMgPDMwODAwNjA5MkE4NjQ4ODZGNzBEMDEwNzAyQTA4MDMwODAwMjAxMDE+CisgIC9NIChEOjIwMjAwNjI0MDkzMTE0KzAyJzAwJykKKz4+CitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0JCb3ggWzAgMCAwIDBdCisgIC9MZW5ndGggMAorPj4KK3N0cmVhbQorZW5kc3RyZWFtCitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9TaWcKKyAgL0YgMTMyCisgIC9SZWN0IFswIDAgMCAwXQorICAvUCAzIDAgUgorICAvVCAoU2lnbmF0dXJlMSkKKyAgL1YgNSAwIFIKKyAgL0RWIDUgMCBSCisgIC9BUCA8PAorICAgIC9OIDYgMCBSCisgID4+Cis+PgorZW5kb2JqCit4cmVmCiswIDgKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDA3MjYgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDA4MzUgMDAwMDAgbiAKKzAwMDAwMDAyMjYgMDAwMDAgbiAKKzAwMDAwMDA5OTggMDAwMDAgbiAKKzAwMDAwMDEyMDEgMDAwMDAgbiAKKzAwMDAwMDEzMDMgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgOAorPj4KK3N0YXJ0eHJlZgorMTQ3NQorJSVFT0YKKworJSUgU2Vjb25kIGluY3JlbWVudGFsIHVwZGF0ZSBhZGRzIGEgbmV4dCBzaWduYXR1cmUgYW5kIHVwZGF0ZSBvYmplY3RzIG9uY2UgYWdhaW4gdG8gcmVmZXIgdG8gaXQuCisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvQWNyb0Zvcm0gPDwKKyAgICAvRmllbGRzIFs3IDAgUiAxMCAwIFJdCisgICAgL1NpZ0ZsYWdzIDMKKyAgPj4KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL0Fubm90cyBbNyAwIFIgMTAgMCBSXQorPj4KK2VuZG9iagorOCAwIG9iaiA8PAorICAvVHlwZSAvU2lnCisgIC9GaWx0ZXIgL0Fkb2JlLlBQS01TCisgIC9TdWJGaWx0ZXIgL0VUU0kuQ0FkRVMuZGV0YWNoZWQKKyAgL0J5dGVSYW5nZSBbMCA0MCA1MCAxMF0KKyAgL0NvbnRlbnRzIDwzMDgwMDYwOTJBODY0ODg2RjcwRDAxMDcwMkEwODAzMDgwMDIwMTAxMzE+CisgIC9NIChEOjIwMjAwNjI0MDkzMTE4KzAyJzAwJykKKz4+CitlbmRvYmoKKzkgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0JCb3ggWzAgMCAwIDBdCisgIC9MZW5ndGggMAorPj4KK3N0cmVhbQorZW5kc3RyZWFtCitlbmRvYmoKKzEwIDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvU2lnCisgIC9GIDEzMgorICAvUmVjdCBbMCAwIDAgMF0KKyAgL1AgMyAwIFIKKyAgL1QgKFNpZ25hdHVyZTIpCisgIC9WIDggMCBSCisgIC9EViA4IDAgUgorICAvQVAgPDwKKyAgICAvTiA5IDAgUgorICA+PgorPj4KK2VuZG9iagoreHJlZgorMCAxMQorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMTgwMSAwMDAwMCBuIAorMDAwMDAwMDA2OCAwMDAwMCBuIAorMDAwMDAwMTkxNyAwMDAwMCBuIAorMDAwMDAwMDIyNiAwMDAwMCBuIAorMDAwMDAwMDk5OCAwMDAwMCBuIAorMDAwMDAwMTIwMSAwMDAwMCBuIAorMDAwMDAwMTMwMyAwMDAwMCBuIAorMDAwMDAwMjAxMSAwMDAwMCBuIAorMDAwMDAwMjIxNiAwMDAwMCBuIAorMDAwMDAwMjMxOCAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAxMQorPj4KK3N0YXJ0eHJlZgorMjQ5MQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3VyaV9hY3Rpb25fbm9uYXNjaWkuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy91cmlfYWN0aW9uX25vbmFzY2lpLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyZWM1NDAKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy91cmlfYWN0aW9uX25vbmFzY2lpLmluCkBAIC0wLDAgKzEsNDQgQEAKK3t7aGVhZGVyfX0KK3t7b2JqZWN0IDEgMH19IDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0Fubm90cyBbNCAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCA0IDB9fSA8PAorICAvQSA1IDAgUgorICAvRlQgL1R4CisgIC9GZiAyOTM2MDEyOAorICAvVHlwZSAvQW5ub3QKKyAgL1N1YnR5cGUgL0xpbmsKKyAgL0YgNAorICAvUmVjdCBbMSAxIDE5OSAxOTldCisgIC9CUyAgPDwKKyAgICAvVyAxCisgICAgL1MgL1MKKyAgPj4KKyAgL0RBICgvSGVsdiAwIFRmIDAgMCAwIHJnKQorICAvViAoKQorPj4KK2VuZG9iagore3tvYmplY3QgNSAwfX0gPDwKKyAgL1MgL1VSSQorICAvVVJJIChodHRwczovL2V4YW1wbGUuY29tL1wyNDVvY3RhbFwzMDdjaGFycykKKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3VyaV9hY3Rpb25fbm9uYXNjaWkucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvdXJpX2FjdGlvbl9ub25hc2NpaS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZjMDg0YQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3VyaV9hY3Rpb25fbm9uYXNjaWkucGRmCkBAIC0wLDAgKzEsNTYgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAyMDBdCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQW5ub3RzIFs0IDAgUl0KKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0EgNSAwIFIKKyAgL0ZUIC9UeAorICAvRmYgMjkzNjAxMjgKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9MaW5rCisgIC9GIDQKKyAgL1JlY3QgWzEgMSAxOTkgMTk5XQorICAvQlMgIDw8CisgICAgL1cgMQorICAgIC9TIC9TCisgID4+CisgIC9EQSAoL0hlbHYgMCBUZiAwIDAgMCByZykKKyAgL1YgKCkKKz4+CitlbmRvYmoKKzUgMCBvYmogPDwKKyAgL1MgL1VSSQorICAvVVJJIChodHRwczovL2V4YW1wbGUuY29tL1wyNDVvY3RhbFwzMDdjaGFycykKKz4+CitlbmRvYmoKK3hyZWYKKzAgNgorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDA2OCAwMDAwMCBuIAorMDAwMDAwMDE1NyAwMDAwMCBuIAorMDAwMDAwMDIyNiAwMDAwMCBuIAorMDAwMDAwMDQxNCAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSA2Cis+Pgorc3RhcnR4cmVmCis0OTMKKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy92aWV3ZXJfcHJlZl90eXBlcy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3ZpZXdlcl9wcmVmX3R5cGVzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExYjgwMzQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy92aWV3ZXJfcHJlZl90eXBlcy5pbgpAQCAtMCwwICsxLDM2IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL1ZpZXdlclByZWZlcmVuY2VzIDw8CisgICAgL0Jvb2wgdHJ1ZQorICAgIC9OdW0gMQorICAgIC9TdHIgKHN0cikKKyAgICAvTmFtZSAvbmFtZQorICAgIC9OdWxsIG51bGwKKyAgICAvUmVmIDMgMCBSCisgICAgL0VtcHR5QXJyYXkgW10KKyAgICAvR29vZEFycmF5IFt0cnVlIDEgKHN0cikgL25hbWVdCisgICAgL0JhZEFycmF5MSBbdHJ1ZSBbXV0KKyAgICAvQmFkQXJyYXkyIFsxIDw8Pj5dCisgICAgL0JhZEFycmF5MyBbL25hbWUgMyAwIFJdCisgICAgL0RpY3QgPDwKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMiAwfX0gPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKz4+CitlbmRvYmoKK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tzdGFydHhyZWZ9fQorJSVFT0YKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3ZpZXdlcl9wcmVmX3R5cGVzLnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3ZpZXdlcl9wcmVmX3R5cGVzLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzRjYTZmCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvdmlld2VyX3ByZWZfdHlwZXMucGRmCkBAIC0wLDAgKzEsNDYgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL1ZpZXdlclByZWZlcmVuY2VzIDw8CisgICAgL0Jvb2wgdHJ1ZQorICAgIC9OdW0gMQorICAgIC9TdHIgKHN0cikKKyAgICAvTmFtZSAvbmFtZQorICAgIC9OdWxsIG51bGwKKyAgICAvUmVmIDMgMCBSCisgICAgL0VtcHR5QXJyYXkgW10KKyAgICAvR29vZEFycmF5IFt0cnVlIDEgKHN0cikgL25hbWVdCisgICAgL0JhZEFycmF5MSBbdHJ1ZSBbXV0KKyAgICAvQmFkQXJyYXkyIFsxIDw8Pj5dCisgICAgL0JhZEFycmF5MyBbL25hbWUgMyAwIFJdCisgICAgL0RpY3QgPDwKKyAgICA+PgorICA+PgorPj4KK2VuZG9iagorMiAwIG9iaiA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDEKKyAgL0tpZHMgWzMgMCBSXQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCis+PgorZW5kb2JqCit4cmVmCiswIDQKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDAwMTUgMDAwMDAgbiAKKzAwMDAwMDAzMzcgMDAwMDAgbiAKKzAwMDAwMDA0MDAgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgNAorPj4KK3N0YXJ0eHJlZgorNDUxCislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMveGZhL3hmYV9icmVha19iZWZvcmVfYWZ0ZXIuaW4gYi90ZXN0aW5nL3Jlc291cmNlcy94ZmEveGZhX2JyZWFrX2JlZm9yZV9hZnRlci5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmYyZjNhCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMveGZhL3hmYV9icmVha19iZWZvcmVfYWZ0ZXIuaW4KQEAgLTAsMCArMSw1NCBAQAore3toZWFkZXJ9fQore3tpbmNsdWRlIC4uL3hmYV9jYXRhbG9nXzFfMC5mcmFnbWVudH19Cit7e2luY2x1ZGUgLi4veGZhX29iamVjdF8yXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uL3hmYV9wcmVhbWJsZV8zXzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uL3hmYV9jb25maWdfNF8wLmZyYWdtZW50fX0KK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KKzx0ZW1wbGF0ZSB4bWxucz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvMy4wLyI+CisgIDxzdWJmb3JtIG5hbWU9IkZvcm0wMSIgbGF5b3V0PSJ0YiIgbG9jYWxlPSJlbl9aQSIgcmVzdG9yZVN0YXRlPSJhdXRvIj4KKyAgICA8cGFnZVNldD4KKyAgICAgIDxwYWdlQXJlYSBuYW1lPSJQYWdlMSIgaWQ9IlBhZ2UxIiBpbml0aWFsTnVtYmVyPSIxIj4KKyAgICAgICAgPGNvbnRlbnRBcmVhIHg9IjEwLjQ1NW1tIiB3PSIxOTAuNW1tIiBoPSIyODZtbSIvPgorICAgICAgICA8b2NjdXIgbWluPSIxIiBtYXg9IjEiLz4KKyAgICAgIDwvcGFnZUFyZWE+CisgICAgPC9wYWdlU2V0PgorICAgIDxzdWJmb3JtIHc9IjE5MC41bW0iIGg9IjI4Nm1tIiBuYW1lPSJURm9ybTFTdWJGb3JtMSI+CisgICAgPC9zdWJmb3JtPgorICAgIDxzdWJmb3JtIHc9IjE5MC41bW0iIGg9IjI4Nm1tIj4KKyAgICAgIDxicmVha0JlZm9yZSB0YXJnZXRUeXBlPSJjb250ZW50QXJlYSIgLz4KKyAgICA8L3N1YmZvcm0+CisgICAgPHN1YmZvcm0gdz0iMTkwLjVtbSIgaD0iMjg2bW0iPgorICAgICAgPGJyZWFrQWZ0ZXIgdGFyZ2V0VHlwZT0iY29udGVudEFyZWEiIC8+CisgICAgPC9zdWJmb3JtPgorICAgIDxzdWJmb3JtIHc9IjE5MC41bW0iIGg9IjI4Nm1tIj4KKyAgICAgIDxicmVha0JlZm9yZSB0YXJnZXRUeXBlPSJwYWdlQXJlYSIgLz4KKyAgICA8L3N1YmZvcm0+CisgICAgPHN1YmZvcm0gdz0iMTkwLjVtbSIgaD0iMjg2bW0iPgorICAgICAgPGJyZWFrQWZ0ZXIgdGFyZ2V0VHlwZT0icGFnZUFyZWEiIC8+CisgICAgPC9zdWJmb3JtPgorICAgIDxzdWJmb3JtIHc9IjE5MC41bW0iIGg9IjI4Nm1tIj4KKyAgICAgIDxicmVha0JlZm9yZSB0YXJnZXRUeXBlPSJwYWdlRXZlbiIgLz4KKyAgICA8L3N1YmZvcm0+CisgICAgPHN1YmZvcm0gdz0iMTkwLjVtbSIgaD0iMjg2bW0iPgorICAgICAgPGJyZWFrQWZ0ZXIgdGFyZ2V0VHlwZT0icGFnZUV2ZW4iIC8+CisgICAgPC9zdWJmb3JtPgorICAgIDxzdWJmb3JtIHc9IjE5MC41bW0iIGg9IjI4Nm1tIj4KKyAgICAgIDxicmVha0JlZm9yZSB0YXJnZXRUeXBlPSJwYWdlT2RkIiAvPgorICAgIDwvc3ViZm9ybT4KKyAgICA8c3ViZm9ybSB3PSIxOTAuNW1tIiBoPSIyODZtbSI+CisgICAgICA8YnJlYWtBZnRlciB0YXJnZXRUeXBlPSJwYWdlT2RkIiAvPgorICAgIDwvc3ViZm9ybT4KKyAgPC9zdWJmb3JtPgorPC90ZW1wbGF0ZT4KK2VuZHN0cmVhbQorZW5kb2JqCit7e2luY2x1ZGUgLi4veGZhX2xvY2FsZV82XzAuZnJhZ21lbnR9fQore3tpbmNsdWRlIC4uL3hmYV9wb3N0YW1ibGVfN18wLmZyYWdtZW50fX0KK3t7aW5jbHVkZSAuLi94ZmFfcGFnZXNfOF8wLmZyYWdtZW50fX0KK3t7eHJlZn19Cit7e3RyYWlsZXJ9fQore3tlbmR4cmVmfX0KKyUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy94ZmEveGZhX2JyZWFrX2JlZm9yZV9hZnRlci5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy94ZmEveGZhX2JyZWFrX2JlZm9yZV9hZnRlci5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjIzNTAxNgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3hmYS94ZmFfYnJlYWtfYmVmb3JlX2FmdGVyLnBkZgpAQCAtMCwwICsxLDI2MiBAQAorJVBERi0xLjcKKyWg8qT0CisxIDAgb2JqIDw8CisgIC9BY3JvRm9ybSAyIDAgUgorICAvRXh0ZW5zaW9ucyA8PAorICAgIC9BREJFIDw8CisgICAgICAvQmFzZVZlcnNpb24gLzEuNworICAgICAgL0V4dGVuc2lvbkxldmVsIDgKKyAgICA+PgorICA+PgorICAvTmVlZHNSZW5kZXJpbmcgdHJ1ZQorICAvUGFnZXMgOCAwIFIKKyAgL1R5cGUgL0NhdGFsb2cKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1hGQSBbCisgICAgKHByZWFtYmxlKQorICAgIDMgMCBSCisgICAgKGNvbmZpZykKKyAgICA0IDAgUgorICAgICh0ZW1wbGF0ZSkKKyAgICA1IDAgUgorICAgIChsb2NhbGVTZXQpCisgICAgNiAwIFIKKyAgICAocG9zdGFtYmxlKQorICAgIDcgMCBSCisgIF0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL0xlbmd0aCAxMjQKKz4+CitzdHJlYW0KKzx4ZHA6eGRwIHhtbG5zOnhkcD0iaHR0cDovL25zLmFkb2JlLmNvbS94ZHAvIiB0aW1lU3RhbXA9IjIwMTgtMDItMjNUMjE6Mzc6MTFaIiB1dWlkPSIyMTQ4Mjc5OC03YmYwLTQwYTQtYmM1ZC0zY2VmZGNjZjMyYjUiPgorZW5kc3RyZWFtCitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCA2NDIKKz4+CitzdHJlYW0KKzxjb25maWcgeG1sbnM9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGNpLzMuMC8iPgorPGFnZW50IG5hbWU9ImRlc2lnbmVyIj4KKyAgPGRlc3RpbmF0aW9uPnBkZjwvZGVzdGluYXRpb24+CisgIDxwZGY+CisgICAgPGZvbnRJbmZvLz4KKyAgPC9wZGY+Cis8L2FnZW50PgorPHByZXNlbnQ+CisgIDxwZGY+CisgICAgPHZlcnNpb24+MS43PC92ZXJzaW9uPgorICAgIDxhZG9iZUV4dGVuc2lvbkxldmVsPjg8L2Fkb2JlRXh0ZW5zaW9uTGV2ZWw+CisgICAgPHJlbmRlclBvbGljeT5jbGllbnQ8L3JlbmRlclBvbGljeT4KKyAgICA8c2NyaXB0TW9kZWw+WEZBPC9zY3JpcHRNb2RlbD4KKyAgICA8aW50ZXJhY3RpdmU+MTwvaW50ZXJhY3RpdmU+CisgIDwvcGRmPgorICA8eGRwPgorICAgIDxwYWNrZXRzPio8L3BhY2tldHM+CisgIDwveGRwPgorICA8ZGVzdGluYXRpb24+cGRmPC9kZXN0aW5hdGlvbj4KKyAgPHNjcmlwdD4KKyAgICA8cnVuU2NyaXB0cz5zZXJ2ZXI8L3J1blNjcmlwdHM+CisgIDwvc2NyaXB0PgorPC9wcmVzZW50PgorPGFjcm9iYXQ+CisgIDxhY3JvYmF0Nz4KKyAgICA8ZHluYW1pY1JlbmRlcj5yZXF1aXJlZDwvZHluYW1pY1JlbmRlcj4KKyAgPC9hY3JvYmF0Nz4KKyAgPHZhbGlkYXRlPnByZVN1Ym1pdDwvdmFsaWRhdGU+Cis8L2Fjcm9iYXQ+Cis8L2NvbmZpZz4KK2VuZHN0cmVhbQorZW5kb2JqCis1IDAgb2JqIDw8CisgIC9MZW5ndGggMTE5MQorPj4KK3N0cmVhbQorPHRlbXBsYXRlIHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS10ZW1wbGF0ZS8zLjAvIj4KKyAgPHN1YmZvcm0gbmFtZT0iRm9ybTAxIiBsYXlvdXQ9InRiIiBsb2NhbGU9ImVuX1pBIiByZXN0b3JlU3RhdGU9ImF1dG8iPgorICAgIDxwYWdlU2V0PgorICAgICAgPHBhZ2VBcmVhIG5hbWU9IlBhZ2UxIiBpZD0iUGFnZTEiIGluaXRpYWxOdW1iZXI9IjEiPgorICAgICAgICA8Y29udGVudEFyZWEgeD0iMTAuNDU1bW0iIHc9IjE5MC41bW0iIGg9IjI4Nm1tIi8+CisgICAgICAgIDxvY2N1ciBtaW49IjEiIG1heD0iMSIvPgorICAgICAgPC9wYWdlQXJlYT4KKyAgICA8L3BhZ2VTZXQ+CisgICAgPHN1YmZvcm0gdz0iMTkwLjVtbSIgaD0iMjg2bW0iIG5hbWU9IlRGb3JtMVN1YkZvcm0xIj4KKyAgICA8L3N1YmZvcm0+CisgICAgPHN1YmZvcm0gdz0iMTkwLjVtbSIgaD0iMjg2bW0iPgorICAgICAgPGJyZWFrQmVmb3JlIHRhcmdldFR5cGU9ImNvbnRlbnRBcmVhIiAvPgorICAgIDwvc3ViZm9ybT4KKyAgICA8c3ViZm9ybSB3PSIxOTAuNW1tIiBoPSIyODZtbSI+CisgICAgICA8YnJlYWtBZnRlciB0YXJnZXRUeXBlPSJjb250ZW50QXJlYSIgLz4KKyAgICA8L3N1YmZvcm0+CisgICAgPHN1YmZvcm0gdz0iMTkwLjVtbSIgaD0iMjg2bW0iPgorICAgICAgPGJyZWFrQmVmb3JlIHRhcmdldFR5cGU9InBhZ2VBcmVhIiAvPgorICAgIDwvc3ViZm9ybT4KKyAgICA8c3ViZm9ybSB3PSIxOTAuNW1tIiBoPSIyODZtbSI+CisgICAgICA8YnJlYWtBZnRlciB0YXJnZXRUeXBlPSJwYWdlQXJlYSIgLz4KKyAgICA8L3N1YmZvcm0+CisgICAgPHN1YmZvcm0gdz0iMTkwLjVtbSIgaD0iMjg2bW0iPgorICAgICAgPGJyZWFrQmVmb3JlIHRhcmdldFR5cGU9InBhZ2VFdmVuIiAvPgorICAgIDwvc3ViZm9ybT4KKyAgICA8c3ViZm9ybSB3PSIxOTAuNW1tIiBoPSIyODZtbSI+CisgICAgICA8YnJlYWtBZnRlciB0YXJnZXRUeXBlPSJwYWdlRXZlbiIgLz4KKyAgICA8L3N1YmZvcm0+CisgICAgPHN1YmZvcm0gdz0iMTkwLjVtbSIgaD0iMjg2bW0iPgorICAgICAgPGJyZWFrQmVmb3JlIHRhcmdldFR5cGU9InBhZ2VPZGQiIC8+CisgICAgPC9zdWJmb3JtPgorICAgIDxzdWJmb3JtIHc9IjE5MC41bW0iIGg9IjI4Nm1tIj4KKyAgICAgIDxicmVha0FmdGVyIHRhcmdldFR5cGU9InBhZ2VPZGQiIC8+CisgICAgPC9zdWJmb3JtPgorICA8L3N1YmZvcm0+Cis8L3RlbXBsYXRlPgorZW5kc3RyZWFtCitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL0xlbmd0aCAzNDU1Cis+Pgorc3RyZWFtCis8bG9jYWxlU2V0IHhtbG5zPSJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS1sb2NhbGUtc2V0LzIuNy8iPgorICA8bG9jYWxlIG5hbWU9ImVuX1VTIiBkZXNjPSJFbmdsaXNoIChVbml0ZWQgU3RhdGVzKSI+CisgICAgPGNhbGVuZGFyU3ltYm9scyBuYW1lPSJncmVnb3JpYW4iPgorICAgICAgPG1vbnRoTmFtZXM+CisgICAgICAgIDxtb250aD5KYW51YXJ5PC9tb250aD4KKyAgICAgICAgPG1vbnRoPkZlYnJ1YXJ5PC9tb250aD4KKyAgICAgICAgPG1vbnRoPk1hcmNoPC9tb250aD4KKyAgICAgICAgPG1vbnRoPkFwcmlsPC9tb250aD4KKyAgICAgICAgPG1vbnRoPk1heTwvbW9udGg+CisgICAgICAgIDxtb250aD5KdW5lPC9tb250aD4KKyAgICAgICAgPG1vbnRoPkp1bHk8L21vbnRoPgorICAgICAgICA8bW9udGg+QXVndXN0PC9tb250aD4KKyAgICAgICAgPG1vbnRoPlNlcHRlbWJlcjwvbW9udGg+CisgICAgICAgIDxtb250aD5PY3RvYmVyPC9tb250aD4KKyAgICAgICAgPG1vbnRoPk5vdmVtYmVyPC9tb250aD4KKyAgICAgICAgPG1vbnRoPkRlY2VtYmVyPC9tb250aD4KKyAgICAgIDwvbW9udGhOYW1lcz4KKyAgICAgIDxtb250aE5hbWVzIGFiYnI9IjEiPgorICAgICAgICA8bW9udGg+SmFuPC9tb250aD4KKyAgICAgICAgPG1vbnRoPkZlYjwvbW9udGg+CisgICAgICAgIDxtb250aD5NYXI8L21vbnRoPgorICAgICAgICA8bW9udGg+QXByPC9tb250aD4KKyAgICAgICAgPG1vbnRoPk1heTwvbW9udGg+CisgICAgICAgIDxtb250aD5KdW48L21vbnRoPgorICAgICAgICA8bW9udGg+SnVsPC9tb250aD4KKyAgICAgICAgPG1vbnRoPkF1ZzwvbW9udGg+CisgICAgICAgIDxtb250aD5TZXA8L21vbnRoPgorICAgICAgICA8bW9udGg+T2N0PC9tb250aD4KKyAgICAgICAgPG1vbnRoPk5vdjwvbW9udGg+CisgICAgICAgIDxtb250aD5EZWM8L21vbnRoPgorICAgICAgPC9tb250aE5hbWVzPgorICAgICAgPGRheU5hbWVzPgorICAgICAgICA8ZGF5PlN1bmRheTwvZGF5PgorICAgICAgICA8ZGF5Pk1vbmRheTwvZGF5PgorICAgICAgICA8ZGF5PlR1ZXNkYXk8L2RheT4KKyAgICAgICAgPGRheT5XZWRuZXNkYXk8L2RheT4KKyAgICAgICAgPGRheT5UaHVyc2RheTwvZGF5PgorICAgICAgICA8ZGF5PkZyaWRheTwvZGF5PgorICAgICAgICA8ZGF5PlNhdHVyZGF5PC9kYXk+CisgICAgICA8L2RheU5hbWVzPgorICAgICAgPGRheU5hbWVzIGFiYnI9IjEiPgorICAgICAgICA8ZGF5PlN1bjwvZGF5PgorICAgICAgICA8ZGF5Pk1vbjwvZGF5PgorICAgICAgICA8ZGF5PlR1ZTwvZGF5PgorICAgICAgICA8ZGF5PldlZDwvZGF5PgorICAgICAgICA8ZGF5PlRodTwvZGF5PgorICAgICAgICA8ZGF5PkZyaTwvZGF5PgorICAgICAgICA8ZGF5PlNhdDwvZGF5PgorICAgICAgPC9kYXlOYW1lcz4KKyAgICAgIDxtZXJpZGllbU5hbWVzPgorICAgICAgICA8bWVyaWRpZW0+QU08L21lcmlkaWVtPgorICAgICAgICA8bWVyaWRpZW0+UE08L21lcmlkaWVtPgorICAgICAgPC9tZXJpZGllbU5hbWVzPgorICAgICAgPGVyYU5hbWVzPgorICAgICAgICA8ZXJhPkJDPC9lcmE+CisgICAgICAgIDxlcmE+QUQ8L2VyYT4KKyAgICAgIDwvZXJhTmFtZXM+CisgICAgPC9jYWxlbmRhclN5bWJvbHM+CisgICAgPGRhdGVQYXR0ZXJucz4KKyAgICAgIDxkYXRlUGF0dGVybiBuYW1lPSJmdWxsIj5FRUVFLCBNTU1NIEQsIFlZWVk8L2RhdGVQYXR0ZXJuPgorICAgICAgPGRhdGVQYXR0ZXJuIG5hbWU9ImxvbmciPk1NTU0gRCwgWVlZWTwvZGF0ZVBhdHRlcm4+CisgICAgICA8ZGF0ZVBhdHRlcm4gbmFtZT0ibWVkIj5NTU0gRCwgWVlZWTwvZGF0ZVBhdHRlcm4+CisgICAgICA8ZGF0ZVBhdHRlcm4gbmFtZT0ic2hvcnQiPk0vRC9ZWTwvZGF0ZVBhdHRlcm4+CisgICAgPC9kYXRlUGF0dGVybnM+CisgICAgPHRpbWVQYXR0ZXJucz4KKyAgICAgIDx0aW1lUGF0dGVybiBuYW1lPSJmdWxsIj5oOk1NOlNTIEEgWjwvdGltZVBhdHRlcm4+CisgICAgICA8dGltZVBhdHRlcm4gbmFtZT0ibG9uZyI+aDpNTTpTUyBBIFo8L3RpbWVQYXR0ZXJuPgorICAgICAgPHRpbWVQYXR0ZXJuIG5hbWU9Im1lZCI+aDpNTTpTUyBBPC90aW1lUGF0dGVybj4KKyAgICAgIDx0aW1lUGF0dGVybiBuYW1lPSJzaG9ydCI+aDpNTSBBPC90aW1lUGF0dGVybj4KKyAgICA8L3RpbWVQYXR0ZXJucz4KKyAgICA8ZGF0ZVRpbWVTeW1ib2xzPkd5TWRrSG1zU0VERndXYWhLelo8L2RhdGVUaW1lU3ltYm9scz4KKyAgICA8bnVtYmVyUGF0dGVybnM+CisgICAgICA8bnVtYmVyUGF0dGVybiBuYW1lPSJudW1lcmljIj56LHp6OS56eno8L251bWJlclBhdHRlcm4+CisgICAgICA8bnVtYmVyUGF0dGVybiBuYW1lPSJjdXJyZW5jeSI+JHoseno5Ljk5fCgkeix6ejkuOTkpPC9udW1iZXJQYXR0ZXJuPgorICAgICAgPG51bWJlclBhdHRlcm4gbmFtZT0icGVyY2VudCI+eix6ejklPC9udW1iZXJQYXR0ZXJuPgorICAgIDwvbnVtYmVyUGF0dGVybnM+CisgICAgPG51bWJlclN5bWJvbHM+CisgICAgICA8bnVtYmVyU3ltYm9sIG5hbWU9ImRlY2ltYWwiPi48L251bWJlclN5bWJvbD4KKyAgICAgIDxudW1iZXJTeW1ib2wgbmFtZT0iZ3JvdXBpbmciPiw8L251bWJlclN5bWJvbD4KKyAgICAgIDxudW1iZXJTeW1ib2wgbmFtZT0icGVyY2VudCI+JTwvbnVtYmVyU3ltYm9sPgorICAgICAgPG51bWJlclN5bWJvbCBuYW1lPSJtaW51cyI+LTwvbnVtYmVyU3ltYm9sPgorICAgICAgPG51bWJlclN5bWJvbCBuYW1lPSJ6ZXJvIj4wPC9udW1iZXJTeW1ib2w+CisgICAgPC9udW1iZXJTeW1ib2xzPgorICAgIDxjdXJyZW5jeVN5bWJvbHM+CisgICAgICA8Y3VycmVuY3lTeW1ib2wgbmFtZT0ic3ltYm9sIj4kPC9jdXJyZW5jeVN5bWJvbD4KKyAgICAgIDxjdXJyZW5jeVN5bWJvbCBuYW1lPSJpc29uYW1lIj5VU0Q8L2N1cnJlbmN5U3ltYm9sPgorICAgICAgPGN1cnJlbmN5U3ltYm9sIG5hbWU9ImRlY2ltYWwiPi48L2N1cnJlbmN5U3ltYm9sPgorICAgIDwvY3VycmVuY3lTeW1ib2xzPgorICAgIDx0eXBlZmFjZXM+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iTXlyaWFkIFBybyIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9Ik1pbmlvbiBQcm8iLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJDb3VyaWVyIFN0ZCIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IkFkb2JlIFBpIFN0ZCIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IkFkb2JlIEhlYnJldyIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IkFkb2JlIEFyYWJpYyIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IkFkb2JlIFRoYWkiLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJLb3p1a2EgR290aGljIFByby1WSSBNIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iS296dWthIE1pbmNobyBQcm8tVkkgUiIvPgorICAgICAgPHR5cGVmYWNlIG5hbWU9IkFkb2JlIE1pbmcgU3RkIEwiLz4KKyAgICAgIDx0eXBlZmFjZSBuYW1lPSJBZG9iZSBTb25nIFN0ZCBMIi8+CisgICAgICA8dHlwZWZhY2UgbmFtZT0iQWRvYmUgTXl1bmdqbyBTdGQgTSIvPgorICAgIDwvdHlwZWZhY2VzPgorICA8L2xvY2FsZT4KKzwvbG9jYWxlU2V0PgorZW5kc3RyZWFtCitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL0xlbmd0aCAxMQorPj4KK3N0cmVhbQorPC94ZHA6eGRwPgorZW5kc3RyZWFtCitlbmRvYmoKKzggMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAxCisgIC9LaWRzIFs5IDAgUl0KKz4+CitlbmRvYmoKKzkgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCA4IDAgUgorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorPj4KK2VuZG9iagoreHJlZgorMCAxMAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNSAwMDAwMCBuIAorMDAwMDAwMDE5OSAwMDAwMCBuIAorMDAwMDAwMDM1OCAwMDAwMCBuIAorMDAwMDAwMDUzNCAwMDAwMCBuIAorMDAwMDAwMTIyOCAwMDAwMCBuIAorMDAwMDAwMjQ3MiAwMDAwMCBuIAorMDAwMDAwNTk4MCAwMDAwMCBuIAorMDAwMDAwNjA0MiAwMDAwMCBuIAorMDAwMDAwNjEwNSAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAxMAorPj4KK3t7ZW5keHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMveGZhL3hmYV9jb21ib2JveC5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy94ZmEveGZhX2NvbWJvYm94LnBkZgppbmRleCAwOTg5MzYxLi5hNGI2MDZjIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy94ZmEveGZhX2NvbWJvYm94LnBkZgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy94ZmEveGZhX2NvbWJvYm94LnBkZgpAQCAtMjI0LDcgKzIyNCw3IEBACiBlbmRvYmoKIDkgMCBvYmogPDwKICAgL1R5cGUgL1BhZ2UKLSAgL1BhcmVudCAyIDAgUgorICAvUGFyZW50IDggMCBSCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgogZW5kb2JqCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy94ZmEveGZhX2RhdGVfdGltZV9lZGl0LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3hmYS94ZmFfZGF0ZV90aW1lX2VkaXQucGRmCmluZGV4IDA0ZWEyMzkuLjMzZjAyYmQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvcmVzb3VyY2VzL3hmYS94ZmFfZGF0ZV90aW1lX2VkaXQucGRmCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3hmYS94ZmFfZGF0ZV90aW1lX2VkaXQucGRmCkBAIC0yMTksNyArMjE5LDcgQEAKIGVuZG9iagogOSAwIG9iaiA8PAogICAvVHlwZSAvUGFnZQotICAvUGFyZW50IDIgMCBSCisgIC9QYXJlbnQgOCAwIFIKICAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KID4+CiBlbmRvYmoKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3hmYS94ZmFfaW1hZ2VfZWRpdC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3hmYS94ZmFfaW1hZ2VfZWRpdC5pbgppbmRleCAwZTM2ZmRkLi5hM2JkYWU2IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy94ZmEveGZhX2ltYWdlX2VkaXQuaW4KKysrIGIvdGVzdGluZy9yZXNvdXJjZXMveGZhL3hmYV9pbWFnZV9lZGl0LmluCkBAIC0yMSw3ICsyMSw5IEBACiAgICAgICAgICAgPGltYWdlRWRpdCBkYXRhPSJlbWJlZCIvPgogICAgICAgICA8L3VpPgogICAgICAgICA8dmFsdWU+Ci0gICAgICAgICAgPGltYWdlIGNvbnRlbnRUeXBlPSJpbWFnZS9qcGciPkZPT09FWTwvaW1hZ2U+CisgICAgICAgICAgPGltYWdlIGNvbnRlbnRUeXBlPSJpbWFnZS9qcGciPgorICAgICAgICAgICAge3tpbmNsdWRlIC4uL21vbmFfbGlzYS5mcmFnbWVudH19CisgICAgICAgICAgPC9pbWFnZT4KICAgICAgICAgPC92YWx1ZT4KICAgICAgIDwvZmllbGQ+CiAgICAgPC9zdWJmb3JtPgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMveGZhL3hmYV9pbWFnZV9lZGl0LnBkZiBiL3Rlc3RpbmcvcmVzb3VyY2VzL3hmYS94ZmFfaW1hZ2VfZWRpdC5wZGYKaW5kZXggNzQ5NjM2Ny4uZDM1ZWY1ZCAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMveGZhL3hmYV9pbWFnZV9lZGl0LnBkZgorKysgYi90ZXN0aW5nL3Jlc291cmNlcy94ZmEveGZhX2ltYWdlX2VkaXQucGRmCkBAIC03Miw3ICs3Miw3IEBACiBlbmRzdHJlYW0KIGVuZG9iagogNSAwIG9iaiA8PAotICAvTGVuZ3RoIDY2NworICAvTGVuZ3RoIDkwMDUKID4+CiBzdHJlYW0KIDx0ZW1wbGF0ZSB4bWxucz0iaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtdGVtcGxhdGUvMy4zLyI+CkBAIC04OSw3ICs4OSwxMTcgQEAKICAgICAgICAgICA8aW1hZ2VFZGl0IGRhdGE9ImVtYmVkIi8+CiAgICAgICAgIDwvdWk+CiAgICAgICAgIDx2YWx1ZT4KLSAgICAgICAgICA8aW1hZ2UgY29udGVudFR5cGU9ImltYWdlL2pwZyI+Rk9PT0VZPC9pbWFnZT4KKyAgICAgICAgICA8aW1hZ2UgY29udGVudFR5cGU9ImltYWdlL2pwZyI+CisvOWovNEFBUVNrWkpSZ0FCQVFFQVpBQmtBQUQvL2dCU1JtbHNaU0J6YjNWeVkyVTZJR2gwZEhBNkx5OWpiMjF0YjI1ekxuZHBhMmx0CitaV1JwWVM1dmNtY3ZkMmxyYVM5R2FXeGxPazF2Ym1GZlRHbHpZVjltWVdObFh6Z3dNSGc0TURCd2VDNXFjR2YvMndCREFBWUVCUVlGCitCQVlHQlFZSEJ3WUlDaEFLQ2drSkNoUU9Ed3dRRnhRWUdCY1VGaFlhSFNVZkdoc2pIQllXSUN3Z0l5WW5LU29wR1I4dE1DMG9NQ1VvCitLU2ovMndCREFRY0hCd29JQ2hNS0NoTW9HaFlhS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvS0Nnb0tDZ29LQ2dvCitLQ2dvS0Nnb0tDZ29LQ2dvS0NqL3dBQVJDQUI0QUhnREFSRUFBaEVCQXhFQi84UUFIQUFBQWdJREFRRUFBQUFBQUFBQUFBQUFCUVlFCitCd0VEQ0FJQS84UUFPeEFBQWdFQ0JRSUVCQVFGQXdNRkFBQUFBUUlEQkJFQUJSSWhNUVpCRXlKUllRY3ljWUVVa2FHeEZVSml3ZkFqCitKT0VXRjlFbE0xTEM4Zi9FQUJvQkFBSURBUUVBQUFBQUFBQUFBQUFBQUFJREFRUUZBQWIveEFBdkVRQUNBZ0lDQWdBRUJRUUNBd0FBCitBQUFBQVFJUkF5RVNNUVJCQlJNaVVUSmhjYUd4RkNOU2daSHd3ZUh4LzlvQURBTUJBQUlSQXhFQVB3QnFpSUNoVDV0N2dFWXdYMXNzCitKVWJZMEVyS0JIcEZ1NDk4UTNmUktUTW1KVk5tMlBPbzkvdGlHMmtURkcrRmZJQXE5dDJ0YTJCdHZzS3RrcUttREUyVWdNRGlVbjJDCiszdWdUbnZWR1JkUHk2TTJ6S0ZKeHYrSGl2TE42aTZMdVB2YkRzYWxQYVJQeTI5Q3cvd0FZT24xa1BnVW1ZUzNPeFpVakp2d2JGcmdZCitmSHg4aHppcUNWRjhWK25hbVZVblN2b2p6cWxwOVNrRDNRa1lHV0thNjJTc1k1WlZtVkRtbE1LbkxhbUNxZ3Z1OGJCZ1BZamtINjRVCiszeC9GcGtjV0Y0eVQ4b0c0MzM3WUJ6ZFVnVkhlekV3TjFOMUJ4enVyc2xKR0kxdVNwSkczYnZqbGV3MmJZVU4rZlMrQ2oxMkRKa3FFCitXTmdPZUw0T002NkFhTnNjWGtiMnZ6aVZLNDdaRDBJa2NHMXIvWC9QdGhWV0ZaTFJOS3FBQWRpQ1Q5Y0MxOWprNzdNUnBxSUxLTmpmCitpL3RiQ3BjdWc0MFNvb0F6NnROeWZMc09QYkJRaHNsc3JING4vRUNYTGErVHA3SVp2QnJ4YU9wckVYVTBGeDhpZjErL2EvcmkzaThlCisxem4xL1A4QTZCYTZvUjhoNllxWThzektzaHBhdWFXZE5DekJIa1ppZm1Zazc3OGZmQVp2SVU1UWczcE1zUWc0eGJTMkttY1pRS1BVCithcW1xSXRWaHFlRXFMOXJuR2hqemMzU2FaWHlZNjNRR0R2U3VKYVNjb2ZWZk1wNTdZc09QTFVrTFVuSGNRcGxYVUZmUVpyRlY1YksyCitYWmtsbDhTRVdSeDZNbkJCOUQrbUV5d3BwcVcwTitieS9VNlkrRXZYZFAxcmxySktrVk5uVk1BdFZUTHNyRGdTSjMwbmoyTzNwakx6Cis0WGhsWHIwZCtKV2g2ZUpRQ3kyYjZERU9LQVQrNTVoUXJZc05yVzk4VEgyUzJUb0FBVFlHNUd3STR3VXFTWVBadVNFQk5YQUlCTzJFCis4ZU8wVFo4VVpWdGY1aHZiRTdSSFlrUVJHNmtpeDdmMnd1TW5leGpyMFN2RFppcXBmNmRzSDMwRDEyYklLZTc3Z25hN1c3YllIYmJDCit0SUZkZjlSMC9SM1M5Vm1jcklKRkhoMDZ0L1BLUjVSYmsrdjBHTE1JU2sxQ0syd0UwM2JlZ1A4QUNIb21taHk2TE04empocU0wcWY5CitlZW9sakVqaG0zc0w3RDdiKytLbVhLOCtUaW45SzBsK2hjVWZsd1RyYkxYRkhDQUJmdFlkdnR0aGJqUkhOZ2pPc29pcUthYUo5VHF5CitrRldBS244OFZzaXA2SHdsZlp6VjhSK2tLZWlrZVNqUzEyOHdDRCsyTlQ0ZjU3eWZUUDBJOGpDbHRGV3lKSkVYdWwwdllrTGNlNEp4Cit0cVNmUlJvSjlLNS9XZE5kU1VPYjVhN2lXbWJVVlBFa1pJMW8zcUN0L3dCTUJteExMamNQK1AxSWpPcFd6dHZKYStselRKNlBNcUY5CitkSlZ4TExHNDdxd3VQcGJpMk1xUDBPcGQ5QnlWOUUyS05XRjk3QWJOaVdsdTJjck44Y0lBQklGeHlMN1lXMnlUWkdobE5yN2VsdHNjCituWkQwWmtweUkrKzErY01jVlZnM3NVVVdNeFJ0SHBiVmMzR0tyNHZvWXJNMDYzazMyWUVpOXQ5emhpVFhSREpWSEF6U0IzdW9LMkYvCitiRXdtNHU3T2FUMFVMOGNzOVRxSFBzcXlaRUgrbld4YVd2dXVzN0tCNmtlWW42RHRpNWd5U201Wm4wa3lmbHJHbEJkdGw3ZE5XcDZGCitGWTJhd1UzOVJqRnh4MWFOSEo5ZzZwZFdhNUxYM0o5TVMyN2FFMHV5SFhpU1JDRk45ckczT0VUaHlHeGFRaTlVZE9wWHd5Q1cxbXVECitiL1BiQzRKNFpja05kVFZNNXU2M3k1Y3B6ZWVtaWxDUUR6ZWJ1ZmY5Ylk5UjRlVjVjYWsrek16eFVKVWhWbWJVTlF0Nlc5YkMrK0xwCitXYVNPanZnVDFKSy93K2hvNW10SGw5WTFPRDZvMXBCOWhyUDVZeS9NaHhtNjk3R3AzV3kwYVhOaE5Nc0lZaTI5dTFqMnYzN1lxN2ZaCitMZXRCMDFhckU1REtWUWFSWThtKy93RGJIVXhUbnZRUnBsdmJjYVR1TCsvR0lYZE1ZMmJ3YnhGZDJ3WE50VUQwN0tNeXZxaWQzV0duCitMdnFzekYwUElCOG8vTGZFYWlyWk5UOUQxMDltWXpTbU1pUmFKVWtNYmpteElEQ3graHdhY3BORUthZGszTnEzOEhsRThvR3B2dzdzCit0aHZjS2RzTGxHNlRDVXQwamtickNzYVhyYW16Q0dTTnIxME1ta2ZOclVxdHhmc1FCdGpTOGVQOWh3ZjJmN2pKMjVLUys2THYvd0M2CitWQkRsUXEwbFNpcEVtL0RocXBaU2RkcjJJUkcwOEg1aUR0eGpHWGk1WEpRanQxZmE2TDd5UXJreDFuNnAwZEtTWndJd0FFNHZjYStCCitZOTczQisrS1hKeWZGZDlCL0xTMnhMVHE3TktiSVd6dk9mSHBhZVJ4R0ZXa2tuSUxmS0NGc0JlM3JnL2xLV1I0OGNyL0FEYnBIY21vCiszSkFPTHJqcUhQY3dpbzh1eWVhb2hjai9BSFVhU0pHQnY1anJVYWJXNFA2NHRUOFhIamp5bmszOXRYK3dyNWttNmpFclA0b1VNOE9kCisrSlVmTS96Qzk5L3JqVCtHWll2SFNSVjhsTlNWaVNtbUYyWFVyTTF3UWVmZTJOVHNwN3VpeC9oSldGS0ROYVVNVmlNMEU1QVlnc05KCitVaS8yR0tIbVIvQy9aUFdpNU1remd5a3hNWWxBQnN6Q3h1UDMyeFZVRnNHV1IrdzFMbTBjTkpIR0FKUkl3M1UzMDJiZmJuZTJJcGRzCitTT1hUOVVLcUVzSExKcUJIMEhiRktWcVNUTHFhYWRCeUovRDFGZ2JXMnZodU8wN0JiWFJ5ZFFab2N2cXFjbEpDVzMxWEEzSXNTZTF6CitmYkZpV0huZEMxa3JRZnlMcmw2VEk1S0tGTkZUR0RhVUxmVTF5R0ovTlFDZTJBeVlKSi9UMEhqa2t0azJsNnRtb1RtVkkwelNyQkVxCit3eVNHNVJtWnRoYzhBWEl4UHkzS0NaeTFPaWp4b2k2N3lpS1VmN2VITkkxWjczRER4UmNrK3Y4QTR4b3Uvd0NubFhiaS93Q0JxZjF4CisxN093UDRUQlcwNVJKcWlKVEo0akJRdTdYM080Tmo3akhtRkJUanlUTk56Y0hSbzZpb1VrNmNrcHJCWUdsQkZ4ZllmL0FJTWR3YVdpCitMVGV5YmxHWFJuTFlZV3FhaU93c2RERGY4N2pFTEZ5VlNPbE54L0NhYTVhYktLZGpDWkdMM0xOSTVZbkM1cFFkUlFVTGtyWnl6OFljCit3TloxRzNoRnJJZUIyL3kyUFJmQ1ljY052MlovbHU1VWhFY3VYRXJXWUhkaWJiRS8yeHExWlJIejRWcE5QMUJWVTFJMGkrUFJseXEyCithNVYxUC8yL1hGUHlvcFFUZm9KTGs5Rnk1VFJWa01qdkxUVk1wQTNackhldy9JL2J2aWp5VzlrU2cwdWlXSUsyUFNZYUdwWUE3Q3d2Cit4eVQzeHpVUkx2c2F1a3Eyb3BKU0tpQ1dKR0p0WkNkejlzSmxGZHBqTWMydE1iSk14UXFieU1DYjhqQVBJMXNjbFp5UG1NQloyWlpXCitHa2VKcUxhaXg0QSttTk9EcjBJYU5iTVlpRERKSUFiZ01CYlVwQU80RjlyMy9LK0oyeWFUN0FHZVZkVFl0SElHMVB1M3FUY2JuN244CitzV01VVlFTYjVDM21GYXlyR1lYYThiaHlyZGlEZGJIdnhoMFlKNkd6bnBVZGs5STlRSm11VVVjaU9DMDBhRVhPMWlBZjc0OGpOUEhjCitINmRHeTZuVWdOOFFPdWFmcHFsb3FHdHkrdGtyNW0zaWlGdzY4YWxiaGh4eHY2NGI0K0NlZGFhU1gzRVRsSEc3ZTdHTHBQTXpVOU9VCitsWlZSUzBrcmh2OEFRbFBuVWFqcHY3MnRoVFNnMnJ1Zy93QVNURnpyVE5aVEN5d2drcjlzTGpIbkpYNkRrNldqbUxyQ29hb3plV1I3CitzZFIyYnR2d2NlcThWVmpTUmxadnhBYVdjTkVwSzJmK2F4UEdMQ0VNTmRMVk1rV1lSbUpuOFVrcXBIdUxmODdlbUJ5eHVMdm9oN0xiCit5bk04d3BoclNTcmpCOHhXMWxKMi93QTdZb05LblFEZWc3SDFEWG9vQW1yRmNrV1VibjlyZHNROGE5Q3FEdEIxWFVKdlV6aDEyMDJzCitEdjYyNXRnSndYVkVwdEs3Q1k2amxxb2lzVHlnZ2dHeTdnZXVGY0Zka2NtL3BiT2RwYTd4cFF6Q1h6ZVFHMnMyN1dPTkNNS0hIcHBuCitsSGhxZzFLYmhodGZqa0czN2V1SkJlMlE4MXk5Mnk4dk02SFV5MkFJOHAzUDl0Ly9BRGdvWlZ5MGlZSjNRcVRoSTROQlZaSm1jM2JrCitxQjZmWEZsTnQyTnRjYTlsNWZBN3FXbHpUcDZQSjZpcE5QbVZJREdyZ2pWNGQvS3d2emE5dnRqem54WEJLR1I1SyttWDhtbDRtVlRnCitvZTBXUjFPbFI0VVVacmN3cUhVWFNkY3ZqazI5eUxBZmxqTjBwVy81TFhvaDVEQTFOTVpzenJLeXJuMDdMS2lva1lIb0ZISnVOeVRpCitaU2pKclZWK29LWDUyTHZYR2N3RHhJNDJCWWdqYmZlMjJIK1BpNXkyTHlUcFVjL1o5S1pjd1oyWWwyYS90N0RIcU1LU2pTTXZLOWd5CitWbHZaQ1J0cCt2cWNOUXR1bUZNaERmaklXaWZTOXdiM3RheHd2SkpLTE9pckxscGxqamRZaXVsbkYvS2ZOdU5oeDkrY1puUFRkQzNICitWQkNTalV4cVpGT2xQTUNVNzdrbmIyeEhOTjdZRk0zMGNrRVFJQVhUZlk2Zk1MZDhUcjJDeWZKbnNVS2xJVUxOZnNQbDU1UHB4aUpRCitWMkZHMGlrcUtvTGxScFJsYlNDakM0Ty9GcjhrKzk4YUVvL2NhSGFXWXlPVk1PWEJSSVdDU0hZajZmZkNaeFhhYklvTDVobDAvd0QwCis1V3lTSlFORWtRbVVSaGlXQ2tHMWp5UUwrK0VKcm10aklxaXA4eDhKcG5ua1JYWnlRTlBDMjduMTJ0alNpcTBUcnRrR090bG9jemlxCitzdWxscDU0U0dqa0RXYSszK1d3YzRLVWVNOXBrVzRTdUxPaStrZmpybHo5UHh3WjByMCtaSWdXVFNsMGYrb2ZYMHg1L1A4S3l3ZjhBCithM0grRFJ4K1ZDZjR0TUVaL3dERXVPb0IvQTZVakk4MGtqQy81ZW1CeC9EWjk1RHA1MTFFcnZNdW9qVnZwcHIxRXpYSmZnTDMydnpqCitTeCtMdzcwVjVaTDYyTFZYU3krTzVaakl4Tnk5dGdNWExWVVYzRm9pblFpRys3V05pQisrRDdBSnVXekdKMUszQlVjbjdFWWlVTFZFCit4ZE95NnFMTm9UbDFMSVdFcjJYU1ZJc0dOcjc3ZDdqYjljWnJ3dFhFN2w3RGRWWHhWRVRlVjR5YktvUTcyN20zYmZDZmt4VXJCY3JWCitVUUJYd3E3R0pabVhScUtBY3RmMCt3dzJLYTBDNEpuMVRuRVRWSTBzQ0MxaUJHUFUvcCszcHRqcEp2czVRUzlpMVEwSVZVY3RBbG11CitQQ2pCL2NrZzRhNXhZd1BVcGlpWjFzclBxSG5idzlUYWh5QUJ6dGErSWt2OFVSRm0rb3FBMEVvOFZER1YwTXFrRURtNFAxNCsrRU8wCis5REUxMlVibmxHdFBuMVZUaDJhTkpMSVZUYytWU0FSdHY1Z01hMktWd1VnWDJCWlV1Nm5VUmNYSlk3M3c3c0dTb085QVJVY25XdVVRCis1Z2l5VWsxUUlYUnZsODRLaS8zSXhXOHZsOG1UaTZkQjRHbGtYSXRYcWI0V1U4SlkwRWNTV081QXVBTVpHSDRuS0w0ejJXc25qcDdSCitBeW5vblRJZ25qVXBjQ3lnajh2M3dlZnprMXBuUXh2MlRPck9sQlQ1Uy9nUnFpcW9KMnRiZmNrK21FZU41dkxKOVRHU3hhS2xxS2Z3CitpZ2RHVWdIeTI1QjR4dlJtbjBVWlJOb2c4R2pTV1FlUUZqYnR0WVlsVFRsUjBvMHJMTDZPekNpcU1zaEsxRlBTTHBXTzdnYXJqNXUzCitZbm5GREtwcHZ0Ly9BRUZSVEhWWWFjZ1EwdWRRU015bldHUzR0enpxeFV0eWR5UVRpcTBZZnBzZUhMV2F3YVlDNnUza1BvQ3Z1YjRPCitPV3ZwYkk0ZXpiVGRKeEMwcjFYaEl4MWFXOG9VbjF2L0FKdml2UHpJMzlEc2RIeDVQdFVWUG9uZU9WcGF5UktsS1pmQ2FKaUNkeVR2CitjazJGL3VNYVhLbnBhdllpaU1uVzFZOU93cXhUdE82QzB5blFvSXVvMUFBNzgvOEFHSHk4YUw2WU4wZU0xNnJyNXFlSHhnZ3BwMEN6CithWXdMTXJuZFR5TEd4OU1RdkhqdmZSMStoUHJhbWV2cjZpYVNacEpKWlMydmdzZXh0OWhpeEdLakZKRTIyZlpibHRabXRjdExRd3kxCitGUSt5SkdOUnYrMXZmSFR5UWhIbmtkSW1NSlNmRkxaZXZ3MytFVWNFeVYyY3poNmxma1ZSNUVidFluaysvdGpCOG40bTh2MFlWUy9jCit1NHZHVVBxbDJYRkpsNU1BV1lhaWJENWY4dGpJazBYRWpOTmtTSXhhMmpmYS93Q1dCYSt4TmtIUE1uU2FqZGJnRUl3SWJ2NlhIcGdWCitxWEpCSlhvNXpxc25FV2RHaklXUzhvVlNHK1hVOWg5YmIzSGJIcG9aK1dIbitSUWxqcVZFSHFPa0VORkRTcWlNcTFVeFczSkY3SDdYCitYajY0ZDQ4N2x5djBoV1Jhcjh3SmswYXJWQ0oyUlVKSjFNZGxiaXhQb2JZdDVIY1cwVjBpeXNpeVRNYTZybzJwcU9pMFJ2ZEhqazFLCisrMndJQkpJeGs1cHdqYWJld294ZDJocEhSdlUxVG1GRlhWR1phcG9UZGpxS2dlM05qMkgwQXhYbDVlT01XbEhzT09DVFk3WmpVVFVtCitWd3JMTCtKclZHeUtDZGJEMVA4QUx6M09NekRINjNKYVRMa3A4WTE3S0c2azhPT0tvcEtHSXZJSTFHdXhCdHhiMkc1NS92ajBIanFUCitseW0vWlRsVlVoUHFxQS93V1JFVlM4VWhhK20rdzJJQi9MakdncHJtaERUSTJhd3V1VlV4bUxxSTQ5S3FleDFFMlB2dWNkR1Z6ZEUxCitTc0cwY2NrdFNxeFgxRHZiZ2VwL1BCdDByT2lyZWpwajRDOUlKUTVUTFdUeFhucVcxSzlpQ1l4OG90NkhuN2pIbWZpZmtQTmxVVTlMCisrVFZ3WS9sdy9ObDAwOUl2ZzJDZ1dzUmNjSEZTTnBXaVc3ZEdXaWp1QkdMWGJBUFlhMTJiV2owd0d4NzhXeE1sVVFVOWk5MUFxcFN6CitDVW53eXA0OThWY2psZEQ4Wno3RUlhVE9xZDZka2xsL0V1a2pXdUNRYmtxU2VOeWZYdHZqMEQ1VHh2a3ZWbFoxRmlQMURYdkptd2ljCitxUkNXTi9mVWY3M3hxZVBqVWNkcjJVTXN2cVBhNUxWVlZHODhkTks4UllCTktuaTNKdDYyd1h6NHhiaTJGeGJWMEZ1bTgwcUtldlNuCitxWlhwcDFrQ2hpbGliOGJZUjVHRlNpNVIyTGFmUmZHVzlSUjFGSEZCVXh6eUdNSlR1SXhwQWZnQVh0ZmIxOTc0OC9PRFQyV1l6MGU2CitsNkdPbldWelh4cjRuaHA4dXJVYjNCQmEvd0J6aFAxY3RmdUU2clpWT2UwYU5Dc2thdVhTTzdLdzBySU8yL3BlMzZZMXNHUnAwMlZwCit4ZFdLZWVTMDJWNVBHczBhTFVNUmFQdVNNYUdMbmx5V25vQnBSVnNRYXlwbHE1REpNUVZESFNuWmZZWTBJeFNXaFRkbHAvQjNwTVp0CitSelZrc1BpWGEyKzFnUDJBMk54dmpIK0plWThjbENKZjhURW11VE9tK2s4cEdVNVZCVDY5Y2lMdWJXMUgxQXhoT1RjbTM3TGNwV0h3CitCWURhL2UrRHU5QUw3bURHUnAzSU9xOXNRNHZvbS9aOVVKcVcxckViSHZnWkhKN0V2clZvNDhxcUJKSmE2RlRjSGs5dlU0UmR6aWtXCitJOU1wU29wWjZpdENVZEdvVUVrdXloVURYVzl6ZmJnYmNYeHRRbWxHNVMzL0FPQ3JrVDZpaVprbnc1cGF1cm1xNUpSbUZiSzVaMVNJCit5eHExNzI3THRmZTU3WVhrK0pUU1VJcWwrNEM4Wlc1Tmh2T3Nsb2FPa1pNd3pHS0lSLzhBdEpOVnJDTDhHeXhydWVSdGZBWWN1U1RrCis0eDMrbC95Rk9NVXRzcHZxNU10anJVZWpxRjhZZk0wYzByZ2VuenFQME9ON3hua2NXcHIrRFB5MWVpVDB2MTdYWlV3aHFKbWVFRUJKCitsVlF3UDlSTndkdS9Jd3J5UEFoa3VVZE1uSGxjZE10VEovaUhQRENHekZFWkpQS3IrRW1wYkRjdHBBNTlUdmpNbjRiYittaTFHUUtwCiswbXlkMnJNOHJxZW5nQzZwVWxkVzJLN1dVRWtYK3ZOaGJBNWF6L1JoaTIvMG9oZlJ1V2ltK3I4M0dkNTlQVnhLMGRLdmtwNDdXc2c5Cit2Zm5Ib2ZHd2ZJeHFEZHYyVWNrK1VyUU1qamFRckNwYnpEZzg0YmFRTk02SitEdWUwMlZ3ZmdjNVhSUzJEeFM2U0ZGK2RRL0t4KzJQCitNL0VjRGxrK2JEL1pxK1BsU2h4WmZGUFhVdFRSR3FwcWlPU01qVjRpc0NDUHJ4M3htOGxYMkQ0dXlUU0ZwUnJJSVU0T0tzNlRyUk9BCitUUWUvSUdIcU9oTGJzMVNlR2dZSG42Mkgxd3VTRFRiSzg2MnJxR09PWkRMcllBL0pKcEFKRzR2MjJ2NzJ4V1dKem1taC93QXhRVk1xCitQTWV0TWxvSkpIYU1aaFUySWpodGFGZTNIODNibkd2aitIWnNpL3hYN2xWK1JGTzNzV00rK0pPZFZrZmd6Vnk1ZlNxRHBwcVJMRURpCis1dHNQMFB0aS9nK0Y0b2JybCtiRXk4bHZyUWpWdWMxVXh2OEFpWnlwL3BBMyt1K05LT0NFVlZGZHpiN1lQZWVSeUxzN0c5enJhK0RTCitTQWI5bUk5UUcxaXJIY0RnNDZqaHg2VW5scWYvQUV6WVRJQzhiamN0WUVsU09EdGM3K24weFV6NDFIKzUvd0IvVXRZSnVYMFAvdjVBCiszcm1lcS9pMzhQcWxlTVU0MU9qQzEyTnorZ05oOWNUNFVZOE9jZlluTmFmRitoWmJielh2N1c3NHQwSURtUVFKSkk4MVRmU0dBdUR4Cit0ZSsvK2NZUmxiV2tHbDl4c2p6WWl0cElxWU1rc3FEUU5meUtDYmszMnZZSG4vNURGVDVTYWJsNkdxZFBRY3lqTkpUSTZaZk8xS3NWCit0YlU4dWdzeDMzSERBRGZqODhWOG1CTlhKWFk2R1Y5SWRzcytJV2Y1ZXBpL2lhVDZBQXlWRk9DUmUxaGRiZW81djJ4VmZpUTdpbXY5CitqVmxUN0M4SHhacm85NUlLQ2NLYkY0eTRKL1EvVEFmMGt2OEFJSnpoM1JFejc0cFZFMU5JYlU5RERHdDVKU1MrL1pGSUZ5MSt3MytnCiszd0VmRGNwVjJCTHlJcGZTVkQxRDFmNDBGVTVtOEpwemFPSlY4U1oxNTFNU2RNWU56dHV4eHE0UEQ0dGE2LzQvMTl5dFBOWWpQWFN5CitFK0NDdDk5aVN4UHFUeWNhS2lrVjA3QzJYNWJDbEkxYlZndEhUamRiN1NQdlpmenQrdUZTbkxrb3g3WVZMc2hWY2FSS3Nla2E3TnlOCitnYkwvQU00YkZ0blBRTFdPUW02cTVBQko4cDQ5VDdlK0Q1QWJaNlZ2bU5oMnNMOFk2eVZZUnkrcWVtcWFhZExpU0Z3NHNPYmR0OFJKCitjb3RQMkhHVGk3WFovOWs9CisgICAgICAgICAgPC9pbWFnZT4KICAgICAgICAgPC92YWx1ZT4KICAgICAgIDwvZmllbGQ+CiAgICAgPC9zdWJmb3JtPgpAQCAtMjIyLDcgKzMzMiw3IEBACiBlbmRvYmoKIDkgMCBvYmogPDwKICAgL1R5cGUgL1BhZ2UKLSAgL1BhcmVudCAyIDAgUgorICAvUGFyZW50IDggMCBSCiAgIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiA+PgogZW5kb2JqCkBAIC0yMzQsMTQgKzM0NCwxNCBAQAogMDAwMDAwMDM1OCAwMDAwMCBuIAogMDAwMDAwMDUzNCAwMDAwMCBuIAogMDAwMDAwMTIyOCAwMDAwMCBuIAotMDAwMDAwMTk0NyAwMDAwMCBuIAotMDAwMDAwNTQ1NSAwMDAwMCBuIAotMDAwMDAwNTUxNyAwMDAwMCBuIAotMDAwMDAwNTU4MCAwMDAwMCBuIAorMDAwMDAxMDI4NiAwMDAwMCBuIAorMDAwMDAxMzc5NCAwMDAwMCBuIAorMDAwMDAxMzg1NiAwMDAwMCBuIAorMDAwMDAxMzkxOSAwMDAwMCBuIAogdHJhaWxlciA8PAogICAvUm9vdCAxIDAgUgogICAvU2l6ZSAxMAogPj4KIHN0YXJ0eHJlZgotNTY1NworMTM5OTYKICUlRU9GCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy94ZmEveGZhX211bHRpbGluZV90ZXh0ZmllbGQucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMveGZhL3hmYV9tdWx0aWxpbmVfdGV4dGZpZWxkLnBkZgppbmRleCA2YjdlYWU0Li5lZWRkNmEyIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy94ZmEveGZhX211bHRpbGluZV90ZXh0ZmllbGQucGRmCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3hmYS94ZmFfbXVsdGlsaW5lX3RleHRmaWVsZC5wZGYKQEAgLTIyMSw3ICsyMjEsNyBAQAogZW5kb2JqCiA5IDAgb2JqIDw8CiAgIC9UeXBlIC9QYWdlCi0gIC9QYXJlbnQgMiAwIFIKKyAgL1BhcmVudCA4IDAgUgogICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogPj4KIGVuZG9iagpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMveGZhX3BhZ2VzXzhfMC5mcmFnbWVudCBiL3Rlc3RpbmcvcmVzb3VyY2VzL3hmYV9wYWdlc184XzAuZnJhZ21lbnQKaW5kZXggY2UwODljNC4uMmE4YTkxMCAxMDA2NDQKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMveGZhX3BhZ2VzXzhfMC5mcmFnbWVudAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy94ZmFfcGFnZXNfOF8wLmZyYWdtZW50CkBAIC02LDcgKzYsNyBAQAogZW5kb2JqCiB7e29iamVjdCA5IDB9fSA8PAogICAvVHlwZSAvUGFnZQotICAvUGFyZW50IDIgMCBSCisgIC9QYXJlbnQgOCAwIFIKICAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KID4+CiBlbmRvYmoKZGlmZiAtLWdpdCBhL3Rlc3Rpbmcvc2NvcGVkX3NldF90ei5jcHAgYi90ZXN0aW5nL3Njb3BlZF9zZXRfdHouY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2YjcwZGMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Njb3BlZF9zZXRfdHouY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8vIENvcHlyaWdodCAyMDIxIFRoZSBQREZpdW0gQXV0aG9ycworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2luY2x1ZGUgInRlc3Rpbmcvc2NvcGVkX3NldF90ei5oIgorCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dGltZS5oPgorCisjaW5jbHVkZSAiYnVpbGQvYnVpbGRfY29uZmlnLmgiCisjaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9jaGVja19vcC5oIgorCituYW1lc3BhY2UgeworCitjb25zdGV4cHIgY2hhciBrVFpbXSA9ICJUWiI7CisKKyNpZiBCVUlMREZMQUcoSVNfV0lOKQorI2RlZmluZSBTRVRFTlYobmFtZSwgdmFsdWUpIF9wdXRlbnZfcyhuYW1lLCB2YWx1ZSkKKyNkZWZpbmUgVFpTRVQgX3R6c2V0CisjZGVmaW5lIFVOU0VURU5WKG5hbWUpIF9wdXRlbnZfcyhuYW1lLCAiIikKKyNlbHNlCisjZGVmaW5lIFNFVEVOVihuYW1lLCB2YWx1ZSkgc2V0ZW52KG5hbWUsIHZhbHVlLCAxKQorI2RlZmluZSBUWlNFVCB0enNldAorI2RlZmluZSBVTlNFVEVOVihuYW1lKSB1bnNldGVudihuYW1lKQorI2VuZGlmCisKK30gIC8vIG5hbWVzcGFjZQorCitTY29wZWRTZXRUWjo6U2NvcGVkU2V0VFooY29uc3Qgc3RkOjpzdHJpbmcmIHR6KSB7CisgIGNvbnN0IGNoYXIqIG9sZF90eiA9IGdldGVudihrVFopOworICBpZiAob2xkX3R6KQorICAgIG9sZF90el8gPSBvbGRfdHo7CisKKyAgQ0hFQ0tfRVEoMCwgU0VURU5WKGtUWiwgdHouY19zdHIoKSkpOworICBUWlNFVCgpOworfQorCitTY29wZWRTZXRUWjo6flNjb3BlZFNldFRaKCkgeworICBpZiAob2xkX3R6Xy5oYXNfdmFsdWUoKSkKKyAgICBDSEVDS19FUSgwLCBTRVRFTlYoa1RaLCBvbGRfdHpfLnZhbHVlKCkuY19zdHIoKSkpOworICBlbHNlCisgICAgQ0hFQ0tfRVEoMCwgVU5TRVRFTlYoa1RaKSk7CisgIFRaU0VUKCk7Cit9CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Njb3BlZF9zZXRfdHouaCBiL3Rlc3Rpbmcvc2NvcGVkX3NldF90ei5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5Mjg5NTgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Njb3BlZF9zZXRfdHouaApAQCAtMCwwICsxLDI2IEBACisvLyBDb3B5cmlnaHQgMjAyMSBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpZm5kZWYgVEVTVElOR19TQ09QRURfU0VUX1RaX0hfCisjZGVmaW5lIFRFU1RJTkdfU0NPUEVEX1NFVF9UWl9IXworCisjaW5jbHVkZSA8c3RyaW5nPgorCisjaW5jbHVkZSAiY29yZS9meGNydC9meF9tZW1vcnkuaCIKKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvdHlwZXMvb3B0aW9uYWwuaCIKKworY2xhc3MgU2NvcGVkU2V0VFogeworIHB1YmxpYzoKKyAgRlhfU1RBQ0tfQUxMT0NBVEVEKCk7CisKKyAgZXhwbGljaXQgU2NvcGVkU2V0VFooY29uc3Qgc3RkOjpzdHJpbmcmIHR6KTsKKyAgU2NvcGVkU2V0VFooY29uc3QgU2NvcGVkU2V0VFomKSA9IGRlbGV0ZTsKKyAgU2NvcGVkU2V0VFomIG9wZXJhdG9yPShjb25zdCBTY29wZWRTZXRUWiYpID0gZGVsZXRlOworICB+U2NvcGVkU2V0VFooKTsKKworIHByaXZhdGU6CisgIGFic2w6Om9wdGlvbmFsPHN0ZDo6c3RyaW5nPiBvbGRfdHpfOworfTsKKworI2VuZGlmICAvLyBURVNUSU5HX1NDT1BFRF9TRVRfVFpfSF8KZGlmZiAtLWdpdCBhL3Rlc3Rpbmcvc3RyaW5nX3dyaXRlX3N0cmVhbS5jcHAgYi90ZXN0aW5nL3N0cmluZ193cml0ZV9zdHJlYW0uY3BwCmluZGV4IDUzMTQxZWIuLjFhOTlkOWEgMTAwNjQ0Ci0tLSBhL3Rlc3Rpbmcvc3RyaW5nX3dyaXRlX3N0cmVhbS5jcHAKKysrIGIvdGVzdGluZy9zdHJpbmdfd3JpdGVfc3RyZWFtLmNwcApAQCAtMSw4ICsxLDkgQEAKLS8vIENvcHlyaWdodCAyMDE4IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiAjaW5jbHVkZSAidGVzdGluZy9zdHJpbmdfd3JpdGVfc3RyZWFtLmgiCisKICNpbmNsdWRlICJjb3JlL2Z4Y3J0L2J5dGVzdHJpbmcuaCIKICNpbmNsdWRlICJjb3JlL2Z4Y3J0L3dpZGVzdHJpbmcuaCIKIApAQCAtMTAsMjMgKzExLDcgQEAKIAogU3RyaW5nV3JpdGVTdHJlYW06On5TdHJpbmdXcml0ZVN0cmVhbSgpID0gZGVmYXVsdDsKIAotRlhfRklMRVNJWkUgU3RyaW5nV3JpdGVTdHJlYW06OkdldFNpemUoKSB7Ci0gIHJldHVybiBzdHJlYW1fLnRlbGxwKCk7Ci19Ci0KLWJvb2wgU3RyaW5nV3JpdGVTdHJlYW06OkZsdXNoKCkgewotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBTdHJpbmdXcml0ZVN0cmVhbTo6V3JpdGVCbG9ja0F0T2Zmc2V0KGNvbnN0IHZvaWQqIHBEYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZYX0ZJTEVTSVpFIG9mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkgewotICBBU1NFUlQob2Zmc2V0ID09IDApOwotICBzdHJlYW1fLndyaXRlKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihwRGF0YSksIHNpemUpOwotICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBTdHJpbmdXcml0ZVN0cmVhbTo6V3JpdGVTdHJpbmcoQnl0ZVN0cmluZ1ZpZXcgc3RyKSB7Ci0gIHN0cmVhbV8ud3JpdGUoc3RyLnVudGVybWluYXRlZF9jX3N0cigpLCBzdHIuR2V0TGVuZ3RoKCkpOworYm9vbCBTdHJpbmdXcml0ZVN0cmVhbTo6V3JpdGVCbG9jayhwZGZpdW06OnNwYW48Y29uc3QgdWludDhfdD4gYnVmZmVyKSB7CisgIHN0cmVhbV8ud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oYnVmZmVyLmRhdGEoKSksIGJ1ZmZlci5zaXplKCkpOwogICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL3Rlc3Rpbmcvc3RyaW5nX3dyaXRlX3N0cmVhbS5oIGIvdGVzdGluZy9zdHJpbmdfd3JpdGVfc3RyZWFtLmgKaW5kZXggMDhhMjE3NC4uZmM0ZGMwMiAxMDA2NDQKLS0tIGEvdGVzdGluZy9zdHJpbmdfd3JpdGVfc3RyZWFtLmgKKysrIGIvdGVzdGluZy9zdHJpbmdfd3JpdGVfc3RyZWFtLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOCBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE4IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtMTAsMTggKzEwLDEzIEBACiAKICNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Z4X3N0cmVhbS5oIgogCi1jbGFzcyBTdHJpbmdXcml0ZVN0cmVhbSBmaW5hbCA6IHB1YmxpYyBJRlhfU2Vla2FibGVXcml0ZVN0cmVhbSB7CitjbGFzcyBTdHJpbmdXcml0ZVN0cmVhbSBmaW5hbCA6IHB1YmxpYyBJRlhfUmV0YWluYWJsZVdyaXRlU3RyZWFtIHsKICBwdWJsaWM6CiAgIFN0cmluZ1dyaXRlU3RyZWFtKCk7CiAgIH5TdHJpbmdXcml0ZVN0cmVhbSgpIG92ZXJyaWRlOwogCi0gIC8vIElGWF9TZWVrYWJsZVdyaXRlU3RyZWFtCi0gIEZYX0ZJTEVTSVpFIEdldFNpemUoKSBvdmVycmlkZTsKLSAgYm9vbCBGbHVzaCgpIG92ZXJyaWRlOwotICBib29sIFdyaXRlQmxvY2tBdE9mZnNldChjb25zdCB2b2lkKiBwRGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgRlhfRklMRVNJWkUgb2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkgb3ZlcnJpZGU7Ci0gIGJvb2wgV3JpdGVTdHJpbmcoQnl0ZVN0cmluZ1ZpZXcgc3RyKSBvdmVycmlkZTsKKyAgLy8gSUZYX1dyaXRlU3RyZWFtOgorICBib29sIFdyaXRlQmxvY2socGRmaXVtOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+IGJ1ZmZlcikgb3ZlcnJpZGU7CiAKICAgc3RkOjpzdHJpbmcgVG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiBzdHJlYW1fLnN0cigpOyB9CiAKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdGVzdC5nbmkgYi90ZXN0aW5nL3Rlc3QuZ25pCmluZGV4IDVhODUwNWYuLjZhZDJjMmQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvdGVzdC5nbmkKKysrIGIvdGVzdGluZy90ZXN0LmduaQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IDIwMTUgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycwogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTE0LDYgKzE0LDcgQEAKIHRlbXBsYXRlKCJ0ZXN0IikgewogICBpZiAoaXNfYW5kcm9pZCkgewogICAgIGltcG9ydCgiLy9idWlsZC9jb25maWcvYW5kcm9pZC9jb25maWcuZ25pIikKKyAgICBpbXBvcnQoIi8vYnVpbGQvY29uZmlnL2FuZHJvaWQvaW50ZXJuYWxfcnVsZXMuZ25pIikKICAgICBpbXBvcnQoIi8vYnVpbGQvY29uZmlnL2FuZHJvaWQvcnVsZXMuZ25pIikKIAogICAgIF91c2VfcmF3X2FuZHJvaWRfZXhlY3V0YWJsZSA9IGRlZmluZWQoaW52b2tlci51c2VfcmF3X2FuZHJvaWRfZXhlY3V0YWJsZSkgJiYKQEAgLTUzLDEyICs1NCw5IEBACiAgICAgICAgICMgdGhlIGRlZmF1bHQgc2hhcmVkX2xpYnJhcnkgY29uZmlncyByYXRoZXIgdGhhbiBleGVjdXRhYmxlIGNvbmZpZ3MuCiAgICAgICAgIGNvbmZpZ3MgLT0gWwogICAgICAgICAgICIvL2J1aWxkL2NvbmZpZzpzaGFyZWRfbGlicmFyeV9jb25maWciLAotICAgICAgICAgICIvL2J1aWxkL2NvbmZpZy9hbmRyb2lkOmhpZGVfYWxsX2J1dF9qbmlfb25sb2FkIiwKLSAgICAgICAgXQotICAgICAgICBjb25maWdzICs9IFsKLSAgICAgICAgICAiLy9idWlsZC9jb25maWc6ZXhlY3V0YWJsZV9jb25maWciLAogICAgICAgICAgICIvL2J1aWxkL2NvbmZpZy9hbmRyb2lkOmhpZGVfYWxsX2J1dF9qbmkiLAogICAgICAgICBdCisgICAgICAgIGNvbmZpZ3MgKz0gWyAiLy9idWlsZC9jb25maWc6ZXhlY3V0YWJsZV9jb25maWciIF0KIAogICAgICAgICAjIERvbid0IG91dHB1dCB0byB0aGUgcm9vdCBvciBlbHNlIGNvbmZsaWN0IHdpdGggdGhlIGdyb3VwKCkgYmVsb3cuCiAgICAgICAgIG91dHB1dF9uYW1lID0gcmViYXNlX3BhdGgoX2V4ZWNfb3V0cHV0LCByb290X291dF9kaXIpCkBAIC02OCwyNiArNjYsNDEgQEAKICAgICAgICAgdGVzdG9ubHkgPSB0cnVlCiAgICAgICAgIGRpc3RfZGlyID0gIiRyb290X291dF9kaXIvJHRhcmdldF9uYW1lIgogICAgICAgICBiaW5hcnkgPSBfZXhlY19vdXRwdXQKLSAgICAgICAgZGVwcyA9IFsKLSAgICAgICAgICAiOiRfZXhlY190YXJnZXQiLAotICAgICAgICBdCisgICAgICAgIGRlcHMgPSBbICI6JF9leGVjX3RhcmdldCIgXQogICAgICAgICBpZiAoZGVmaW5lZChpbnZva2VyLmV4dHJhX2Rpc3RfZmlsZXMpKSB7CiAgICAgICAgICAgZXh0cmFfZmlsZXMgPSBpbnZva2VyLmV4dHJhX2Rpc3RfZmlsZXMKICAgICAgICAgfQogICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICBfbGlicmFyeV90YXJnZXQgPSAiXyR7dGFyZ2V0X25hbWV9X19saWJyYXJ5IgotICAgICAgX2Fwa190YXJnZXQgPSAiJHt0YXJnZXRfbmFtZX1fYXBrIgorICAgICAgX2xpYnJhcnlfdGFyZ2V0ID0gIiR7dGFyZ2V0X25hbWV9X19saWJyYXJ5IgorICAgICAgX2Fwa190YXJnZXQgPSAiJHt0YXJnZXRfbmFtZX1fX2FwayIKICAgICAgIF9hcGtfc3BlY2lmaWNfdmFycyA9IFsKICAgICAgICAgImFuZHJvaWRfbWFuaWZlc3QiLAogICAgICAgICAiYW5kcm9pZF9tYW5pZmVzdF9kZXAiLAogICAgICAgICAiZW5hYmxlX211bHRpZGV4IiwKKyAgICAgICAgInByb2R1Y3RfY29uZmlnX2phdmFfcGFja2FnZXMiLAorICAgICAgICAibWluX3Nka192ZXJzaW9uIiwKICAgICAgICAgInByb2d1YXJkX2NvbmZpZ3MiLAogICAgICAgICAicHJvZ3VhcmRfZW5hYmxlZCIsCisgICAgICAgICJzaGFyZWRfcmVzb3VyY2VzIiwKKyAgICAgICAgInNyY2phcl9kZXBzIiwKKyAgICAgICAgInRhcmdldF9zZGtfdmVyc2lvbiIsCiAgICAgICAgICJ1c2VfZGVmYXVsdF9sYXVuY2hlciIsCi0gICAgICAgICJ3cml0ZV9hc3NldF9saXN0IiwKICAgICAgICAgInVzZV9uYXRpdmVfYWN0aXZpdHkiLAogICAgICAgXQorCisgICAgICAjIEFkZHMgdGhlIHVud2luZCB0YWJsZXMgZnJvbSB1bnN0cmlwcGVkIGJpbmFyeSBhcyBhbiBhc3NldCBmaWxlIGluIHRoZQorICAgICAgIyBhcGssIGlmIHxhZGRfdW53aW5kX3RhYmxlc19pbl9hcGt8IGlzIHNwZWNpZmllZCBieSB0aGUgdGVzdC4KKyAgICAgIGlmIChkZWZpbmVkKGludm9rZXIuYWRkX3Vud2luZF90YWJsZXNfaW5fYXBrKSAmJgorICAgICAgICAgIGludm9rZXIuYWRkX3Vud2luZF90YWJsZXNfaW5fYXBrKSB7CisgICAgICAgIF91bndpbmRfdGFibGVfYXNzZXRfbmFtZSA9ICIke3RhcmdldF9uYW1lfV91bndpbmRfYXNzZXRzIgorICAgICAgICB1bndpbmRfdGFibGVfYXNzZXQoX3Vud2luZF90YWJsZV9hc3NldF9uYW1lKSB7CisgICAgICAgICAgdGVzdG9ubHkgPSB0cnVlCisgICAgICAgICAgbGlicmFyeV90YXJnZXQgPSBfbGlicmFyeV90YXJnZXQKKyAgICAgICAgICBkZXBzID0gWyAiOiRfbGlicmFyeV90YXJnZXQiIF0KKyAgICAgICAgfQorICAgICAgfQorCiAgICAgICBzaGFyZWRfbGlicmFyeShfbGlicmFyeV90YXJnZXQpIHsKICAgICAgICAgIyBDb25maWdzIHdpbGwgYWx3YXlzIGJlIGRlZmluZWQgc2luY2Ugd2Ugc2V0X2RlZmF1bHRzIGluIEJVSUxEQ09ORklHLmduLgogICAgICAgICBjb25maWdzID0gW10gICMgUHJldmVudCBsaXN0IG92ZXJ3cml0aW5nIHdhcm5pbmcuCkBAIC0xMDYsNyArMTE5LDcgQEAKICAgICAgICAgfQogICAgICAgfQogICAgICAgdW5pdHRlc3RfYXBrKF9hcGtfdGFyZ2V0KSB7Ci0gICAgICAgIGZvcndhcmRfdmFyaWFibGVzX2Zyb20oaW52b2tlciwgX2Fwa19zcGVjaWZpY192YXJzICsgWyAiZGVwcyIgXSkKKyAgICAgICAgZm9yd2FyZF92YXJpYWJsZXNfZnJvbShpbnZva2VyLCBfYXBrX3NwZWNpZmljX3ZhcnMpCiAgICAgICAgIHNoYXJlZF9saWJyYXJ5ID0gIjokX2xpYnJhcnlfdGFyZ2V0IgogICAgICAgICBhcGtfbmFtZSA9IGludm9rZXIudGFyZ2V0X25hbWUKICAgICAgICAgaWYgKGRlZmluZWQoaW52b2tlci5vdXRwdXRfbmFtZSkpIHsKQEAgLTExNCw3NCArMTI3LDU5IEBACiAgICAgICAgICAgaW5zdGFsbF9zY3JpcHRfbmFtZSA9ICJpbnN0YWxsXyR7aW52b2tlci5vdXRwdXRfbmFtZX0iCiAgICAgICAgIH0KIAotICAgICAgICAjIFRPRE8oYWdyaWV2ZSk6IFJlbW92ZSB0aGlzIGRhdGFfZGVwIG9uY2UgYm90cyBkb24ndCBidWlsZCB0aGUgX2FwawotICAgICAgICAjICAgICB0YXJnZXQgKHBvc3QtR1lQKS4KLSAgICAgICAgIyBJdCdzIGEgYml0IGJhY2t3YXJkcyBmb3IgdGhlIGFwayB0byBkZXBlbmQgb24gdGhlIHJ1bm5lciBzY3JpcHQsIHNpbmNlCi0gICAgICAgICMgdGhlIGFwayBpcyBjb25jZXB0dWFsbHkgYSBydW50aW1lX2RlcCBvZiB0aGUgc2NyaXB0LiBIb3dldmVyLCBpdCBpcwotICAgICAgICAjIGN1cnJlbnRseSBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgYm90cyBidWlsZCB0aGlzIF9hcGsgdGFyZ2V0IGRpcmVjdGx5Ci0gICAgICAgICMgcmF0aGVyIHRoYW4gdGhlIGdyb3VwKCkgYmVsb3cuCi0gICAgICAgIGRhdGFfZGVwcyA9IFsKLSAgICAgICAgICAiOiRfdGVzdF9ydW5uZXJfdGFyZ2V0IiwKLSAgICAgICAgXQotICAgICAgfQorICAgICAgICBpZiAoZGVmaW5lZChpbnZva2VyLmRlcHMpKSB7CisgICAgICAgICAgZGVwcyA9IGludm9rZXIuZGVwcworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGRlcHMgPSBbXQorICAgICAgICB9CiAKLSAgICAgICMgSW5jcmVtZW50YWwgdGVzdCB0YXJnZXRzIHdvcmsgb25seSBmb3IgLmFwa3MuCi0gICAgICBfaW5jcmVtZW50YWxfdGVzdF9ydW5uZXJfdGFyZ2V0ID0KLSAgICAgICAgICAiJHtfb3V0cHV0X25hbWV9X2luY3JlbWVudGFsX190ZXN0X3J1bm5lcl9zY3JpcHQiCi0gICAgICB0ZXN0X3J1bm5lcl9zY3JpcHQoX2luY3JlbWVudGFsX3Rlc3RfcnVubmVyX3RhcmdldCkgewotICAgICAgICBmb3J3YXJkX3ZhcmlhYmxlc19mcm9tKGludm9rZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3dyYXBwZXJfc2NyaXB0X3ZhcnMgKyBbCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGEiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhX2RlcHMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXBzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHVibGljX2RlcHMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKQotICAgICAgICBhcGtfdGFyZ2V0ID0gIjokX2Fwa190YXJnZXQiCi0gICAgICAgIHRlc3RfbmFtZSA9ICIke19vdXRwdXRfbmFtZX1faW5jcmVtZW50YWwiCi0gICAgICAgIHRlc3RfdHlwZSA9ICJndGVzdCIKLSAgICAgICAgdGVzdF9zdWl0ZSA9IF9vdXRwdXRfbmFtZQotICAgICAgICBpbmNyZW1lbnRhbF9pbnN0YWxsID0gdHJ1ZQotICAgICAgfQotICAgICAgZ3JvdXAoIiR7dGFyZ2V0X25hbWV9X2luY3JlbWVudGFsIikgewotICAgICAgICB0ZXN0b25seSA9IHRydWUKLSAgICAgICAgZGF0YWRlcHMgPSBbCi0gICAgICAgICAgIjokX2luY3JlbWVudGFsX3Rlc3RfcnVubmVyX3RhcmdldCIsCi0gICAgICAgIF0KLSAgICAgICAgZGVwcyA9IFsKLSAgICAgICAgICAiOiR7X2Fwa190YXJnZXR9X2luY3JlbWVudGFsIiwKLSAgICAgICAgXQorICAgICAgICAjIEFkZCB0aGUgSmF2YSBjbGFzc2VzIHNvIHRoYXQgZWFjaCB0YXJnZXQgZG9lcyBub3QgaGF2ZSB0byBkbyBpdC4KKyAgICAgICAgZGVwcyArPSBbICIvL2Jhc2UvdGVzdDp0ZXN0X3N1cHBvcnRfamF2YSIgXQorCisgICAgICAgIGlmIChkZWZpbmVkKF91bndpbmRfdGFibGVfYXNzZXRfbmFtZSkpIHsKKyAgICAgICAgICBkZXBzICs9IFsgIjoke191bndpbmRfdGFibGVfYXNzZXRfbmFtZX0iIF0KKyAgICAgICAgfQogICAgICAgfQogICAgIH0KIAotICAgIF90ZXN0X3J1bm5lcl90YXJnZXQgPSAiJHtfb3V0cHV0X25hbWV9X190ZXN0X3J1bm5lcl9zY3JpcHQiCiAgICAgdGVzdF9ydW5uZXJfc2NyaXB0KF90ZXN0X3J1bm5lcl90YXJnZXQpIHsKLSAgICAgIGZvcndhcmRfdmFyaWFibGVzX2Zyb20oaW52b2tlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3dyYXBwZXJfc2NyaXB0X3ZhcnMgKyBbCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGFfZGVwcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXBzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInB1YmxpY19kZXBzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pCisgICAgICBmb3J3YXJkX3ZhcmlhYmxlc19mcm9tKGludm9rZXIsIF93cmFwcGVyX3NjcmlwdF92YXJzKQogCiAgICAgICBpZiAoX3VzZV9yYXdfYW5kcm9pZF9leGVjdXRhYmxlKSB7CiAgICAgICAgIGV4ZWN1dGFibGVfZGlzdF9kaXIgPSAiJHJvb3Rfb3V0X2Rpci8kX2Rpc3RfdGFyZ2V0IgorICAgICAgICBkYXRhX2RlcHMgPSBbICI6JF9leGVjX3RhcmdldCIgXQogICAgICAgfSBlbHNlIHsKICAgICAgICAgYXBrX3RhcmdldCA9ICI6JF9hcGtfdGFyZ2V0IgorICAgICAgICBpbmNyZW1lbnRhbF9hcGsgPSBpbmNyZW1lbnRhbF9pbnN0YWxsCisKKyAgICAgICAgIyBEZXAgbmVlZGVkIGZvciB0aGUgdGVzdCBydW5uZXIgLnJ1bnRpbWVfZGVwcyBmaWxlIHRvIHBpY2sgdXAgZGF0YQorICAgICAgICAjIGRlcHMgZnJvbSB0aGUgZm9yd2FyZF92YXJpYWJsZXNfZnJvbShpbnZva2VyLCAiKiIpIG9uIHRoZSBsaWJyYXJ5LgorICAgICAgICBkYXRhX2RlcHMgPSBbICI6JF9saWJyYXJ5X3RhcmdldCIgXQogICAgICAgfQogICAgICAgdGVzdF9uYW1lID0gX291dHB1dF9uYW1lCi0gICAgICB0ZXN0X3R5cGUgPSAiZ3Rlc3QiCiAgICAgICB0ZXN0X3N1aXRlID0gX291dHB1dF9uYW1lCisgICAgICB0ZXN0X3R5cGUgPSAiZ3Rlc3QiCiAgICAgfQogCi0gICAgZ3JvdXAodGFyZ2V0X25hbWUpIHsKKyAgICAjIENyZWF0ZSBhIHdyYXBwZXIgc2NyaXB0IHJhdGhlciB0aGFuIHVzaW5nIGEgZ3JvdXAoKSBpbiBvcmRlciB0byBlbnN1cmUKKyAgICAjICJuaW5qYSAkdGFyZ2V0X25hbWUiIGFsd2F5cyB3b3Jrcy4gSWYgdGhpcyB3YXMgYSBncm91cCgpLCB0aGVuIEdOIHdvdWxkCisgICAgIyBub3QgY3JlYXRlIGEgdG9wLWxldmVsIGFsaWFzIGZvciBpdCBpZiBhIHRhcmdldCBleGlzdHMgaW4gYW5vdGhlcgorICAgICMgZGlyZWN0b3J5IHdpdGggdGhlIHNhbWUgJHRhcmdldF9uYW1lLgorICAgICMgQWxzbyAtIGJvdHMgcnVuIHRoaXMgc2NyaXB0IGRpcmVjdGx5IGZvciAiY29tcG9uZW50c19wZXJmdGVzdHMiLgorICAgIGdlbmVyYXRlX3dyYXBwZXIodGFyZ2V0X25hbWUpIHsKICAgICAgIHRlc3Rvbmx5ID0gdHJ1ZQotICAgICAgZGVwcyA9IFsKLSAgICAgICAgIjokX3Rlc3RfcnVubmVyX3RhcmdldCIsCi0gICAgICBdCisgICAgICBleGVjdXRhYmxlID0gIiRyb290X2J1aWxkX2Rpci9iaW4vcnVuXyRfb3V0cHV0X25hbWUiCisgICAgICB3cmFwcGVyX3NjcmlwdCA9ICIkcm9vdF9idWlsZF9kaXIvJF9vdXRwdXRfbmFtZSIKKyAgICAgIGRlcHMgPSBbICI6JF90ZXN0X3J1bm5lcl90YXJnZXQiIF0KICAgICAgIGlmIChfdXNlX3Jhd19hbmRyb2lkX2V4ZWN1dGFibGUpIHsKICAgICAgICAgZGVwcyArPSBbICI6JF9kaXN0X3RhcmdldCIgXQogICAgICAgfSBlbHNlIHsKLSAgICAgICAgZGVwcyArPSBbICI6JF9hcGtfdGFyZ2V0IiBdCisgICAgICAgICMgRGVwIG5lZWRlZCBmb3IgdGhlIHN3YXJtaW5nIC5pc29sYXRlIGZpbGUgdG8gcGljayB1cCBkYXRhCisgICAgICAgICMgZGVwcyBmcm9tIHRoZSBmb3J3YXJkX3ZhcmlhYmxlc19mcm9tKGludm9rZXIsICIqIikgb24gdGhlIGxpYnJhcnkuCisgICAgICAgIGRlcHMgKz0gWworICAgICAgICAgICI6JF9hcGtfdGFyZ2V0IiwKKyAgICAgICAgICAiOiRfbGlicmFyeV90YXJnZXQiLAorICAgICAgICBdCiAgICAgICB9CiAgICAgfQogICB9IGVsc2UgaWYgKGlzX2lvcykgewpAQCAtMTkyLDE5ICsxOTAsMTQgQEAKIAogICAgIGJ1bmRsZV9kYXRhKF9yZXNvdXJjZXNfYnVuZGxlX2RhdGEpIHsKICAgICAgIHZpc2liaWxpdHkgPSBbICI6JF90ZXN0X3RhcmdldCIgXQotICAgICAgc291cmNlcyA9IFsKLSAgICAgICAgIi8vdGVzdGluZy9ndGVzdF9pb3MvRGVmYXVsdC5wbmciLAotICAgICAgXQotICAgICAgb3V0cHV0cyA9IFsKLSAgICAgICAgInt7YnVuZGxlX3Jlc291cmNlc19kaXJ9fS97e3NvdXJjZV9maWxlX3BhcnR9fSIsCi0gICAgICBdCisgICAgICBzb3VyY2VzID0gWyAiLy90ZXN0aW5nL2d0ZXN0X2lvcy9EZWZhdWx0LnBuZyIgXQorICAgICAgb3V0cHV0cyA9IFsgInt7YnVuZGxlX3Jlc291cmNlc19kaXJ9fS97e3NvdXJjZV9maWxlX3BhcnR9fSIgXQogICAgIH0KIAogICAgIGlvc19hcHBfYnVuZGxlKF90ZXN0X3RhcmdldCkgewogICAgICAgdGVzdG9ubHkgPSB0cnVlCiAKICAgICAgICMgU2VlIGFib3ZlIGNhbGwuCi0gICAgICBzZXRfc291cmNlc19hc3NpZ25tZW50X2ZpbHRlcihbXSkKICAgICAgIGZvcndhcmRfdmFyaWFibGVzX2Zyb20oaW52b2tlciwgIioiLCBbICJ0ZXN0b25seSIgXSkKIAogICAgICAgIyBQcm92aWRlIHNlbnNpYmxlIGRlZmF1bHRzIGluIGNhc2UgaW52b2tlciBkaWQgbm90IGRlZmluZSBhbnkgb2YgdGhvc2UKQEAgLTI0NCw5ICsyMzcsNyBAQAogICAgIGlmIChkZWZpbmVkKGludm9rZXIub3V0cHV0X25hbWUpICYmIHRhcmdldF9uYW1lICE9IGludm9rZXIub3V0cHV0X25hbWUpIHsKICAgICAgIGdyb3VwKCIke2ludm9rZXIub3V0cHV0X25hbWV9X3J1biIpIHsKICAgICAgICAgdGVzdG9ubHkgPSB0cnVlCi0gICAgICAgIGRlcHMgPSBbCi0gICAgICAgICAgIjoke2ludm9rZXIudGFyZ2V0X25hbWV9IiwKLSAgICAgICAgXQorICAgICAgICBkZXBzID0gWyAiOiR7aW52b2tlci50YXJnZXRfbmFtZX0iIF0KICAgICAgIH0KICAgICB9CiAgIH0KQEAgLTI1Niw2ICsyNDcsOCBAQAogc2V0X2RlZmF1bHRzKCJ0ZXN0IikgewogICBpZiAoaXNfYW5kcm9pZCkgewogICAgIGNvbmZpZ3MgPSBkZWZhdWx0X3NoYXJlZF9saWJyYXJ5X2NvbmZpZ3MKKyAgICBjb25maWdzIC09IFsgIi8vYnVpbGQvY29uZmlnL2FuZHJvaWQ6aGlkZV9hbGxfYnV0X2puaV9vbmxvYWQiIF0KKyAgICBjb25maWdzICs9IFsgIi8vYnVpbGQvY29uZmlnL2FuZHJvaWQ6aGlkZV9hbGxfYnV0X2puaSIgXQogICB9IGVsc2UgewogICAgIGNvbmZpZ3MgPSBkZWZhdWx0X2V4ZWN1dGFibGVfY29uZmlncwogICB9CkBAIC0yNzEsOSArMjY0LDcgQEAKICAgICBpZiAoZGVmaW5lZChpbnZva2VyLmNvbmZpZ3MpKSB7CiAgICAgICBjb25maWdzICs9IGludm9rZXIuY29uZmlncwogICAgIH0KLSAgICBkZXBzID0gWwotICAgICAgX3BkZml1bV9yb290X2RpciArICI6cGRmaXVtX3VuaXR0ZXN0X2RlcHMiLAotICAgIF0KKyAgICBkZXBzID0gWyBfcGRmaXVtX3Jvb3RfZGlyICsgIjpwZGZpdW1fdW5pdHRlc3RfZGVwcyIgXQogICAgIGlmIChkZWZpbmVkKGludm9rZXIuZGVwcykpIHsKICAgICAgIGRlcHMgKz0gaW52b2tlci5kZXBzCiAgICAgfQpAQCAtMjkyLDkgKzI4Myw3IEBACiAgICAgaWYgKGRlZmluZWQoaW52b2tlci5jb25maWdzKSkgewogICAgICAgY29uZmlncyArPSBpbnZva2VyLmNvbmZpZ3MKICAgICB9Ci0gICAgZGVwcyA9IFsKLSAgICAgIF9wZGZpdW1fcm9vdF9kaXIgKyAiOnBkZml1bV9lbWJlZGRlcnRlc3RfZGVwcyIsCi0gICAgXQorICAgIGRlcHMgPSBbIF9wZGZpdW1fcm9vdF9kaXIgKyAiOnBkZml1bV9lbWJlZGRlcnRlc3RfZGVwcyIgXQogICAgIGlmIChkZWZpbmVkKGludm9rZXIuZGVwcykpIHsKICAgICAgIGRlcHMgKz0gaW52b2tlci5kZXBzCiAgICAgfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy90ZXN0X2ZvbnRzLmNwcCBiL3Rlc3RpbmcvdGVzdF9mb250cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNiNjU1OQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvdGVzdF9mb250cy5jcHAKQEAgLTAsMCArMSwxMTYgQEAKKy8vIENvcHlyaWdodCAyMDIxIFRoZSBQREZpdW0gQXV0aG9ycworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2luY2x1ZGUgInRlc3RpbmcvdGVzdF9mb250cy5oIgorCisjaW5jbHVkZSA8c2V0PgorI2luY2x1ZGUgPHV0aWxpdHk+CisKKyNpbmNsdWRlICJjb3JlL2Z4Z2UvY2Z4X2ZvbnRtYXBwZXIuaCIKKyNpbmNsdWRlICJjb3JlL2Z4Z2UvY2Z4X2ZvbnRtZ3IuaCIKKyNpbmNsdWRlICJjb3JlL2Z4Z2UvY2Z4X2dlbW9kdWxlLmgiCisjaW5jbHVkZSAiY29yZS9meGdlL3N5c3RlbWZvbnRpbmZvX2lmYWNlLmgiCisjaW5jbHVkZSAidGVzdGluZy91dGlscy9wYXRoX3NlcnZpY2UuaCIKKworbmFtZXNwYWNlIHsKKworQnl0ZVN0cmluZyBSZW5hbWVGb250Rm9yVGVzdGluZyhjb25zdCBCeXRlU3RyaW5nJiBmYWNlKSB7CisgIEJ5dGVTdHJpbmcgcmVzdWx0OworICBpZiAoZmFjZS5Db250YWlucygiQXJpYWwiKSB8fCBmYWNlLkNvbnRhaW5zKCJDYWxpYnJpIikgfHwKKyAgICAgIGZhY2UuQ29udGFpbnMoIkhlbHZldGljYSIpKSB7CisgICAgLy8gU2FucworICAgIHJlc3VsdCA9ICJBcmltbyI7CisgIH0gZWxzZSBpZiAoZmFjZS5Jc0VtcHR5KCkgfHwgZmFjZS5Db250YWlucygiVGltZXMiKSkgeworICAgIC8vIFNlcmlmCisgICAgcmVzdWx0ID0gIlRpbm9zIjsKKyAgfSBlbHNlIGlmIChmYWNlLkNvbnRhaW5zKCJDb3VyaWVyIikpIHsKKyAgICAvLyBNb25vCisgICAgcmVzdWx0ID0gIkNvdXNpbmUiOworICB9IGVsc2UgeworICAgIC8vIFNvbWUgdGVzdHMgZXhwZWN0IHRoZSBmYWxsYmFjayBmb250LgorICAgIHJldHVybiBmYWNlOworICB9CisKKyAgaWYgKGZhY2UuQ29udGFpbnMoIkJvbGQiKSkKKyAgICByZXN1bHQgKz0gIiBCb2xkIjsKKworICBpZiAoZmFjZS5Db250YWlucygiSXRhbGljIikgfHwgZmFjZS5Db250YWlucygiT2JsaXF1ZSIpKQorICAgIHJlc3VsdCArPSAiIEl0YWxpYyI7CisKKyAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gSW50ZXJjZXB0cyBmb250IHJlcXVlc3RzIGFuZCByZW5hbWVzIGZvbnQgZmFjZXMgdG8gdGhvc2UgaW4gdGVzdF9mb250cy4KK2NsYXNzIFN5c3RlbUZvbnRJbmZvV3JhcHBlciA6IHB1YmxpYyBTeXN0ZW1Gb250SW5mb0lmYWNlIHsKKyBwdWJsaWM6CisgIGV4cGxpY2l0IFN5c3RlbUZvbnRJbmZvV3JhcHBlcihzdGQ6OnVuaXF1ZV9wdHI8U3lzdGVtRm9udEluZm9JZmFjZT4gaW1wbCkKKyAgICAgIDogaW1wbF8oc3RkOjptb3ZlKGltcGwpKSB7fQorICB+U3lzdGVtRm9udEluZm9XcmFwcGVyKCkgeyBDSEVDSyhhY3RpdmVfZm9udHNfLmVtcHR5KCkpOyB9CisKKyAgYm9vbCBFbnVtRm9udExpc3QoQ0ZYX0ZvbnRNYXBwZXIqIHBNYXBwZXIpIG92ZXJyaWRlIHsKKyAgICByZXR1cm4gaW1wbF8tPkVudW1Gb250TGlzdChwTWFwcGVyKTsKKyAgfQorICB2b2lkKiBNYXBGb250KGludCB3ZWlnaHQsCisgICAgICAgICAgICAgICAgYm9vbCBiSXRhbGljLAorICAgICAgICAgICAgICAgIEZYX0NoYXJzZXQgY2hhcnNldCwKKyAgICAgICAgICAgICAgICBpbnQgcGl0Y2hfZmFtaWx5LAorICAgICAgICAgICAgICAgIGNvbnN0IEJ5dGVTdHJpbmcmIGZhY2UpIG92ZXJyaWRlIHsKKyAgICB2b2lkKiBmb250ID0gaW1wbF8tPk1hcEZvbnQod2VpZ2h0LCBiSXRhbGljLCBjaGFyc2V0LCBwaXRjaF9mYW1pbHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbmFtZUZvbnRGb3JUZXN0aW5nKGZhY2UpKTsKKyAgICBpZiAoZm9udCkgeworICAgICAgYm9vbCBpbnNlcnRlZCA9IGFjdGl2ZV9mb250c18uaW5zZXJ0KGZvbnQpLnNlY29uZDsKKyAgICAgIENIRUNLKGluc2VydGVkKTsKKyAgICB9CisgICAgcmV0dXJuIGZvbnQ7CisgIH0KKyAgdm9pZCogR2V0Rm9udChjb25zdCBCeXRlU3RyaW5nJiBmYWNlKSBvdmVycmlkZSB7CisgICAgcmV0dXJuIGltcGxfLT5HZXRGb250KFJlbmFtZUZvbnRGb3JUZXN0aW5nKGZhY2UpKTsKKyAgfQorICBzaXplX3QgR2V0Rm9udERhdGEodm9pZCogaEZvbnQsCisgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgIHBkZml1bTo6c3Bhbjx1aW50OF90PiBidWZmZXIpIG92ZXJyaWRlIHsKKyAgICByZXR1cm4gaW1wbF8tPkdldEZvbnREYXRhKGhGb250LCB0YWJsZSwgYnVmZmVyKTsKKyAgfQorICBib29sIEdldEZhY2VOYW1lKHZvaWQqIGhGb250LCBCeXRlU3RyaW5nKiBuYW1lKSBvdmVycmlkZSB7CisgICAgYXV0byBmYWNlID0gUmVuYW1lRm9udEZvclRlc3RpbmcoKm5hbWUpOworICAgIHJldHVybiBpbXBsXy0+R2V0RmFjZU5hbWUoaEZvbnQsICZmYWNlKTsKKyAgfQorICBib29sIEdldEZvbnRDaGFyc2V0KHZvaWQqIGhGb250LCBGWF9DaGFyc2V0KiBjaGFyc2V0KSBvdmVycmlkZSB7CisgICAgcmV0dXJuIGltcGxfLT5HZXRGb250Q2hhcnNldChoRm9udCwgY2hhcnNldCk7CisgIH0KKyAgdm9pZCBEZWxldGVGb250KHZvaWQqIGhGb250KSBvdmVycmlkZSB7CisgICAgQ0hFQ0soYWN0aXZlX2ZvbnRzXy5lcmFzZShoRm9udCkpOworICAgIGltcGxfLT5EZWxldGVGb250KGhGb250KTsKKyAgfQorCisgcHJpdmF0ZToKKyAgc3RkOjp1bmlxdWVfcHRyPFN5c3RlbUZvbnRJbmZvSWZhY2U+IGltcGxfOworICBzdGQ6OnNldDx2b2lkKj4gYWN0aXZlX2ZvbnRzXzsKK307CisKK30gIC8vIG5hbWVzcGFjZQorCitUZXN0Rm9udHM6OlRlc3RGb250cygpIHsKKyAgaWYgKCFQYXRoU2VydmljZTo6R2V0RXhlY3V0YWJsZURpcigmZm9udF9wYXRoXykpCisgICAgcmV0dXJuOworICBmb250X3BhdGhfLnB1c2hfYmFjayhQQVRIX1NFUEFSQVRPUik7CisgIGZvbnRfcGF0aF8uYXBwZW5kKCJ0ZXN0X2ZvbnRzIik7CisgIGZvbnRfcGF0aHNfID0gc3RkOjptYWtlX3VuaXF1ZTxjb25zdCBjaGFyKltdPigyKTsKKyAgZm9udF9wYXRoc19bMF0gPSBmb250X3BhdGhfLmNfc3RyKCk7CisgIGZvbnRfcGF0aHNfWzFdID0gbnVsbHB0cjsKK30KKworVGVzdEZvbnRzOjp+VGVzdEZvbnRzKCkgPSBkZWZhdWx0OworCit2b2lkIFRlc3RGb250czo6SW5zdGFsbEZvbnRNYXBwZXIoKSB7CisgIGF1dG8qIGZvbnRfbWFwcGVyID0gQ0ZYX0dFTW9kdWxlOjpHZXQoKS0+R2V0Rm9udE1ncigpLT5HZXRCdWlsdGluTWFwcGVyKCk7CisgIGZvbnRfbWFwcGVyLT5TZXRTeXN0ZW1Gb250SW5mbyhzdGQ6Om1ha2VfdW5pcXVlPFN5c3RlbUZvbnRJbmZvV3JhcHBlcj4oCisgICAgICBmb250X21hcHBlci0+VGFrZVN5c3RlbUZvbnRJbmZvKCkpKTsKK30KKworLy8gc3RhdGljCitzdGQ6OnN0cmluZyBUZXN0Rm9udHM6OlJlbmFtZUZvbnQoY29uc3QgY2hhciogZmFjZSkgeworICBCeXRlU3RyaW5nIHJlbmFtZWRfZmFjZSA9IFJlbmFtZUZvbnRGb3JUZXN0aW5nKGZhY2UpOworICByZXR1cm4gc3RkOjpzdHJpbmcocmVuYW1lZF9mYWNlLmNfc3RyKCkpOworfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy90ZXN0X2ZvbnRzLmggYi90ZXN0aW5nL3Rlc3RfZm9udHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTJhODIyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy90ZXN0X2ZvbnRzLmgKQEAgLTAsMCArMSwyNyBAQAorLy8gQ29weXJpZ2h0IDIwMjEgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaWZuZGVmIFRFU1RJTkdfVEVTVF9GT05UU19IXworI2RlZmluZSBURVNUSU5HX1RFU1RfRk9OVFNfSF8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDxzdHJpbmc+CisKK2NsYXNzIFRlc3RGb250cyB7CisgcHVibGljOgorICBUZXN0Rm9udHMoKTsKKyAgflRlc3RGb250cygpOworCisgIGNvbnN0IGNoYXIqKiBmb250X3BhdGhzKCkgY29uc3QgeyByZXR1cm4gZm9udF9wYXRoc18uZ2V0KCk7IH0KKworICB2b2lkIEluc3RhbGxGb250TWFwcGVyKCk7CisKKyAgc3RhdGljIHN0ZDo6c3RyaW5nIFJlbmFtZUZvbnQoY29uc3QgY2hhciogZmFjZSk7CisKKyBwcml2YXRlOgorICBzdGQ6OnN0cmluZyBmb250X3BhdGhfOworICBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgY2hhcipbXT4gZm9udF9wYXRoc187Cit9OworCisjZW5kaWYgIC8vIFRFU1RJTkdfVEVTVF9GT05UU19IXwpkaWZmIC0tZ2l0IGEvdGVzdGluZy90ZXN0X2xvYWRlci5jcHAgYi90ZXN0aW5nL3Rlc3RfbG9hZGVyLmNwcAppbmRleCAzM2VlMzMxLi5hYWM4NDI5IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Rlc3RfbG9hZGVyLmNwcAorKysgYi90ZXN0aW5nL3Rlc3RfbG9hZGVyLmNwcApAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAyMDE5IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTkgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCkBAIC02LDcgKzYsNyBAQAogCiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAKLSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL2xvZ2dpbmcuaCIKKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL25vdHJlYWNoZWQuaCIKIAogVGVzdExvYWRlcjo6VGVzdExvYWRlcihwZGZpdW06OnNwYW48Y29uc3QgY2hhcj4gc3BhbikgOiBtX1NwYW4oc3Bhbikge30KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy90ZXN0X2xvYWRlci5oIGIvdGVzdGluZy90ZXN0X2xvYWRlci5oCmluZGV4IDE3Y2E5ZTkuLmYzZDAwNDIgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvdGVzdF9sb2FkZXIuaAorKysgYi90ZXN0aW5nL3Rlc3RfbG9hZGVyLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE5IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy90ZXN0X3N1cHBvcnQuY3BwIGIvdGVzdGluZy90ZXN0X3N1cHBvcnQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGNlNTI4Li4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvdGVzdF9zdXBwb3J0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE5IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotI2luY2x1ZGUgInRlc3RpbmcvdGVzdF9zdXBwb3J0LmgiCi0KLSNpbmNsdWRlICJjb3JlL2Z4Z2UvY2Z4X2dlbW9kdWxlLmgiCi0KLXZvaWQgSW5pdGlhbGl6ZVBERlRlc3RFbnZpcm9ubWVudCgpIHsKLSAgQ0ZYX0dFTW9kdWxlOjpDcmVhdGUobnVsbHB0cik7Ci19Ci0KLXZvaWQgRGVzdHJveVBERlRlc3RFbnZpcm9ubWVudCgpIHsKLSAgQ0ZYX0dFTW9kdWxlOjpEZXN0cm95KCk7Ci19CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rlc3Rfc3VwcG9ydC5oIGIvdGVzdGluZy90ZXN0X3N1cHBvcnQuaAppbmRleCBmMjM3ZWE1Li4xZmFmMWE4IDEwMDY0NAotLS0gYS90ZXN0aW5nL3Rlc3Rfc3VwcG9ydC5oCisrKyBiL3Rlc3RpbmcvdGVzdF9zdXBwb3J0LmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxNSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtNDYsNyArNDYsNCBAQAogCiB9ICAvLyBuYW1lc3BhY2UgcGRmaXVtCiAKLXZvaWQgSW5pdGlhbGl6ZVBERlRlc3RFbnZpcm9ubWVudCgpOwotdm9pZCBEZXN0cm95UERGVGVzdEVudmlyb25tZW50KCk7Ci0KICNlbmRpZiAgLy8gVEVTVElOR19URVNUX1NVUFBPUlRfSF8KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdG9vbHMvLnN0eWxlLnlhcGYgYi90ZXN0aW5nL3Rvb2xzLy5zdHlsZS55YXBmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTBjNmE3Li4wMDAwMDAwCi0tLSBhL3Rlc3RpbmcvdG9vbHMvLnN0eWxlLnlhcGYKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLVtzdHlsZV0KLWJhc2VkX29uX3N0eWxlID0gY2hyb21pdW0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdG9vbHMvUFJFU1VCTUlULnB5IGIvdGVzdGluZy90b29scy9QUkVTVUJNSVQucHkKaW5kZXggNTlhMzg1OC4uMGI4OTY1NiAxMDA2NDQKLS0tIGEvdGVzdGluZy90b29scy9QUkVTVUJNSVQucHkKKysrIGIvdGVzdGluZy90b29scy9QUkVTVUJNSVQucHkKQEAgLTEsMTYgKzEsMjAgQEAKLSMgQ29weXJpZ2h0IDIwMTkgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMKICMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCiAiIiJQcmVzdWJtaXQgc2NyaXB0IGZvciBQREZpdW0gdGVzdGluZyB0b29scy4KIAogU2VlIGh0dHA6Ly9kZXYuY2hyb21pdW0ub3JnL2RldmVsb3BlcnMvaG93LXRvcy9kZXBvdHRvb2xzL3ByZXN1Ym1pdC1zY3JpcHRzCiBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSBwcmVzdWJtaXQgQVBJIGJ1aWx0IGludG8gZGVwb3RfdG9vbHMuCiAiIiIKIAorVVNFX1BZVEhPTjMgPSBUcnVlCisKIAogZGVmIF9Db21tb25DaGVja3MoaW5wdXRfYXBpLCBvdXRwdXRfYXBpKToKICAgdGVzdHMgPSBbXQotICB0ZXN0cy5leHRlbmQoaW5wdXRfYXBpLmNhbm5lZF9jaGVja3MuR2V0UHlsaW50KGlucHV0X2FwaSwgb3V0cHV0X2FwaSkpCisgIHRlc3RzLmV4dGVuZCgKKyAgICAgIGlucHV0X2FwaS5jYW5uZWRfY2hlY2tzLkdldFB5bGludChpbnB1dF9hcGksIG91dHB1dF9hcGksIHZlcnNpb249JzIuNycpKQogICByZXR1cm4gdGVzdHMKIAogCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rvb2xzL2FwaV9jaGVjay5weSBiL3Rlc3RpbmcvdG9vbHMvYXBpX2NoZWNrLnB5CmluZGV4IDY2YjMwNzcuLmJlYTg4NDUgMTAwNzU1Ci0tLSBhL3Rlc3RpbmcvdG9vbHMvYXBpX2NoZWNrLnB5CisrKyBiL3Rlc3RpbmcvdG9vbHMvYXBpX2NoZWNrLnB5CkBAIC0xLDUgKzEsNSBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKyMgQ29weXJpZ2h0IDIwMTcgVGhlIFBERml1bSBBdXRob3JzCiAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KICIiIlZlcmlmaWVzIGV4cG9ydGVkIGZ1bmN0aW9ucyBpbiBwdWJsaWMvKi5oIGFyZSBpbiBmcGRmX3ZpZXdfY19hcGlfdGVzdC5jLgpAQCAtOTksMTYgKzk5LDE2IEBACiAKIAogZGVmIF9GaW5kRHVwbGljYXRlcyhmdW5jdGlvbnMpOgotICByZXR1cm4gc2V0KFtmIGZvciBmIGluIGZ1bmN0aW9ucyBpZiBmdW5jdGlvbnMuY291bnQoZikgPiAxXSkKKyAgcmV0dXJuIHtmIGZvciBmIGluIGZ1bmN0aW9ucyBpZiBmdW5jdGlvbnMuY291bnQoZikgPiAxfQogCiAKIGRlZiBfQ2hlY2tBbmRQcmludEZhaWx1cmVzKGZhaWx1cmVfbGlzdCwgZmFpbHVyZV9tZXNzYWdlKToKICAgaWYgbm90IGZhaWx1cmVfbGlzdDoKICAgICByZXR1cm4gVHJ1ZQogCi0gIHByaW50ICclczonICUgZmFpbHVyZV9tZXNzYWdlCisgIHByaW50KCclczonICUgZmFpbHVyZV9tZXNzYWdlKQogICBmb3IgZiBpbiBzb3J0ZWQoZmFpbHVyZV9saXN0KToKLSAgICBwcmludCBmCisgICAgcHJpbnQoZikKICAgcmV0dXJuIEZhbHNlCiAKIApkaWZmIC0tZ2l0IGEvdGVzdGluZy90b29scy9jb21tb24ucHkgYi90ZXN0aW5nL3Rvb2xzL2NvbW1vbi5weQppbmRleCAxMDhmY2ZkLi44MGI3ODE1IDEwMDc1NQotLS0gYS90ZXN0aW5nL3Rvb2xzL2NvbW1vbi5weQorKysgYi90ZXN0aW5nL3Rvb2xzL2NvbW1vbi5weQpAQCAtMSw1ICsxLDUgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBDb3B5cmlnaHQgMjAxNSBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIS91c3IvYmluL2VudiBweXRob24zCisjIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycwogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTEwLDYgKzEwLDggQEAKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgc3lzCiAKK2ltcG9ydCBwZGZpdW1fcm9vdAorCiAKIGRlZiBvc19uYW1lKCk6CiAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdsaW51eCcpOgpAQCAtMjEsMTQgKzIzLDYgQEAKICAgcmFpc2UgRXhjZXB0aW9uKCdDb25mdXNlZCwgY2FuIG5vdCBkZXRlcm1pbmUgT1MsIGFib3J0aW5nLicpCiAKIAotZGVmIFJ1bkNvbW1hbmQoY21kKToKLSAgdHJ5OgotICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChjbWQpCi0gICAgcmV0dXJuIE5vbmUKLSAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yIGFzIGU6Ci0gICAgcmV0dXJuIGUKLQotCiBkZWYgUnVuQ29tbWFuZFByb3BhZ2F0ZUVycihjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXRfaGFzX2Vycm9ycz1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXRfc3RhdHVzX29uX2Vycm9yPU5vbmUpOgpAQCAtNjEsNTAgKzU1LDE3IEBACiAgIHJldHVybiBvdXRwdXQKIAogCi0jIFJ1bkNvbW1hbmRFeHRyYWN0SGFzaGVkRmlsZXMgcmV0dXJucyBhIHR1cGxlOiAocmFpc2VkX2V4Y2VwdGlvbiwgaGFzaGVkX2ZpbGVzKQotIyBJdCBydW5zIHRoZSBnaXZlbiBjb21tYW5kLiBJZiBpdCBmYWlscyBpdCB3aWxsIHJldHVybiBhbiBleGNlcHRpb24gYW5kIE5vbmUuCi0jIElmIGl0IHN1Y2NlZWRzIGl0IHdpbGwgcmV0dXJuIE5vbmUgYW5kIHRoZSBsaXN0IG9mIHByb2Nlc3NlZCBmaWxlcyBleHRyYWN0ZWQKLSMgZnJvbSB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kLiBJdCBleHBlY3RzIGxpbmVzIGluIHRoaXMgZm9ybWF0OgotIyAgICBNRDU6PHBhdGhfdG9faW1hZ2VfZmlsZT46PG1kNV9oYXNoX2luX2hleD4KLSMgVGhlIHJldHVybmVkIGhhc2hlZF9maWxlcyBpcyBhIGxpc3Qgb2YgKGZpbGVfcGF0aCwgTUQ1LWhhc2gpIHBhaXJzLgotZGVmIFJ1bkNvbW1hbmRFeHRyYWN0SGFzaGVkRmlsZXMoY21kKToKLSAgdHJ5OgotICAgIG91dHB1dCA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KGNtZCwgdW5pdmVyc2FsX25ld2xpbmVzPVRydWUpCi0gICAgcmV0ID0gW10KLSAgICBmb3IgbGluZSBpbiBvdXRwdXQuc3BsaXQoJ1xuJyk6Ci0gICAgICBsaW5lID0gbGluZS5zdHJpcCgpCi0gICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoIk1ENToiKToKLSAgICAgICAgcmV0LmFwcGVuZChbeC5zdHJpcCgpIGZvciB4IGluIGxpbmUubHN0cmlwKCJNRDU6IikucnNwbGl0KCI6IiwgMSldKQotICAgIHJldHVybiBOb25lLCByZXQKLSAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yIGFzIGU6Ci0gICAgcmV0dXJuIGUsIE5vbmUKLQotCiBjbGFzcyBEaXJlY3RvcnlGaW5kZXI6CiAgICcnJ0EgY2xhc3MgZm9yIGZpbmRpbmcgZGlyZWN0b3JpZXMgYW5kIHBhdGhzIHVuZGVyIGVpdGhlciBhIHN0YW5kYWxvbmUKICAgY2hlY2tvdXQgb3IgYSBjaHJvbWl1bSBjaGVja291dCBvZiBQREZpdW0uJycnCiAKICAgZGVmIF9faW5pdF9fKHNlbGYsIGJ1aWxkX2xvY2F0aW9uKToKLSAgICAjIHxidWlsZF9sb2NhdGlvbnwgaXMgdHlwaWNhbGx5ICJvdXQvRGVidWciIG9yICJvdXQvUmVsZWFzZSIuCi0gICAgIyBFeHBlY3QgfG15X2RpcnwgdG8gYmUgLi4uL3BkZml1bS90ZXN0aW5nL3Rvb2xzLgotICAgIHNlbGYubXlfZGlyID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18pKQotICAgIHNlbGYudGVzdGluZ19kaXIgPSBvcy5wYXRoLmRpcm5hbWUoc2VsZi5teV9kaXIpCi0gICAgaWYgKG9zLnBhdGguYmFzZW5hbWUoc2VsZi5teV9kaXIpICE9ICd0b29scycgb3IKLSAgICAgICAgb3MucGF0aC5iYXNlbmFtZShzZWxmLnRlc3RpbmdfZGlyKSAhPSAndGVzdGluZycpOgotICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb25mdXNlZCwgY2FuIG5vdCBmaW5kIHBkZml1bSByb290IGRpcmVjdG9yeSwgYWJvcnRpbmcuJykKLSAgICBzZWxmLnBkZml1bV9kaXIgPSBvcy5wYXRoLmRpcm5hbWUoc2VsZi50ZXN0aW5nX2RpcikKLSAgICAjIEZpbmQgcGF0aCB0byBidWlsZCBkaXJlY3RvcnkuICBUaGlzIGRlcGVuZHMgb24gd2hldGhlciB0aGlzIGlzIGEKLSAgICAjIHN0YW5kYWxvbmUgYnVpbGQgdnMuIGEgYnVpbGQgYXMgcGFydCBvZiBhIGNocm9taXVtIGNoZWNrb3V0LiBGb3IKLSAgICAjIHN0YW5kYWxvbmUsIHdlIGV4cGVjdCBhIHBhdGggbGlrZSAuLi4vcGRmaXVtL291dC9EZWJ1ZywgYnV0IGZvcgotICAgICMgY2hyb21pdW0sIHdlIGV4cGVjdCBhIHBhdGggbGlrZSAuLi4vc3JjL291dC9EZWJ1ZyB0d28gbGV2ZWxzCi0gICAgIyBoaWdoZXIgKHRvIHNraXAgb3ZlciB0aGUgdGhpcmRfcGFydHkvcGRmaXVtIHBhdGggY29tcG9uZW50IHVuZGVyCi0gICAgIyB3aGljaCBjaHJvbWl1bSBzdGlja3MgcGRmaXVtKS4KLSAgICBzZWxmLmJhc2VfZGlyID0gc2VsZi5wZGZpdW1fZGlyCi0gICAgb25lX3VwX2RpciA9IG9zLnBhdGguZGlybmFtZShzZWxmLmJhc2VfZGlyKQotICAgIHR3b191cF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUob25lX3VwX2RpcikKLSAgICBpZiAob3MucGF0aC5iYXNlbmFtZSh0d29fdXBfZGlyKSA9PSAnc3JjJyBhbmQKLSAgICAgICAgb3MucGF0aC5iYXNlbmFtZShvbmVfdXBfZGlyKSA9PSAndGhpcmRfcGFydHknKToKLSAgICAgIHNlbGYuYmFzZV9kaXIgPSB0d29fdXBfZGlyCisgICAgIyBgYnVpbGRfbG9jYXRpb25gIGlzIHR5cGljYWxseSAib3V0L0RlYnVnIiBvciAib3V0L1JlbGVhc2UiLgorICAgIHJvb3RfZmluZGVyID0gcGRmaXVtX3Jvb3QuUm9vdERpcmVjdG9yeUZpbmRlcigpCisgICAgc2VsZi50ZXN0aW5nX2RpciA9IG9zLnBhdGguam9pbihyb290X2ZpbmRlci5wZGZpdW1fcm9vdCwgJ3Rlc3RpbmcnKQorICAgIHNlbGYubXlfZGlyID0gb3MucGF0aC5qb2luKHNlbGYudGVzdGluZ19kaXIsICd0b29scycpCisgICAgc2VsZi5wZGZpdW1fZGlyID0gcm9vdF9maW5kZXIucGRmaXVtX3Jvb3QKKyAgICBzZWxmLmJhc2VfZGlyID0gcm9vdF9maW5kZXIuc291cmNlX3Jvb3QKICAgICBzZWxmLmJ1aWxkX2RpciA9IG9zLnBhdGguam9pbihzZWxmLmJhc2VfZGlyLCBidWlsZF9sb2NhdGlvbikKICAgICBzZWxmLm9zX25hbWUgPSBvc19uYW1lKCkKIApAQCAtMTMzLDI2ICs5NCwzMSBAQAogICAgICAgcmVzdWx0ID0gb3MucGF0aC5qb2luKHJlc3VsdCwgb3RoZXJfY29tcG9uZW50cykKICAgICByZXR1cm4gcmVzdWx0CiAKKyAgZGVmIFRoaXJkUGFydHlGb250c0RpcihzZWxmKToKKyAgICAnJydGaW5kcyBkaXJlY3Rvcnkgd2l0aCB0aGUgdGVzdCBmb250cy4nJycKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKHNlbGYuYmFzZV9kaXIsICd0aGlyZF9wYXJ0eScsICd0ZXN0X2ZvbnRzJykKKwogCiBkZWYgR2V0Qm9vbGVhbkduQXJnKGFyZ19uYW1lLCBidWlsZF9kaXIsIHZlcmJvc2U9RmFsc2UpOgogICAnJydFeHRyYWN0IHRoZSB2YWx1ZSBvZiBhIGJvb2xlYW4gZmxhZyBpbiBhcmdzLmduJycnCiAgIGN3ZCA9IG9zLmdldGN3ZCgpCiAgIG9zLmNoZGlyKGJ1aWxkX2RpcikKICAgZ25fYXJnc19vdXRwdXQgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dCgKLSAgICAgIFsnZ24nLCAnYXJncycsICcuJywgJy0tbGlzdD0lcycgJSBhcmdfbmFtZSwgJy0tc2hvcnQnXSkKKyAgICAgIFsnZ24nLCAnYXJncycsICcuJywgJy0tbGlzdD0lcycgJSBhcmdfbmFtZSwgJy0tc2hvcnQnXSkuZGVjb2RlKCd1dGY4JykKICAgb3MuY2hkaXIoY3dkKQogICBhcmdfbWF0Y2hfb3V0cHV0ID0gcmUuc2VhcmNoKCclcyA9ICguKiknICUgYXJnX25hbWUsIGduX2FyZ3Nfb3V0cHV0KS5ncm91cCgxKQogICBpZiB2ZXJib3NlOgotICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICJGb3VuZCAnJXMnIGZvciB2YWx1ZSBvZiAlcyIgJSAoYXJnX21hdGNoX291dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ19uYW1lKQorICAgIHByaW50KAorICAgICAgICAiRm91bmQgJyVzJyBmb3IgdmFsdWUgb2YgJXMiICUgKGFyZ19tYXRjaF9vdXRwdXQsIGFyZ19uYW1lKSwKKyAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQogICByZXR1cm4gYXJnX21hdGNoX291dHB1dCA9PSAndHJ1ZScKIAogCiBkZWYgUHJpbnRXaXRoVGltZShzKToKICAgIiIiUHJpbnRzIHMgcHJlcGVuZGVkIGJ5IGEgdGltZXN0YW1wLiIiIgotICBwcmludCAnWyVzXSAlcycgJSAoZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkuc3RyZnRpbWUoIiVZJW0lZCAlSDolTTolUyIpLCBzKQorICBwcmludCgnWyVzXSAlcycgJSAoZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkuc3RyZnRpbWUoIiVZJW0lZCAlSDolTTolUyIpLCBzKSkKIAogCiBkZWYgUHJpbnRFcnIocyk6CiAgICIiIlByaW50cyBzIHRvIHN0ZGVyci4iIiIKLSAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgcworICBwcmludChzLCBmaWxlPXN5cy5zdGRlcnIpCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rvb2xzL2NvdmVyYWdlL2NvdmVyYWdlX3JlcG9ydC5weSBiL3Rlc3RpbmcvdG9vbHMvY292ZXJhZ2UvY292ZXJhZ2VfcmVwb3J0LnB5CmluZGV4IDU3ODVlYWIuLjJjNTc5NDYgMTAwNzU1Ci0tLSBhL3Rlc3RpbmcvdG9vbHMvY292ZXJhZ2UvY292ZXJhZ2VfcmVwb3J0LnB5CisrKyBiL3Rlc3RpbmcvdG9vbHMvY292ZXJhZ2UvY292ZXJhZ2VfcmVwb3J0LnB5CkBAIC0xLDUgKzEsNSBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMhL3Vzci9iaW4vZW52IHZweXRob24zCisjIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycwogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAiIiJHZW5lcmF0ZXMgYSBjb3ZlcmFnZSByZXBvcnQgZm9yIGdpdmVuIHRlc3RzLgpAQCAtMTYsMTQgKzE2LDExIEBACiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cwogCi0jIEFkZCBzcmMgZGlyIHRvIHBhdGggdG8gYXZvaWQgaGF2aW5nIHRvIHNldCBQWVRIT05QQVRILgorIyBBZGQgcGFyZW50IGRpciB0byBhdm9pZCBoYXZpbmcgdG8gc2V0IFBZVEhPTlBBVEguCiBzeXMucGF0aC5hcHBlbmQoCi0gICAgb3MucGF0aC5hYnNwYXRoKAotICAgICAgICBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCBvcy5wYXRoLnBhcmRpciwgb3MucGF0aC5wYXJkaXIsCi0gICAgICAgICAgICBvcy5wYXRoLnBhcmRpcikpKQorICAgIG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgb3MucGF0aC5wYXJkaXIpKSkKIAotZnJvbSB0ZXN0aW5nLnRvb2xzLmNvbW1vbiBpbXBvcnQgR2V0Qm9vbGVhbkduQXJnCitpbXBvcnQgY29tbW9uCiAKICMgJ2JpbmFyeScgaXMgdGhlIGZpbGUgdGhhdCBpcyB0byBiZSBydW4gZm9yIHRoZSB0ZXN0LgogIyAndXNlX3Rlc3RfcnVubmVyJyBpbmRpY2F0ZXMgaWYgJ2JpbmFyeScgZGVwZW5kcyBvbiB0ZXN0X3J1bm5lci5weSBhbmQgdGh1cwpAQCAtNDEsMTggKzM4LDMyIEBACiAgICAgICAgIFRlc3RTcGVjKCdydW5fY29ycHVzX3Rlc3RzLnB5JywgVHJ1ZSwgW10pLAogICAgICdjb3JwdXNfdGVzdHNfamF2YXNjcmlwdF9kaXNhYmxlZCc6CiAgICAgICAgIFRlc3RTcGVjKCdydW5fY29ycHVzX3Rlc3RzLnB5JywgVHJ1ZSwgWyctLWRpc2FibGUtamF2YXNjcmlwdCddKSwKKyAgICAnY29ycHVzX3Rlc3RzX3hmYV9kaXNhYmxlZCc6CisgICAgICAgIFRlc3RTcGVjKCdydW5fY29ycHVzX3Rlc3RzLnB5JywgVHJ1ZSwgWyctLWRpc2FibGUteGZhJ10pLAorICAgICdjb3JwdXNfdGVzdHNfcmVuZGVyX29uZXNob3QnOgorICAgICAgICBUZXN0U3BlYygncnVuX2NvcnB1c190ZXN0cy5weScsIFRydWUsIFsnLS1yZW5kZXItb25lc2hvdCddKSwKKyAgICAnY29ycHVzX3Rlc3RzX3JldmVyc2VfYnl0ZV9vcmRlcic6CisgICAgICAgIFRlc3RTcGVjKCdydW5fY29ycHVzX3Rlc3RzLnB5JywgVHJ1ZSwgWyctLXJldmVyc2UtYnl0ZS1vcmRlciddKSwKICAgICAnamF2YXNjcmlwdF90ZXN0cyc6CiAgICAgICAgIFRlc3RTcGVjKCdydW5famF2YXNjcmlwdF90ZXN0cy5weScsIFRydWUsIFtdKSwKICAgICAnamF2YXNjcmlwdF90ZXN0c19qYXZhc2NyaXB0X2Rpc2FibGVkJzoKICAgICAgICAgVGVzdFNwZWMoJ3J1bl9qYXZhc2NyaXB0X3Rlc3RzLnB5JywgVHJ1ZSwgWyctLWRpc2FibGUtamF2YXNjcmlwdCddKSwKKyAgICAnamF2YXNjcmlwdF90ZXN0c194ZmFfZGlzYWJsZWQnOgorICAgICAgICBUZXN0U3BlYygncnVuX2phdmFzY3JpcHRfdGVzdHMucHknLCBUcnVlLCBbJy0tZGlzYWJsZS14ZmEnXSksCiAgICAgJ3BpeGVsX3Rlc3RzJzoKICAgICAgICAgVGVzdFNwZWMoJ3J1bl9waXhlbF90ZXN0cy5weScsIFRydWUsIFtdKSwKICAgICAncGl4ZWxfdGVzdHNfamF2YXNjcmlwdF9kaXNhYmxlZCc6CiAgICAgICAgIFRlc3RTcGVjKCdydW5fcGl4ZWxfdGVzdHMucHknLCBUcnVlLCBbJy0tZGlzYWJsZS1qYXZhc2NyaXB0J10pLAorICAgICdwaXhlbF90ZXN0c194ZmFfZGlzYWJsZWQnOgorICAgICAgICBUZXN0U3BlYygncnVuX3BpeGVsX3Rlc3RzLnB5JywgVHJ1ZSwgWyctLWRpc2FibGUteGZhJ10pLAorICAgICdwaXhlbF90ZXN0c19yZW5kZXJfb25lc2hvdCc6CisgICAgICAgIFRlc3RTcGVjKCdydW5fcGl4ZWxfdGVzdHMucHknLCBUcnVlLCBbJy0tcmVuZGVyLW9uZXNob3QnXSksCisgICAgJ3BpeGVsX3Rlc3RzX3JldmVyc2VfYnl0ZV9vcmRlcic6CisgICAgICAgIFRlc3RTcGVjKCdydW5fcGl4ZWxfdGVzdHMucHknLCBUcnVlLCBbJy0tcmV2ZXJzZS1ieXRlLW9yZGVyJ10pLAogfQogCiAKLWNsYXNzIENvdmVyYWdlRXhlY3V0b3Iob2JqZWN0KToKK2NsYXNzIENvdmVyYWdlRXhlY3V0b3I6CiAKICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgYXJncyk6CiAgICAgIiIiSW5pdGlhbGl6ZSBleGVjdXRvciBiYXNlZCBvbiB0aGUgY3VycmVudCBzY3JpcHQgZW52aXJvbm1lbnQKQEAgLTg1LDE0ICs5NiwxNCBAQAogICAgICAgICAgICdObyB2YWxpZCB0ZXN0cyBpbiBzZXQgdG8gYmUgcnVuLiBUaGlzIGlzIGxpa2VseSBkdWUgdG8gYmFkIGNvbW1hbmQgJwogICAgICAgICAgICdsaW5lIGFyZ3VtZW50cycpCiAKLSAgICBpZiBub3QgR2V0Qm9vbGVhbkduQXJnKCd1c2VfY2xhbmdfY292ZXJhZ2UnLCBzZWxmLmJ1aWxkX2RpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmVyYm9zZSk6CisgICAgaWYgbm90IGNvbW1vbi5HZXRCb29sZWFuR25BcmcoJ3VzZV9jbGFuZ19jb3ZlcmFnZScsIHNlbGYuYnVpbGRfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmVyYm9zZSk6CiAgICAgICBwYXJzZXIuZXJyb3IoCiAgICAgICAgICAgJ3VzZV9jbGFuZ19jb3ZlcmFnZSBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgc2V0IHRvIHRydWUgZm9yIGJ1aWxkLCBidXQgJwogICAgICAgICAgICdpcyBuZWVkZWQnKQogCi0gICAgc2VsZi51c2VfZ29tYSA9IEdldEJvb2xlYW5HbkFyZygndXNlX2dvbWEnLCBzZWxmLmJ1aWxkX2RpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmVyYm9zZSkKKyAgICBzZWxmLnVzZV9nb21hID0gY29tbW9uLkdldEJvb2xlYW5HbkFyZygndXNlX2dvbWEnLCBzZWxmLmJ1aWxkX2RpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZlcmJvc2UpCiAKICAgICBzZWxmLm91dHB1dF9kaXJlY3RvcnkgPSBhcmdzWydvdXRwdXRfZGlyZWN0b3J5J10KICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc2VsZi5vdXRwdXRfZGlyZWN0b3J5KToKQEAgLTEwOSwzOCArMTIwLDM4IEBACiAgIGRlZiBjaGVja19vdXRwdXQoc2VsZiwgYXJncywgZHJ5X3J1bj1GYWxzZSwgZW52PU5vbmUpOgogICAgICIiIkRyeSBydW4gYXdhcmUgd3JhcHBlciBvZiBzdWJwcm9jZXNzLmNoZWNrX291dHB1dCgpIiIiCiAgICAgaWYgZHJ5X3J1bjoKLSAgICAgIHByaW50ICJXb3VsZCBoYXZlIHJ1biAnJXMnIiAlICcgJy5qb2luKGFyZ3MpCisgICAgICBwcmludCgiV291bGQgaGF2ZSBydW4gJyVzJyIgJSAnICcuam9pbihhcmdzKSkKICAgICAgIHJldHVybiAnJwogCiAgICAgb3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoYXJncywgZW52PWVudikKIAogICAgIGlmIHNlbGYudmVyYm9zZToKLSAgICAgIHByaW50ICJjaGVja19vdXRwdXQoJXMpIHJldHVybmVkICclcyciICUgKGFyZ3MsIG91dHB1dCkKKyAgICAgIHByaW50KCJjaGVja19vdXRwdXQoJXMpIHJldHVybmVkICclcyciICUgKGFyZ3MsIG91dHB1dCkpCiAgICAgcmV0dXJuIG91dHB1dAogCiAgIGRlZiBjYWxsKHNlbGYsIGFyZ3MsIGRyeV9ydW49RmFsc2UsIGVudj1Ob25lKToKICAgICAiIiJEcnkgcnVuIGF3YXJlIHdyYXBwZXIgb2Ygc3VicHJvY2Vzcy5jYWxsKCkiIiIKICAgICBpZiBkcnlfcnVuOgotICAgICAgcHJpbnQgIldvdWxkIGhhdmUgcnVuICclcyciICUgJyAnLmpvaW4oYXJncykKKyAgICAgIHByaW50KCJXb3VsZCBoYXZlIHJ1biAnJXMnIiAlICcgJy5qb2luKGFyZ3MpKQogICAgICAgcmV0dXJuIDAKIAogICAgIG91dHB1dCA9IHN1YnByb2Nlc3MuY2FsbChhcmdzLCBlbnY9ZW52KQogCiAgICAgaWYgc2VsZi52ZXJib3NlOgotICAgICAgcHJpbnQgJ2NhbGwoJXMpIHJldHVybmVkICVzJyAlIChhcmdzLCBvdXRwdXQpCisgICAgICBwcmludCgnY2FsbCglcykgcmV0dXJuZWQgJXMnICUgKGFyZ3MsIG91dHB1dCkpCiAgICAgcmV0dXJuIG91dHB1dAogCiAgIGRlZiBjYWxsX3NpbGVudChzZWxmLCBhcmdzLCBkcnlfcnVuPUZhbHNlLCBlbnY9Tm9uZSk6CiAgICAgIiIiRHJ5IHJ1biBhd2FyZSB3cmFwcGVyIG9mIHN1YnByb2Nlc3MuY2FsbCgpIHRoYXQgZWF0cyBvdXRwdXQgZnJvbSBjYWxsIiIiCiAgICAgaWYgZHJ5X3J1bjoKLSAgICAgIHByaW50ICJXb3VsZCBoYXZlIHJ1biAnJXMnIiAlICcgJy5qb2luKGFyZ3MpCisgICAgICBwcmludCgiV291bGQgaGF2ZSBydW4gJyVzJyIgJSAnICcuam9pbihhcmdzKSkKICAgICAgIHJldHVybiAwCiAKICAgICB3aXRoIG9wZW4ob3MuZGV2bnVsbCwgJ3cnKSBhcyBmOgogICAgICAgb3V0cHV0ID0gc3VicHJvY2Vzcy5jYWxsKGFyZ3MsIGVudj1lbnYsIHN0ZG91dD1mKQogCiAgICAgaWYgc2VsZi52ZXJib3NlOgotICAgICAgcHJpbnQgJ2NhbGxfc2lsZW50KCVzKSByZXR1cm5lZCAlcycgJSAoYXJncywgb3V0cHV0KQorICAgICAgcHJpbnQoJ2NhbGxfc2lsZW50KCVzKSByZXR1cm5lZCAlcycgJSAoYXJncywgb3V0cHV0KSkKICAgICByZXR1cm4gb3V0cHV0CiAKICAgZGVmIGNhbGN1bGF0ZV9jb3ZlcmFnZV90ZXN0cyhzZWxmLCBhcmdzKToKQEAgLTE4NiwxMCArMTk3LDEwIEBACiAgICAgICAgIHNwZWM6IFR1cGxlIGNvbnRhaW5pbmcgdGhlIFRlc3RTcGVjLgogICAgICIiIgogICAgIGlmIHNlbGYudmVyYm9zZToKLSAgICAgIHByaW50ICJHZW5lcmF0aW5nIGNvdmVyYWdlIGZvciB0ZXN0ICclcycsIHVzaW5nIGRhdGEgJyVzJyIgJSAobmFtZSwgc3BlYykKKyAgICAgIHByaW50KCJHZW5lcmF0aW5nIGNvdmVyYWdlIGZvciB0ZXN0ICclcycsIHVzaW5nIGRhdGEgJyVzJyIgJSAobmFtZSwgc3BlYykpCiAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHNwZWMuYmluYXJ5KToKICAgICAgIHByaW50KCdVbmFibGUgdG8gZ2VuZXJhdGUgY292ZXJhZ2UgZm9yICVzLCBzaW5jZSBpdCBhcHBlYXJzIHRvIG5vdCBleGlzdCcKLSAgICAgICAgICAgICcgQCAlcycpICUgKG5hbWUsIHNwZWMuYmluYXJ5KQorICAgICAgICAgICAgJyBAICVzJyAlIChuYW1lLCBzcGVjLmJpbmFyeSkpCiAgICAgICByZXR1cm4gRmFsc2UKIAogICAgIGJpbmFyeV9hcmdzID0gW3NwZWMuYmluYXJ5XQpAQCAtMjEyLDcgKzIyMyw3IEBACiAgICAgICBiaW5hcnlfYXJncy5leHRlbmQoWyctaicsICc4JywgJy0tYnVpbGQtZGlyJywgc2VsZi5idWlsZF9kaXJlY3RvcnldKQogICAgIGlmIHNlbGYuY2FsbChiaW5hcnlfYXJncywgZHJ5X3J1bj1zZWxmLmRyeV9ydW4sIGVudj1lbnYpIGFuZCBzZWxmLnZlcmJvc2U6CiAgICAgICBwcmludCgnUnVubmluZyAlcyBhcHBlYXJzIHRvIGhhdmUgZmFpbGVkLCB3aGljaCBtaWdodCBhZmZlY3QgJwotICAgICAgICAgICAgJ3Jlc3VsdHMnKSAlIHNwZWMuYmluYXJ5CisgICAgICAgICAgICAncmVzdWx0cycgJSBzcGVjLmJpbmFyeSkKIAogICAgIHJldHVybiBUcnVlCiAKQEAgLTI0MSw3ICsyNTIsNyBAQAogICAgIGNvdmVyYWdlX2FyZ3MgKz0gWyctbycsIHJlcG9ydF9kaXJlY3RvcnldCiAgICAgY292ZXJhZ2VfYXJncyArPSBzZWxmLmJ1aWxkX3RhcmdldHMKIAotICAgICMgV2hpdGVsaXN0IHRoZSBkaXJlY3RvcmllcyBvZiBpbnRlcmVzdAorICAgICMgT25seSBhbmFseXplIHRoZSBkaXJlY3RvcmllcyBvZiBpbnRlcmVzdC4KICAgICBjb3ZlcmFnZV9hcmdzICs9IFsnLWYnLCAnY29yZSddCiAgICAgY292ZXJhZ2VfYXJncyArPSBbJy1mJywgJ2ZwZGZzZGsnXQogICAgIGNvdmVyYWdlX2FyZ3MgKz0gWyctZicsICdmeGJhcmNvZGUnXQpAQCAtMjUwLDcgKzI2MSw3IEBACiAgICAgY292ZXJhZ2VfYXJncyArPSBbJy1mJywgJ3NhbXBsZXMnXQogICAgIGNvdmVyYWdlX2FyZ3MgKz0gWyctZicsICd4ZmEnXQogCi0gICAgIyBCbGFja2xpc3QgdGVzdCBmaWxlcworICAgICMgSWdub3JlIHRlc3QgZmlsZXMuCiAgICAgY292ZXJhZ2VfYXJncyArPSBbJy1pJywgJy4qdGVzdC4qJ10KIAogICAgICMgQ29tcG9uZW50IHZpZXcgaXMgb25seSB1c2VmdWwgZm9yIENocm9taXVtCkBAIC0yNjEsMjQgKzI3MiwyNCBAQAogICBkZWYgcnVuKHNlbGYpOgogICAgICIiIlNldHVwIGVudmlyb25tZW50LCBleGVjdXRlIHRoZSB0ZXN0cyBhbmQgZ2VuZXJhdGUgY292ZXJhZ2UgcmVwb3J0IiIiCiAgICAgaWYgbm90IHNlbGYuZmV0Y2hfcHJvZmlsaW5nX3Rvb2xzKCk6Ci0gICAgICBwcmludCAnVW5hYmxlIHRvIGZldGNoIHByb2ZpbGluZyB0b29scycKKyAgICAgIHByaW50KCdVbmFibGUgdG8gZmV0Y2ggcHJvZmlsaW5nIHRvb2xzJykKICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgaWYgbm90IHNlbGYuYnVpbGRfYmluYXJpZXMoKToKLSAgICAgIHByaW50ICdGYWlsZWQgdG8gc3VjY2Vzc2Z1bGx5IGJ1aWxkIGJpbmFyaWVzJworICAgICAgcHJpbnQoJ0ZhaWxlZCB0byBzdWNjZXNzZnVsbHkgYnVpbGQgYmluYXJpZXMnKQogICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICBmb3IgbmFtZSBpbiBzZWxmLmNvdmVyYWdlX3Rlc3RzLmtleXMoKToKKyAgICBmb3IgbmFtZSBpbiBzZWxmLmNvdmVyYWdlX3Rlc3RzOgogICAgICAgaWYgbm90IHNlbGYuZ2VuZXJhdGVfY292ZXJhZ2UobmFtZSwgc2VsZi5jb3ZlcmFnZV90ZXN0c1tuYW1lXSk6Ci0gICAgICAgIHByaW50ICdGYWlsZWQgdG8gc3VjY2Vzc2Z1bGx5IGdlbmVyYXRlIGNvdmVyYWdlIGRhdGEnCisgICAgICAgIHByaW50KCdGYWlsZWQgdG8gc3VjY2Vzc2Z1bGx5IGdlbmVyYXRlIGNvdmVyYWdlIGRhdGEnKQogICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgIGlmIG5vdCBzZWxmLm1lcmdlX3Jhd19jb3ZlcmFnZV9yZXN1bHRzKCk6Ci0gICAgICBwcmludCAnRmFpbGVkIHRvIHN1Y2Nlc3NmdWxseSBtZXJnZSByYXcgY292ZXJhZ2UgcmVzdWx0cycKKyAgICAgIHByaW50KCdGYWlsZWQgdG8gc3VjY2Vzc2Z1bGx5IG1lcmdlIHJhdyBjb3ZlcmFnZSByZXN1bHRzJykKICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgaWYgbm90IHNlbGYuZ2VuZXJhdGVfaHRtbF9yZXBvcnQoKToKLSAgICAgIHByaW50ICdGYWlsZWQgdG8gc3VjY2Vzc2Z1bGx5IGdlbmVyYXRlIEhUTUwgcmVwb3J0JworICAgICAgcHJpbnQoJ0ZhaWxlZCB0byBzdWNjZXNzZnVsbHkgZ2VuZXJhdGUgSFRNTCByZXBvcnQnKQogICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICByZXR1cm4gVHJ1ZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy90b29scy9lbmNvZGVfcGRmX2ZpbHRlci5weSBiL3Rlc3RpbmcvdG9vbHMvZW5jb2RlX3BkZl9maWx0ZXIucHkKaW5kZXggMmQ1NjU0My4uMTk4NWZiNyAxMDA3NTUKLS0tIGEvdGVzdGluZy90b29scy9lbmNvZGVfcGRmX2ZpbHRlci5weQorKysgYi90ZXN0aW5nL3Rvb2xzL2VuY29kZV9wZGZfZmlsdGVyLnB5CkBAIC0xLDUgKzEsNSBAQAogIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwotIyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAyMDE5IFRoZSBQREZpdW0gQXV0aG9ycwogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAiIiJFbmNvZGVzIGJpbmFyeSBkYXRhIHVzaW5nIG9uZSBvciBtb3JlIFBERiBzdHJlYW0gZmlsdGVycy4KQEAgLTEzLDYgKzEzLDcgQEAKICIiIgogCiBpbXBvcnQgYXJncGFyc2UKK2Zyb20gYWJjIGltcG9ydCBBQkNNZXRhLCBhYnN0cmFjdG1ldGhvZAogaW1wb3J0IGJhc2U2NAogaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQgY29sbGVjdGlvbnMuYWJjCkBAIC0yMSwxMCArMjIsMjIgQEAKIGltcG9ydCB6bGliCiAKIAotY2xhc3MgX1BkZlN0cmVhbToKK2NsYXNzIF9QZGZTdHJlYW0obWV0YWNsYXNzPUFCQ01ldGEpOgogICBfdW5pcXVlX2ZpbHRlcl9jbGFzc2VzID0gW10KICAgX2ZpbHRlcl9jbGFzc2VzID0ge30KIAorICBAY2xhc3NtZXRob2QKKyAgQHByb3BlcnR5CisgIEBhYnN0cmFjdG1ldGhvZAorICBkZWYgbmFtZShjbHMpOgorICAgIHBhc3MKKworICBAY2xhc3NtZXRob2QKKyAgQHByb3BlcnR5CisgIEBhYnN0cmFjdG1ldGhvZAorICBkZWYgYWxpYXNlcyhjbHMpOgorICAgIHBhc3MKKwogICBAc3RhdGljbWV0aG9kCiAgIGRlZiBHZXRGaWx0ZXJCeU5hbWUobmFtZSk6CiAgICAgIyBUb2xlcmF0ZSBhbnkgY2FzZS1pbnNlbnNpdGl2ZSBtYXRjaCBmb3IgIi9OYW1lIiBvciAiTmFtZSIsIG9yIGFuIGFsaWFzLgpAQCAtMzgsMTggKzUxLDI0IEBACiAKICAgICByZXR1cm4gZmlsdGVyX2NsYXNzCiAKLSAgQHN0YXRpY21ldGhvZAotICBkZWYgUmVnaXN0ZXJGaWx0ZXIoZmlsdGVyX2NsYXNzKToKLSAgICBhc3NlcnQgZmlsdGVyX2NsYXNzIG5vdCBpbiBfUGRmU3RyZWFtLl91bmlxdWVfZmlsdGVyX2NsYXNzZXMKLSAgICBfUGRmU3RyZWFtLl91bmlxdWVfZmlsdGVyX2NsYXNzZXMuYXBwZW5kKGZpbHRlcl9jbGFzcykKKyAgQGNsYXNzbWV0aG9kCisgIGRlZiBSZWdpc3RlcihjbHMpOgorICAgIGFzc2VydCBjbHMgbm90IGluIF9QZGZTdHJlYW0uX3VuaXF1ZV9maWx0ZXJfY2xhc3NlcworICAgIF9QZGZTdHJlYW0uX3VuaXF1ZV9maWx0ZXJfY2xhc3Nlcy5hcHBlbmQoY2xzKQorICAgIGNscy5SZWdpc3RlckJ5TmFtZSgpCisgICAgY2xzLlJlZ2lzdGVyQnlBbGlhc2VzKCkKIAotICAgIGFzc2VydCBmaWx0ZXJfY2xhc3MubmFtZVswXSA9PSAnLycKLSAgICBsb3dlcl9uYW1lID0gZmlsdGVyX2NsYXNzLm5hbWUubG93ZXIoKQotICAgIF9QZGZTdHJlYW0uX2ZpbHRlcl9jbGFzc2VzW2xvd2VyX25hbWVdID0gZmlsdGVyX2NsYXNzCi0gICAgX1BkZlN0cmVhbS5fZmlsdGVyX2NsYXNzZXNbbG93ZXJfbmFtZVsxOl1dID0gZmlsdGVyX2NsYXNzCisgIEBjbGFzc21ldGhvZAorICBkZWYgUmVnaXN0ZXJCeU5hbWUoY2xzKToKKyAgICBhc3NlcnQgY2xzLm5hbWVbMF0gPT0gJy8nCisgICAgbG93ZXJfbmFtZSA9IGNscy5uYW1lLmxvd2VyKCkKKyAgICBfUGRmU3RyZWFtLl9maWx0ZXJfY2xhc3Nlc1tsb3dlcl9uYW1lXSA9IGNscworICAgIF9QZGZTdHJlYW0uX2ZpbHRlcl9jbGFzc2VzW2xvd2VyX25hbWVbMTpdXSA9IGNscwogCi0gICAgZm9yIGFsaWFzIGluIGZpbHRlcl9jbGFzcy5hbGlhc2VzOgotICAgICAgX1BkZlN0cmVhbS5fZmlsdGVyX2NsYXNzZXNbYWxpYXMubG93ZXIoKV0gPSBmaWx0ZXJfY2xhc3MKKyAgQGNsYXNzbWV0aG9kCisgIGRlZiBSZWdpc3RlckJ5QWxpYXNlcyhjbHMpOgorICAgIGZvciBhbGlhcyBpbiBjbHMuYWxpYXNlczoKKyAgICAgIF9QZGZTdHJlYW0uX2ZpbHRlcl9jbGFzc2VzW2FsaWFzLmxvd2VyKCldID0gY2xzCiAKICAgQHN0YXRpY21ldGhvZAogICBkZWYgR2V0SGVscCgpOgpAQCAtNTksNiArNzgsMjEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJywgJy5qb2luKGZpbHRlcl9jbGFzcy5hbGlhc2VzKSkKICAgICByZXR1cm4gdGV4dAogCisgIEBjbGFzc21ldGhvZAorICBkZWYgQWRkRW50cmllcyhjbHMsIGVudHJpZXMpOgorICAgIF9QZGZTdHJlYW0uQWRkTGlzdEVudHJ5KGVudHJpZXMsICdGaWx0ZXInLCBjbHMubmFtZSkKKworICBAc3RhdGljbWV0aG9kCisgIGRlZiBBZGRMaXN0RW50cnkoZW50cmllcywga2V5LCB2YWx1ZSk6CisgICAgb2xkX3ZhbHVlID0gZW50cmllcy5nZXQoa2V5KQorICAgIGlmIG9sZF92YWx1ZSBpcyBOb25lOgorICAgICAgZW50cmllc1trZXldID0gdmFsdWUKKyAgICBlbHNlOgorICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob2xkX3ZhbHVlLCBjb2xsZWN0aW9ucy5hYmMuTXV0YWJsZVNlcXVlbmNlKToKKyAgICAgICAgb2xkX3ZhbHVlID0gW29sZF92YWx1ZV0KKyAgICAgICAgZW50cmllc1trZXldID0gb2xkX3ZhbHVlCisgICAgICBvbGRfdmFsdWUuYXBwZW5kKHZhbHVlKQorCiAgIGRlZiBfX2luaXRfXyhzZWxmLCBvdXRfYnVmZmVyLCAqKmt3YXJncyk6CiAgICAgZGVsIGt3YXJncwogICAgIHNlbGYuYnVmZmVyID0gb3V0X2J1ZmZlcgpAQCAtNzgsNiArMTEyLDIyIEBACiAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICBzdXBlcigpLl9faW5pdF9fKGlvLkJ5dGVzSU8oKSkKIAorICBAY2xhc3NtZXRob2QKKyAgQHByb3BlcnR5CisgIGRlZiBuYW1lKGNscyk6CisgICAgIyBSZXR1cm4gYW4gaW52YWxpZCBuYW1lLCBzbyBhcyB0byBlbnN1cmUgX1NpbmtQZGZTdHJlYW0uUmVnaXN0ZXIoKQorICAgICMgY2Fubm90IGJlIGNhbGxlZC4gVGhpcyBtZXRob2QgaGFzIHRvIGJlIGltcGxlbWVudGVkLCBiZWNhdXNlIHRoaXMKKyAgICAjIHNjcmlwdCBjcmVhdGUgYF9TaW5rUGRmU3RyZWFtYCBpbnN0YW5jZXMuCisgICAgcmV0dXJuICcnCisKKyAgQGNsYXNzbWV0aG9kCisgIEBwcm9wZXJ0eQorICBkZWYgYWxpYXNlcyhjbHMpOgorICAgICMgUmV0dXJuIGFuIGludmFsaWQgYWxpYXNlcywgc28gYXMgdG8gZW5zdXJlIF9TaW5rUGRmU3RyZWFtLlJlZ2lzdGVyKCkKKyAgICAjIGNhbm5vdCBiZSBjYWxsZWQuIFRoaXMgbWV0aG9kIGhhcyB0byBiZSBpbXBsZW1lbnRlZCwgYmVjYXVzZSB0aGlzCisgICAgIyBzY3JpcHQgY3JlYXRlIGBfU2lua1BkZlN0cmVhbWAgaW5zdGFuY2VzLgorICAgIHJldHVybiAoKQorCiAgIGRlZiBjbG9zZShzZWxmKToKICAgICAjIERvbid0IGNhbGwgaW8uQnl0ZXNJTy5jbG9zZSgpOyB0aGlzIGRlYWxsb2NhdGVzIHRoZSB3cml0dGVuIGRhdGEuCiAgICAgc2VsZi5mbHVzaCgpCkBAIC05Myw2ICsxNDMsMTggQEAKICAgICBzZWxmLndyYXBjb2wgPSB3cmFwY29sCiAgICAgc2VsZi5jb2x1bW4gPSAwCiAKKyAgQGNsYXNzbWV0aG9kCisgIEBwcm9wZXJ0eQorICBAYWJzdHJhY3RtZXRob2QKKyAgZGVmIG5hbWUoY2xzKToKKyAgICBwYXNzCisKKyAgQGNsYXNzbWV0aG9kCisgIEBwcm9wZXJ0eQorICBAYWJzdHJhY3RtZXRob2QKKyAgZGVmIGFsaWFzZXMoY2xzKToKKyAgICBwYXNzCisKICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgogICAgIGlmIG5vdCBzZWxmLndyYXBjb2w6CiAgICAgICBzZWxmLmJ1ZmZlci53cml0ZShkYXRhKQpAQCAtMTEzLDggKzE3NSwxOCBAQAogCiAKIGNsYXNzIF9Bc2NpaTg1RGVjb2RlUGRmU3RyZWFtKF9Bc2NpaVBkZlN0cmVhbSk6Ci0gIG5hbWUgPSAnL0FTQ0lJODVEZWNvZGUnCi0gIGFsaWFzZXMgPSAoJ2FzY2lpODUnLCAnYmFzZTg1JykKKyAgX25hbWUgPSAnL0FTQ0lJODVEZWNvZGUnCisgIF9hbGlhc2VzID0gKCdhc2NpaTg1JywgJ2Jhc2U4NScpCisKKyAgQGNsYXNzbWV0aG9kCisgIEBwcm9wZXJ0eQorICBkZWYgbmFtZShjbHMpOgorICAgIHJldHVybiBjbHMuX25hbWUKKworICBAY2xhc3NtZXRob2QKKyAgQHByb3BlcnR5CisgIGRlZiBhbGlhc2VzKGNscyk6CisgICAgcmV0dXJuIGNscy5fYWxpYXNlcwogCiAgIGRlZiBfX2luaXRfXyhzZWxmLCBvdXRfYnVmZmVyLCAqKmt3YXJncyk6CiAgICAgc3VwZXIoKS5fX2luaXRfXyhvdXRfYnVmZmVyLCAqKmt3YXJncykKQEAgLTEzNyw4ICsyMDksMTggQEAKIAogCiBjbGFzcyBfQXNjaWlIZXhEZWNvZGVQZGZTdHJlYW0oX0FzY2lpUGRmU3RyZWFtKToKLSAgbmFtZSA9ICcvQVNDSUlIZXhEZWNvZGUnCi0gIGFsaWFzZXMgPSAoJ2Jhc2UxNicsICdoZXgnLCAnaGV4YWRlY2ltYWwnKQorICBfbmFtZSA9ICcvQVNDSUlIZXhEZWNvZGUnCisgIF9hbGlhc2VzID0gKCdiYXNlMTYnLCAnaGV4JywgJ2hleGFkZWNpbWFsJykKKworICBAY2xhc3NtZXRob2QKKyAgQHByb3BlcnR5CisgIGRlZiBuYW1lKGNscyk6CisgICAgcmV0dXJuIGNscy5fbmFtZQorCisgIEBjbGFzc21ldGhvZAorICBAcHJvcGVydHkKKyAgZGVmIGFsaWFzZXMoY2xzKToKKyAgICByZXR1cm4gY2xzLl9hbGlhc2VzCiAKICAgZGVmIF9faW5pdF9fKHNlbGYsIG91dF9idWZmZXIsICoqa3dhcmdzKToKICAgICBzdXBlcigpLl9faW5pdF9fKG91dF9idWZmZXIsICoqa3dhcmdzKQpAQCAtMTQ4LDEzICsyMzAsMjMgQEAKIAogCiBjbGFzcyBfRmxhdGVEZWNvZGVQZGZTdHJlYW0oX1BkZlN0cmVhbSk6Ci0gIG5hbWUgPSAnL0ZsYXRlRGVjb2RlJwotICBhbGlhc2VzID0gKCdkZWZsYXRlJywgJ2ZsYXRlJywgJ3psaWInKQorICBfbmFtZSA9ICcvRmxhdGVEZWNvZGUnCisgIF9hbGlhc2VzID0gKCdkZWZsYXRlJywgJ2ZsYXRlJywgJ3psaWInKQogCiAgIGRlZiBfX2luaXRfXyhzZWxmLCBvdXRfYnVmZmVyLCAqKmt3YXJncyk6CiAgICAgc3VwZXIoKS5fX2luaXRfXyhvdXRfYnVmZmVyLCAqKmt3YXJncykKICAgICBzZWxmLmRlZmxhdGUgPSB6bGliLmNvbXByZXNzb2JqKGxldmVsPTksIG1lbUxldmVsPTkpCiAKKyAgQGNsYXNzbWV0aG9kCisgIEBwcm9wZXJ0eQorICBkZWYgbmFtZShjbHMpOgorICAgIHJldHVybiBjbHMuX25hbWUKKworICBAY2xhc3NtZXRob2QKKyAgQHByb3BlcnR5CisgIGRlZiBhbGlhc2VzKGNscyk6CisgICAgcmV0dXJuIGNscy5fYWxpYXNlcworCiAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKICAgICBzZWxmLmJ1ZmZlci53cml0ZShzZWxmLmRlZmxhdGUuY29tcHJlc3MoZGF0YSkpCiAKQEAgLTE2Niw5ICsyNTgsMTI2IEBACiAgICAgc2VsZi5idWZmZXIuY2xvc2UoKQogCiAKLV9QZGZTdHJlYW0uUmVnaXN0ZXJGaWx0ZXIoX0FzY2lpODVEZWNvZGVQZGZTdHJlYW0pCi1fUGRmU3RyZWFtLlJlZ2lzdGVyRmlsdGVyKF9Bc2NpaUhleERlY29kZVBkZlN0cmVhbSkKLV9QZGZTdHJlYW0uUmVnaXN0ZXJGaWx0ZXIoX0ZsYXRlRGVjb2RlUGRmU3RyZWFtKQorY2xhc3MgX1ZpcnR1YWxQZGZTdHJlYW0oX1BkZlN0cmVhbSk6CisKKyAgQGNsYXNzbWV0aG9kCisgIEBwcm9wZXJ0eQorICBAYWJzdHJhY3RtZXRob2QKKyAgZGVmIG5hbWUoY2xzKToKKyAgICBwYXNzCisKKyAgQGNsYXNzbWV0aG9kCisgIEBwcm9wZXJ0eQorICBAYWJzdHJhY3RtZXRob2QKKyAgZGVmIGFsaWFzZXMoY2xzKToKKyAgICBwYXNzCisKKyAgQGNsYXNzbWV0aG9kCisgIGRlZiBSZWdpc3RlckJ5TmFtZShjbHMpOgorICAgIHBhc3MKKworICBAY2xhc3NtZXRob2QKKyAgZGVmIEFkZEVudHJpZXMoY2xzLCBlbnRyaWVzKToKKyAgICBwYXNzCisKKworY2xhc3MgX1Bhc3N0aHJvdWdoUGRmU3RyZWFtKF9WaXJ0dWFsUGRmU3RyZWFtKToKKyAgX25hbWUgPSAnKHZpcnR1YWwpIHBhc3N0aHJvdWdoJworICBfYWxpYXNlcyA9ICgnbm9vcCcsICdwYXNzdGhyb3VnaCcpCisKKyAgQGNsYXNzbWV0aG9kCisgIEBwcm9wZXJ0eQorICBkZWYgbmFtZShjbHMpOgorICAgIHJldHVybiBjbHMuX25hbWUKKworICBAY2xhc3NtZXRob2QKKyAgQHByb3BlcnR5CisgIGRlZiBhbGlhc2VzKGNscyk6CisgICAgcmV0dXJuIGNscy5fYWxpYXNlcworCisKK2NsYXNzIF9QbmdJZGF0UGRmU3RyZWFtKF9WaXJ0dWFsUGRmU3RyZWFtKToKKyAgX25hbWUgPSAnKHZpcnR1YWwpIFBORyBJREFUJworICBfYWxpYXNlcyA9ICgncG5nJywpCisKKyAgX0VYUEVDVF9IRUFERVIgPSAtMQorICBfRVhQRUNUX0xFTkdUSCA9IC0yCisgIF9FWFBFQ1RfQ0hVTktfVFlQRSA9IC0zCisgIF9FWFBFQ1RfQ1JDID0gLTQKKworICBfUE5HX0hFQURFUiA9IDB4ODk1MDRFNDcwRDBBMUEwQQorICBfUE5HX0NIVU5LX0lEQVQgPSAweDQ5NDQ0MTU0CisKKyAgQGNsYXNzbWV0aG9kCisgIEBwcm9wZXJ0eQorICBkZWYgbmFtZShjbHMpOgorICAgIHJldHVybiBjbHMuX25hbWUKKworICBAY2xhc3NtZXRob2QKKyAgQHByb3BlcnR5CisgIGRlZiBhbGlhc2VzKGNscyk6CisgICAgcmV0dXJuIGNscy5fYWxpYXNlcworCisgIEBjbGFzc21ldGhvZAorICBkZWYgQWRkRW50cmllcyhjbHMsIGVudHJpZXMpOgorICAgICMgVGVjaG5pY2FsbHkgb25seSB0cnVlIGZvciBjb21wcmVzc2lvbiBtZXRob2QgMCAoemxpYiksIGJ1dCBubyBvdGhlcgorICAgICMgbWV0aG9kcyBoYXZlIGJlZW4gc3RhbmRhcmRpemVkLgorICAgIF9QZGZTdHJlYW0uQWRkTGlzdEVudHJ5KGVudHJpZXMsICdGaWx0ZXInLCAnL0ZsYXRlRGVjb2RlJykKKworICBkZWYgX19pbml0X18oc2VsZiwgb3V0X2J1ZmZlciwgKiprd2FyZ3MpOgorICAgIHN1cGVyKCkuX19pbml0X18ob3V0X2J1ZmZlciwgKiprd2FyZ3MpCisgICAgc2VsZi5jaHVuayA9IF9QbmdJZGF0UGRmU3RyZWFtLl9FWFBFQ1RfSEVBREVSCisgICAgc2VsZi5yZW1haW5pbmcgPSA4CisgICAgc2VsZi5hY2N1bXVsYXRvciA9IDAKKyAgICBzZWxmLmxlbmd0aCA9IDAKKworICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6CisgICAgcG9zaXRpb24gPSAwCisgICAgd2hpbGUgcG9zaXRpb24gPCBsZW4oZGF0YSk6CisgICAgICBpZiBzZWxmLmNodW5rID49IDA6CisgICAgICAgICMgT25seSBwYXNzIHRocm91Z2ggSURBVCBjaHVuayBkYXRhLgorICAgICAgICByZWFkX3NpemUgPSBtaW4oc2VsZi5yZW1haW5pbmcsIGxlbihkYXRhKSAtIHBvc2l0aW9uKQorICAgICAgICBpZiBzZWxmLmNodW5rID09IF9QbmdJZGF0UGRmU3RyZWFtLl9QTkdfQ0hVTktfSURBVDoKKyAgICAgICAgICBzZWxmLmJ1ZmZlci53cml0ZShkYXRhW3Bvc2l0aW9uOnBvc2l0aW9uICsgcmVhZF9zaXplXSkKKyAgICAgICAgc2VsZi5yZW1haW5pbmcgLT0gcmVhZF9zaXplCisgICAgICAgIGlmIHNlbGYucmVtYWluaW5nID09IDA6CisgICAgICAgICAgc2VsZi5SZXNldEFjY3VtdWxhdG9yKF9QbmdJZGF0UGRmU3RyZWFtLl9FWFBFQ1RfQ1JDLCA0KQorICAgICAgICBwb3NpdGlvbiArPSByZWFkX3NpemUKKyAgICAgIGVsc2U6CisgICAgICAgICMgQXMgZmFyIGFzIHdlJ3JlIGNvbmNlcm5lZCwgUE5HIGZpbGVzIGFyZSBqdXN0IGEgaGVhZGVyIGZvbGxvd2VkIGJ5IGEKKyAgICAgICAgIyBzZXJpZXMgb2YgKGxlbmd0aCwgY2h1bmsgdHlwZSwgZGF0YVtsZW5ndGhdLCBDUkMpIGNodW5rcy4KKyAgICAgICAgaWYgc2VsZi5BY2N1bXVsYXRlQnl0ZShkYXRhW3Bvc2l0aW9uXSk6CisgICAgICAgICAgaWYgc2VsZi5jaHVuayA9PSBfUG5nSWRhdFBkZlN0cmVhbS5fRVhQRUNUX0hFQURFUjoKKyAgICAgICAgICAgIGlmIHNlbGYuYWNjdW11bGF0b3IgIT0gX1BuZ0lkYXRQZGZTdHJlYW0uX1BOR19IRUFERVI6CisgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgUE5HIGhlYWRlcicsIHNlbGYuYWNjdW11bGF0b3IpCisgICAgICAgICAgICBzZWxmLlJlc2V0QWNjdW11bGF0b3IoX1BuZ0lkYXRQZGZTdHJlYW0uX0VYUEVDVF9MRU5HVEgsIDQpCisgICAgICAgICAgZWxpZiBzZWxmLmNodW5rID09IF9QbmdJZGF0UGRmU3RyZWFtLl9FWFBFQ1RfTEVOR1RIOgorICAgICAgICAgICAgc2VsZi5sZW5ndGggPSBzZWxmLmFjY3VtdWxhdG9yCisgICAgICAgICAgICBzZWxmLlJlc2V0QWNjdW11bGF0b3IoX1BuZ0lkYXRQZGZTdHJlYW0uX0VYUEVDVF9DSFVOS19UWVBFLCA0KQorICAgICAgICAgIGVsaWYgc2VsZi5jaHVuayA9PSBfUG5nSWRhdFBkZlN0cmVhbS5fRVhQRUNUX0NIVU5LX1RZUEU6CisgICAgICAgICAgICBzZWxmLlJlc2V0QWNjdW11bGF0b3Ioc2VsZi5hY2N1bXVsYXRvciwgc2VsZi5sZW5ndGgpCisgICAgICAgICAgZWxpZiBzZWxmLmNodW5rID09IF9QbmdJZGF0UGRmU3RyZWFtLl9FWFBFQ1RfQ1JDOgorICAgICAgICAgICAgIyBEb24ndCBjYXJlIGlmIHRoZSBDUkMgaXMgY29ycmVjdC4KKyAgICAgICAgICAgIHNlbGYuUmVzZXRBY2N1bXVsYXRvcihfUG5nSWRhdFBkZlN0cmVhbS5fRVhQRUNUX0xFTkdUSCwgNCkKKyAgICAgICAgcG9zaXRpb24gKz0gMQorCisgIGRlZiBSZXNldEFjY3VtdWxhdG9yKHNlbGYsIGNodW5rLCByZW1haW5pbmcpOgorICAgIHNlbGYuY2h1bmsgPSBjaHVuaworICAgIHNlbGYucmVtYWluaW5nID0gcmVtYWluaW5nCisgICAgc2VsZi5hY2N1bXVsYXRvciA9IDAKKworICBkZWYgQWNjdW11bGF0ZUJ5dGUoc2VsZiwgYnl0ZSk6CisgICAgYXNzZXJ0IHNlbGYucmVtYWluaW5nID4gMAorICAgIHNlbGYuYWNjdW11bGF0b3IgPSBzZWxmLmFjY3VtdWxhdG9yIDw8IDggfCBieXRlCisgICAgc2VsZi5yZW1haW5pbmcgLT0gMQorICAgIHJldHVybiBzZWxmLnJlbWFpbmluZyA9PSAwCisKKworX0FzY2lpODVEZWNvZGVQZGZTdHJlYW0uUmVnaXN0ZXIoKQorX0FzY2lpSGV4RGVjb2RlUGRmU3RyZWFtLlJlZ2lzdGVyKCkKK19GbGF0ZURlY29kZVBkZlN0cmVhbS5SZWdpc3RlcigpCitfUGFzc3Rocm91Z2hQZGZTdHJlYW0uUmVnaXN0ZXIoKQorX1BuZ0lkYXRQZGZTdHJlYW0uUmVnaXN0ZXIoKQogCiBfREVGQVVMVF9GSUxURVJTID0gKF9Bc2NpaTg1RGVjb2RlUGRmU3RyZWFtLCBfRmxhdGVEZWNvZGVQZGZTdHJlYW0pCiAKQEAgLTI2MSw3ICs0NzAsNyBAQAogCiAKIGRlZiBfRW5jb2RlUGRmVmFsdWUodmFsdWUpOgotICBpZiBpc2luc3RhbmNlKHZhbHVlLCBjb2xsZWN0aW9ucy5hYmMuU2VxdWVuY2UpOgorICBpZiBpc2luc3RhbmNlKHZhbHVlLCBjb2xsZWN0aW9ucy5hYmMuTXV0YWJsZVNlcXVlbmNlKToKICAgICB2YWx1ZSA9ICdbJyArICcgJy5qb2luKHZhbHVlKSArICddJwogICByZXR1cm4gdmFsdWUKIApAQCAtMjc2LDcgKzQ4NSw4IEBACiAgICAgb3V0X2J1ZmZlci5jbG9zZSgpCiAKICAgZW50cmllcyA9IGNvbGxlY3Rpb25zLk9yZGVyZWREaWN0KCkKLSAgZW50cmllc1snRmlsdGVyJ10gPSBbZi5uYW1lIGZvciBmIGluIGFyZ3MuZmlsdGVyXQorICBmb3IgZiBpbiBhcmdzLmZpbHRlcjoKKyAgICBmLkFkZEVudHJpZXMoZW50cmllcykKICAgX1dyaXRlUGRmU3RyZWFtT2JqZWN0KAogICAgICAgYXJncy5vdXRmaWxlLmJ1ZmZlciwKICAgICAgIGRhdGE9ZW5jb2RlZF9zaW5rLmdldGJ1ZmZlcigpLApkaWZmIC0tZ2l0IGEvdGVzdGluZy90b29scy9maXh1cF9wZGZfdGVtcGxhdGUucHkgYi90ZXN0aW5nL3Rvb2xzL2ZpeHVwX3BkZl90ZW1wbGF0ZS5weQppbmRleCBlZTQ3YzRiLi5kYTJkNjA4IDEwMDc1NQotLS0gYS90ZXN0aW5nL3Rvb2xzL2ZpeHVwX3BkZl90ZW1wbGF0ZS5weQorKysgYi90ZXN0aW5nL3Rvb2xzL2ZpeHVwX3BkZl90ZW1wbGF0ZS5weQpAQCAtMSw1ICsxLDUgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBDb3B5cmlnaHQgMjAxNCBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIS91c3IvYmluL2VudiBweXRob24zCisjIENvcHlyaWdodCAyMDE0IFRoZSBQREZpdW0gQXV0aG9ycwogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAiIiJFeHBhbmRzIGEgaGFuZC13cml0dGVuIFBERiB0ZXN0Y2FzZSAodGVtcGxhdGUpIGludG8gYSB2YWxpZCBQREYgZmlsZS4KQEAgLTExLDE3ICsxMSwzMiBAQAogICB7e2hlYWRlcn19IC0gZXhwYW5kcyB0byB0aGUgaGVhZGVyIGNvbW1lbnQgcmVxdWlyZWQgZm9yIFBERiBmaWxlcy4KICAge3t4cmVmfX0gLSBleHBhbmRzIHRvIGEgZ2VuZXJhdGVkIHhyZWYgdGFibGUsIG5vdGluZyB0aGUgb2Zmc2V0LgogICB7e3RyYWlsZXJ9fSAtIGV4cGFuZHMgdG8gYSBzdGFuZGFyZCB0cmFpbGVyIHdpdGggIjEgMCBSIiBhcyB0aGUgL1Jvb3QuCisgIHt7dHJhaWxlcnNpemV9fSAtIGV4cGFuZHMgdG8gYC9TaXplIG5gLCB0byBiZSB1c2VkIGluIG5vbi1zdGFuZGFyZCB0cmFpbGVycy4KICAge3tzdGFydHhyZWZ9IC0gZXhwYW5kcyB0byBhIHN0YXJ0eHJlZiBkaXJlY3RpdmUgZm9sbG93ZWQgYnkgY29ycmVjdCBvZmZzZXQuCi0gIHt7b2JqZWN0IHggeX19IC0gZXhwYW5kcyB0byB8eCB5IG9ianwgZGVjbGFyYXRpb24sIG5vdGluZyB0aGUgb2Zmc2V0LgotICB7e3N0cmVhbWxlbn19IC0gZXhwYW5kcyB0byB8L0xlbmd0aCBufC4KKyAge3tzdGFydHhyZWZvYmogeCB5fSAtIGV4cGFuZHMgdG8gYSBzdGFydHhyZWYgZGlyZWN0aXZlIGZvbGxvd2VkIGJ5IGNvcnJlY3QKKyAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCBwb2ludGluZyB0byB0aGUgc3RhcnQgb2YgYHggeSBvYmpgLgorICB7e29iamVjdCB4IHl9fSAtIGV4cGFuZHMgdG8gYHggeSBvYmpgIGRlY2xhcmF0aW9uLCBub3RpbmcgdGhlIG9mZnNldC4KKyAge3tzdHJlYW1sZW59fSAtIGV4cGFuZHMgdG8gYC9MZW5ndGggbmAuCiAiIiIKIAotaW1wb3J0IGNTdHJpbmdJTworaW1wb3J0IGlvCiBpbXBvcnQgb3B0cGFyc2UKIGltcG9ydCBvcwogaW1wb3J0IHJlCiBpbXBvcnQgc3lzCiAKKyMgTGluZSBFbmRpbmdzLgorV0lORE9XU19MSU5FX0VORElORyA9IGInXHJcbicKK1VOSVhfTElORV9FTkRJTkcgPSBiJ1xuJworCisjIExpc3Qgb2YgZXh0ZW5zaW9ucyB3aG9zZSBsaW5lIGVuZGluZ3Mgc2hvdWxkIGJlIG1vZGlmaWVkIGFmdGVyIHBhcnNpbmcuCitFWFRFTlNJT05fT1ZFUlJJREVfTElORV9FTkRJTkdTID0gWworICAgICcuanMnLAorICAgICcuZnJhZ21lbnQnLAorICAgICcuaW4nLAorICAgICcueG1sJywKK10KKwogCiBjbGFzcyBTdHJlYW1MZW5TdGF0ZToKICAgU1RBUlQgPSAxCkBAIC0zMCwyOCArNDUsMzMgQEAKIAogCiBjbGFzcyBUZW1wbGF0ZVByb2Nlc3NvcjoKLSAgSEVBREVSX1RPS0VOID0gJ3t7aGVhZGVyfX0nCi0gIEhFQURFUl9SRVBMQUNFTUVOVCA9ICclUERGLTEuN1xuJVx4YTBceGYyXHhhNFx4ZjQnCisgIEhFQURFUl9UT0tFTiA9IGIne3toZWFkZXJ9fScKKyAgSEVBREVSX1JFUExBQ0VNRU5UID0gYiclUERGLTEuN1xuJVx4YTBceGYyXHhhNFx4ZjQnCiAKLSAgWFJFRl9UT0tFTiA9ICd7e3hyZWZ9fScKLSAgWFJFRl9SRVBMQUNFTUVOVCA9ICd4cmVmXG4lZCAlZFxuJworICBYUkVGX1RPS0VOID0gYid7e3hyZWZ9fScKKyAgWFJFRl9SRVBMQUNFTUVOVCA9IGIneHJlZlxuJWQgJWRcbicKIAotICBYUkVGX1JFUExBQ0VNRU5UX04gPSAnJTAxMGQgJTA1ZCBuIFxuJwotICBYUkVGX1JFUExBQ0VNRU5UX0YgPSAnMDAwMDAwMDAwMCA2NTUzNSBmIFxuJworICBYUkVGX1JFUExBQ0VNRU5UX04gPSBiJyUwMTBkICUwNWQgbiBcbicKKyAgWFJFRl9SRVBMQUNFTUVOVF9GID0gYicwMDAwMDAwMDAwIDY1NTM1IGYgXG4nCiAgICMgWFJFRiByb3dzIG11c3QgYmUgZXhhY3RseSAyMCBieXRlcyAtIHNwYWNlIHJlcXVpcmVkLgogICBhc3NlcnQgbGVuKFhSRUZfUkVQTEFDRU1FTlRfRikgPT0gMjAKIAotICBUUkFJTEVSX1RPS0VOID0gJ3t7dHJhaWxlcn19JwotICBUUkFJTEVSX1JFUExBQ0VNRU5UID0gJ3RyYWlsZXIgPDxcbiAgL1Jvb3QgMSAwIFJcbiAgL1NpemUgJWRcbj4+JworICBUUkFJTEVSX1RPS0VOID0gYid7e3RyYWlsZXJ9fScKKyAgVFJBSUxFUl9SRVBMQUNFTUVOVCA9IGIndHJhaWxlciA8PFxuICAvUm9vdCAxIDAgUlxuICAvU2l6ZSAlZFxuPj4nCiAKLSAgU1RBUlRYUkVGX1RPS0VOID0gJ3t7c3RhcnR4cmVmfX0nCi0gIFNUQVJUWFJFRl9SRVBMQUNFTUVOVCA9ICdzdGFydHhyZWZcbiVkJworICBUUkFJTEVSU0laRV9UT0tFTiA9IGIne3t0cmFpbGVyc2l6ZX19JworICBUUkFJTEVSU0laRV9SRVBMQUNFTUVOVCA9IGInL1NpemUgJWQnCiAKLSAgT0JKRUNUX1BBVFRFUk4gPSByJ1x7XHtvYmplY3RccysoXGQrKVxzKyhcZCspXH1cfScKLSAgT0JKRUNUX1JFUExBQ0VNRU5UID0gcidcMSBcMiBvYmonCisgIFNUQVJUWFJFRl9UT0tFTiA9IGIne3tzdGFydHhyZWZ9fScKKyAgU1RBUlRYUkVGX1JFUExBQ0VNRU5UID0gYidzdGFydHhyZWZcbiVkJwogCi0gIFNUUkVBTUxFTl9UT0tFTiA9ICd7e3N0cmVhbWxlbn19JwotICBTVFJFQU1MRU5fUkVQTEFDRU1FTlQgPSAnL0xlbmd0aCAlZCcKKyAgU1RBUlRYUkVGT0JKX1BBVFRFUk4gPSBiJ1x7XHtzdGFydHhyZWZvYmpccysoXGQrKVxzKyhcZCspXH1cfScKKworICBPQkpFQ1RfUEFUVEVSTiA9IGInXHtce29iamVjdFxzKyhcZCspXHMrKFxkKylcfVx9JworICBPQkpFQ1RfUkVQTEFDRU1FTlQgPSBiJ1xnPDE+IFxnPDI+IG9iaicKKworICBTVFJFQU1MRU5fVE9LRU4gPSBiJ3t7c3RyZWFtbGVufX0nCisgIFNUUkVBTUxFTl9SRVBMQUNFTUVOVCA9IGInL0xlbmd0aCAlZCcKIAogICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgc2VsZi5zdHJlYW1sZW5fc3RhdGUgPSBTdHJlYW1MZW5TdGF0ZS5TVEFSVApAQCAtODIsMTIgKzEwMiwxMiBAQAogICAgICAgcmV0dXJuCiAKICAgICBpZiAoc2VsZi5zdHJlYW1sZW5fc3RhdGUgPT0gU3RyZWFtTGVuU3RhdGUuRklORF9TVFJFQU0gYW5kCi0gICAgICAgIGxpbmUucnN0cmlwKCkgPT0gJ3N0cmVhbScpOgorICAgICAgICBsaW5lLnJzdHJpcCgpID09IGInc3RyZWFtJyk6CiAgICAgICBzZWxmLnN0cmVhbWxlbl9zdGF0ZSA9IFN0cmVhbUxlblN0YXRlLkZJTkRfRU5EU1RSRUFNCiAgICAgICByZXR1cm4KIAogICAgIGlmIHNlbGYuc3RyZWFtbGVuX3N0YXRlID09IFN0cmVhbUxlblN0YXRlLkZJTkRfRU5EU1RSRUFNOgotICAgICAgaWYgbGluZS5yc3RyaXAoKSA9PSAnZW5kc3RyZWFtJzoKKyAgICAgIGlmIGxpbmUucnN0cmlwKCkgPT0gYidlbmRzdHJlYW0nOgogICAgICAgICBzZWxmLnN0cmVhbWxlbl9zdGF0ZSA9IFN0cmVhbUxlblN0YXRlLlNUQVJUCiAgICAgICBlbHNlOgogICAgICAgICBzZWxmLnN0cmVhbWxlbnNbLTFdICs9IGxlbihsaW5lKQpAQCAtMTA0LDYgKzEyNCw5IEBACiAgICAgaWYgc2VsZi5UUkFJTEVSX1RPS0VOIGluIGxpbmU6CiAgICAgICByZXBsYWNlbWVudCA9IHNlbGYuVFJBSUxFUl9SRVBMQUNFTUVOVCAlIChzZWxmLm1heF9vYmplY3RfbnVtYmVyICsgMSkKICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2Uoc2VsZi5UUkFJTEVSX1RPS0VOLCByZXBsYWNlbWVudCkKKyAgICBpZiBzZWxmLlRSQUlMRVJTSVpFX1RPS0VOIGluIGxpbmU6CisgICAgICByZXBsYWNlbWVudCA9IHNlbGYuVFJBSUxFUlNJWkVfUkVQTEFDRU1FTlQgJSAoc2VsZi5tYXhfb2JqZWN0X251bWJlciArIDEpCisgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKHNlbGYuVFJBSUxFUlNJWkVfVE9LRU4sIHJlcGxhY2VtZW50KQogICAgIGlmIHNlbGYuU1RBUlRYUkVGX1RPS0VOIGluIGxpbmU6CiAgICAgICByZXBsYWNlbWVudCA9IHNlbGYuU1RBUlRYUkVGX1JFUExBQ0VNRU5UICUgc2VsZi54cmVmX29mZnNldAogICAgICAgbGluZSA9IGxpbmUucmVwbGFjZShzZWxmLlNUQVJUWFJFRl9UT0tFTiwgcmVwbGFjZW1lbnQpCkBAIC0xMTEsNiArMTM0LDEyIEBACiAgICAgaWYgbWF0Y2g6CiAgICAgICBzZWxmLmluc2VydF94cmVmX2VudHJ5KGludChtYXRjaC5ncm91cCgxKSksIGludChtYXRjaC5ncm91cCgyKSkpCiAgICAgICBsaW5lID0gcmUuc3ViKHNlbGYuT0JKRUNUX1BBVFRFUk4sIHNlbGYuT0JKRUNUX1JFUExBQ0VNRU5ULCBsaW5lKQorICAgIG1hdGNoID0gcmUubWF0Y2goc2VsZi5TVEFSVFhSRUZPQkpfUEFUVEVSTiwgbGluZSkKKyAgICBpZiBtYXRjaDoKKyAgICAgIChvZmZzZXQsIGdlbmVyYXRpb25fbnVtYmVyKSA9IHNlbGYub2JqZWN0c1tpbnQobWF0Y2guZ3JvdXAoMSkpXQorICAgICAgYXNzZXJ0IGludChtYXRjaC5ncm91cCgyKSkgPT0gZ2VuZXJhdGlvbl9udW1iZXIKKyAgICAgIHJlcGxhY2VtZW50ID0gc2VsZi5TVEFSVFhSRUZfUkVQTEFDRU1FTlQgJSBvZmZzZXQKKyAgICAgIGxpbmUgPSByZS5zdWIoc2VsZi5TVEFSVFhSRUZPQkpfUEFUVEVSTiwgcmVwbGFjZW1lbnQsIGxpbmUpCiAgICAgc2VsZi5vZmZzZXQgKz0gbGVuKGxpbmUpCiAgICAgcmV0dXJuIGxpbmUKIApAQCAtMTE5LDcgKzE0OCw3IEBACiAgIHByb2Nlc3NvciA9IFRlbXBsYXRlUHJvY2Vzc29yKCkKICAgdHJ5OgogICAgIHdpdGggb3BlbihvdXRwdXRfcGF0aCwgJ3diJykgYXMgb3V0ZmlsZToKLSAgICAgIHByZXByb2Nlc3NlZCA9IGNTdHJpbmdJTy5TdHJpbmdJTygpCisgICAgICBwcmVwcm9jZXNzZWQgPSBpby5CeXRlc0lPKCkKICAgICAgIGZvciBsaW5lIGluIGluZmlsZToKICAgICAgICAgcHJlcHJvY2Vzc2VkLndyaXRlKGxpbmUpCiAgICAgICAgIHByb2Nlc3Nvci5wcmVwcm9jZXNzX2xpbmUobGluZSkKQEAgLTEyNywyNyArMTU2LDQzIEBACiAgICAgICBmb3IgbGluZSBpbiBwcmVwcm9jZXNzZWQ6CiAgICAgICAgIG91dGZpbGUud3JpdGUocHJvY2Vzc29yLnByb2Nlc3NfbGluZShsaW5lKSkKICAgZXhjZXB0IElPRXJyb3I6Ci0gICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgJ2ZhaWxlZCB0byBwcm9jZXNzICVzJyAlIGlucHV0X3BhdGgKKyAgICBwcmludCgnZmFpbGVkIHRvIHByb2Nlc3MgJXMnICUgaW5wdXRfcGF0aCwgZmlsZT1zeXMuc3RkZXJyKQogCiAKIGRlZiBpbnNlcnRfaW5jbHVkZXMoaW5wdXRfcGF0aCwgb3V0cHV0X2ZpbGUsIHZpc2l0ZWRfc2V0KToKICAgaW5wdXRfcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgoaW5wdXRfcGF0aCkKICAgaWYgaW5wdXRfcGF0aCBpbiB2aXNpdGVkX3NldDoKLSAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAnQ2lyY3VsYXIgaW5jbHVzaW9uICVzLCBpZ25vcmluZycgJSBpbnB1dF9wYXRoCisgICAgcHJpbnQoJ0NpcmN1bGFyIGluY2x1c2lvbiAlcywgaWdub3JpbmcnICUgaW5wdXRfcGF0aCwgZmlsZT1zeXMuc3RkZXJyKQogICAgIHJldHVybgogICB2aXNpdGVkX3NldC5hZGQoaW5wdXRfcGF0aCkKICAgdHJ5OgorICAgIF8sIGZpbGVfZXh0ZW5zaW9uID0gb3MucGF0aC5zcGxpdGV4dChpbnB1dF9wYXRoKQorICAgIG92ZXJyaWRlX2xpbmVfZW5kaW5ncyA9IChmaWxlX2V4dGVuc2lvbiBpbiBFWFRFTlNJT05fT1ZFUlJJREVfTElORV9FTkRJTkdTKQorCisgICAgZW5kX29mX2ZpbGVfbGluZV9lbmRpbmcgPSBGYWxzZQogICAgIHdpdGggb3BlbihpbnB1dF9wYXRoLCAncmInKSBhcyBpbmZpbGU6CiAgICAgICBmb3IgbGluZSBpbiBpbmZpbGU6Ci0gICAgICAgIG1hdGNoID0gcmUubWF0Y2gocidccypce1x7aW5jbHVkZVxzKyguKylcfVx9JywgbGluZSkKKyAgICAgICAgbWF0Y2ggPSByZS5tYXRjaChiJ1xzKlx7XHtpbmNsdWRlXHMrKC4rKVx9XH0nLCBsaW5lKQogICAgICAgICBpZiBtYXRjaDoKICAgICAgICAgICBpbnNlcnRfaW5jbHVkZXMoCi0gICAgICAgICAgICAgIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoaW5wdXRfcGF0aCksIG1hdGNoLmdyb3VwKDEpKSwKLSAgICAgICAgICAgICAgb3V0cHV0X2ZpbGUsIHZpc2l0ZWRfc2V0KQorICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oCisgICAgICAgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoaW5wdXRfcGF0aCksCisgICAgICAgICAgICAgICAgICBtYXRjaC5ncm91cCgxKS5kZWNvZGUoJ3V0Zi04JykpLCBvdXRwdXRfZmlsZSwgdmlzaXRlZF9zZXQpCiAgICAgICAgIGVsc2U6CisgICAgICAgICAgaWYgb3ZlcnJpZGVfbGluZV9lbmRpbmdzOgorICAgICAgICAgICAgIyBSZXBsYWNlIENSTEYgd2l0aCBMRiBsaW5lIGVuZGluZ3MgZm9yIC5pbiBmaWxlcy4KKyAgICAgICAgICAgIGlmIGxpbmUuZW5kc3dpdGgoV0lORE9XU19MSU5FX0VORElORyk6CisgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlbW92ZXN1ZmZpeChXSU5ET1dTX0xJTkVfRU5ESU5HKSArIFVOSVhfTElORV9FTkRJTkcKKyAgICAgICAgICAgICAgZW5kX29mX2ZpbGVfbGluZV9lbmRpbmcgPSBUcnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICBlbmRfb2ZfZmlsZV9saW5lX2VuZGluZyA9IGxpbmUuZW5kc3dpdGgoVU5JWF9MSU5FX0VORElORykKICAgICAgICAgICBvdXRwdXRfZmlsZS53cml0ZShsaW5lKQorCisgICAgIyBFbnN1cmUgdGhlIGluY2x1ZGUgZW5kcyBvbiBpdHMgb3duIGxpbmUuCisgICAgaWYgbm90IGVuZF9vZl9maWxlX2xpbmVfZW5kaW5nOgorICAgICAgb3V0cHV0X2ZpbGUud3JpdGUoVU5JWF9MSU5FX0VORElORykKICAgZXhjZXB0IElPRXJyb3I6Ci0gICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgJ2ZhaWxlZCB0byBpbmNsdWRlICVzJyAlIGlucHV0X3BhdGgKKyAgICBwcmludCgnZmFpbGVkIHRvIGluY2x1ZGUgJXMnICUgaW5wdXRfcGF0aCwgZmlsZT1zeXMuc3RkZXJyKQogICAgIHJhaXNlCiAgIHZpc2l0ZWRfc2V0LmRpc2NhcmQoaW5wdXRfcGF0aCkKIApAQCAtMTYyLDcgKzIwNyw3IEBACiAgICAgb3V0cHV0X2RpciA9IG9zLnBhdGguZGlybmFtZSh0ZXN0Y2FzZV9wYXRoKQogICAgIGlmIG9wdGlvbnMub3V0cHV0X2RpcjoKICAgICAgIG91dHB1dF9kaXIgPSBvcHRpb25zLm91dHB1dF9kaXIKLSAgICBpbnRlcm1lZGlhdGVfc3RyZWFtID0gY1N0cmluZ0lPLlN0cmluZ0lPKCkKKyAgICBpbnRlcm1lZGlhdGVfc3RyZWFtID0gaW8uQnl0ZXNJTygpCiAgICAgaW5zZXJ0X2luY2x1ZGVzKHRlc3RjYXNlX3BhdGgsIGludGVybWVkaWF0ZV9zdHJlYW0sIHNldCgpKQogICAgIGludGVybWVkaWF0ZV9zdHJlYW0uc2VlaygwKQogICAgIG91dHB1dF9wYXRoID0gb3MucGF0aC5qb2luKG91dHB1dF9kaXIsIHRlc3RjYXNlX3Jvb3QgKyAnLnBkZicpCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rvb2xzL2dpdGhlbHBlci5weSBiL3Rlc3RpbmcvdG9vbHMvZ2l0aGVscGVyLnB5CmluZGV4IDkxYTZjNzEuLjE5MDcxYjAgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvdG9vbHMvZ2l0aGVscGVyLnB5CisrKyBiL3Rlc3RpbmcvdG9vbHMvZ2l0aGVscGVyLnB5CkBAIC0xLDE1ICsxLDE0IEBACi0jIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IDIwMTcgVGhlIFBERml1bSBBdXRob3JzCiAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KICIiIkNsYXNzZXMgZm9yIGRlYWxpbmcgd2l0aCBnaXQuIiIiCiAKIGltcG9ydCBzdWJwcm9jZXNzCiAKLSMgcHlsaW50OiBkaXNhYmxlPXJlbGF0aXZlLWltcG9ydAogZnJvbSBjb21tb24gaW1wb3J0IFJ1bkNvbW1hbmRQcm9wYWdhdGVFcnIKIAogCi1jbGFzcyBHaXRIZWxwZXIob2JqZWN0KToKK2NsYXNzIEdpdEhlbHBlcjoKICAgIiIiSXNzdWVzIGdpdCBjb21tYW5kcy4gU3RhdGVmdWwuIiIiCiAKICAgZGVmIF9faW5pdF9fKHNlbGYpOgpAQCAtMjAsOCArMTksOCBAQAogICAgIFJ1bkNvbW1hbmRQcm9wYWdhdGVFcnIoWydnaXQnLCAnY2hlY2tvdXQnLCBicmFuY2hdLCBleGl0X3N0YXR1c19vbl9lcnJvcj0xKQogCiAgIGRlZiBGZXRjaE9yaWdpbk1hc3RlcihzZWxmKToKLSAgICAiIiJGZXRjaGVzIG5ldyBjaGFuZ2VzIG9uIG9yaWdpbi9tYXN0ZXIuIiIiCi0gICAgUnVuQ29tbWFuZFByb3BhZ2F0ZUVycihbJ2dpdCcsICdmZXRjaCcsICdvcmlnaW4nLCAnbWFzdGVyJ10sCisgICAgIiIiRmV0Y2hlcyBuZXcgY2hhbmdlcyBvbiBvcmlnaW4vbWFpbi4iIiIKKyAgICBSdW5Db21tYW5kUHJvcGFnYXRlRXJyKFsnZ2l0JywgJ2ZldGNoJywgJ29yaWdpbicsICdtYWluJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGl0X3N0YXR1c19vbl9lcnJvcj0xKQogCiAgIGRlZiBTdGFzaFB1c2goc2VsZik6CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rvb2xzL2dvbGQucHkgYi90ZXN0aW5nL3Rvb2xzL2dvbGQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2ODZiYmEuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy90b29scy9nb2xkLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjg0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTUgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0jIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCi0KLWltcG9ydCBqc29uCi1pbXBvcnQgb3MKLWltcG9ydCBzaGxleAotaW1wb3J0IHNodXRpbAotaW1wb3J0IHNzbAotaW1wb3J0IHVybGxpYjIKLQotCi1kZWYgX1BhcnNlS2V5VmFsdWVQYWlycyhrdl9zdHIpOgotICAiIiIKLSAgUGFyc2VzIGEgc3RyaW5nIG9mIHRoZSB0eXBlICdrZXkxIHZhbHVlMSBrZXkyIHZhbHVlMicgaW50byBhIGRpY3QuCi0gICIiIgotICBrdl9wYWlycyA9IHNobGV4LnNwbGl0KGt2X3N0cikKLSAgaWYgbGVuKGt2X3BhaXJzKSAlIDI6Ci0gICAgcmFpc2UgVmFsdWVFcnJvcignVW5ldmVuIG51bWJlciBvZiBrZXkvdmFsdWUgcGFpcnMuIEdvdCAlcycgJSBrdl9zdHIpCi0gIHJldHVybiB7a3ZfcGFpcnNbaV06IGt2X3BhaXJzW2kgKyAxXSBmb3IgaSBpbiB4cmFuZ2UoMCwgbGVuKGt2X3BhaXJzKSwgMil9Ci0KLQotIyBUaGlzIG1vZHVsZSBkb3dubG9hZHMgYSBqc29uIHByb3ZpZGVkIGJ5IFNraWEgR29sZCB3aXRoIHRoZSBleHBlY3RlZCBiYXNlbGluZXMKLSMgZm9yIGVhY2ggdGVzdCBmaWxlLgotIwotIyBUaGUgZXhwZWN0ZWQgZm9ybWF0IGZvciB0aGUganNvbiBpczoKLSMgewotIyAgICJjb21taXQiOiB7Ci0jICAgICAiYXV0aG9yIjogIkpvaG4gRG9lIChqZG9lQGNocm9taXVtLm9yZykiLAotIyAgICAgImNvbW1pdF90aW1lIjogMTUxMDU5ODEyMywKLSMgICAgICJoYXNoIjogImNlZTM5ZTZlOTBjMjE5Y2M5MWYyYzk0YTkxMmEwNjk3N2Y0NDYxYTAiCi0jICAgfSwKLSMgICAibWFzdGVyIjogewotIyAgICAgImFiYy5wZGYuMSI6IHsKLSMgICAgICAgIjBlYzNkODZmNTQ1MDUyYWNkN2M5YTE2ZmRlOGNhOWQ0IjogMSwKLSMgICAgICAgIjgwNDU1YjcxNjczYmVjYzlmYmMxMDBkNmRhNTZjYTY1IjogMSwKLSMgICAgICAgImI2OGUyZWNiODAwOTBiNDUwMmVjODlhZDFiZTIzMjJjIjogMQotIyAgICAgIH0sCi0jICAgICAiZGVmZ2gucGRmLjAiOiB7Ci0jICAgICAgICIwMWUwMjBjZDRjZDA1YzY3MzhlNDc5YTQ2YTUwNjA0NCI6IDEsCi0jICAgICAgICJiNjhlMmVjYjgwMDkwYjQ1MDJlYzg5YWQxYmUyMzIyYyI6IDEKLSMgICAgIH0KLSMgICB9LAotIyAgICJjaGFuZ2VMaXN0cyI6IHsKLSMgICAgICIxODQ5OSIgOiB7Ci0jICAgICAgICJhYmMucGRmLjEiOiB7Ci0jICAgICAgICAgImQ1ZGQ2NDkxMjRjZjE3NzkxNTIyNTNkYzhmYjIzOWM1IjogMSwKLSMgICAgICAgICAiNDJhMjcwNTgxOTMwNTc5Y2RiMGYyODY3NDk3MmZiMWEiOiAxLAotIyAgICAgICB9Ci0jICAgICB9Ci0jICAgfQotIyB9Ci1jbGFzcyBHb2xkQmFzZWxpbmUob2JqZWN0KToKLQotICBkZWYgX19pbml0X18oc2VsZiwgcHJvcGVydGllc19zdHIpOgotICAgICIiIgotICAgIHByb3BlcnRpZXNfc3RyIGlzIGEgc3RyaW5nIHdpdGggc3BhY2Ugc2VwYXJhdGVkIGtleS92YWx1ZSBwYWlycyB0aGF0Ci0gICAgICAgICAgICAgICBpcyB1c2VkIHRvIGZpbmQgdGhlIGNsIG51bWJlciBmb3Igd2hpY2ggdG8gYmFzZWxpbmUKLSAgICAiIiIKLSAgICBzZWxmLl9wcm9wZXJ0aWVzID0gX1BhcnNlS2V5VmFsdWVQYWlycyhwcm9wZXJ0aWVzX3N0cikKLSAgICBzZWxmLl9iYXNlbGluZXMgPSBzZWxmLl9Mb2FkU2tpYUdvbGRCYXNlbGluZXMoKQotCi0gIGRlZiBfTG9hZFNraWFHb2xkQmFzZWxpbmVzKHNlbGYpOgotICAgICIiIgotICAgIERvd25sb2FkIHRoZSBiYXNlbGluZSBqc29uIGFuZCByZXR1cm4gYSBsaXN0IG9mIHRoZSB0d28gYmFzZWxpbmVzIHRoYXQKLSAgICBzaG91bGQgYmUgdXNlZCB0byBtYXRjaCBoYXNoZXMgKG1hc3RlciBhbmQgY2wjKS4KLSAgICAiIiIKLSAgICBHT0xEX0JBU0VMSU5FX1VSTCA9ICdodHRwczovL3BkZml1bS1nb2xkLnNraWEub3JnL2pzb24vYmFzZWxpbmUnCi0KLSAgICAjIElmIHdlIGhhdmUgYW4gaXNzdWUgbnVtYmVyIGFkZCBpdCB0byB0aGUgYmFzZWxpbmUgVVJMCi0gICAgY2xfbnVtYmVyX3N0ciA9IHNlbGYuX3Byb3BlcnRpZXMuZ2V0KCdpc3N1ZScsIE5vbmUpCi0gICAgdXJsID0gR09MRF9CQVNFTElORV9VUkwgKyAoJy8nICsgY2xfbnVtYmVyX3N0ciBpZiBjbF9udW1iZXJfc3RyIGVsc2UgJycpCi0KLSAgICBqc29uX2RhdGEgPSAnJwotICAgIE1BWF9USU1FT1VUID0gMzMgICMgNSB0cmllcy4gKDIsIDQsIDgsIDE2LCAzMikKLSAgICB0aW1lb3V0ID0gMgotICAgIHdoaWxlIFRydWU6Ci0gICAgICB0cnk6Ci0gICAgICAgIHJlc3BvbnNlID0gdXJsbGliMi51cmxvcGVuKHVybCwgdGltZW91dD10aW1lb3V0KQotICAgICAgICBjX3R5cGUgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC10eXBlJywgJycpCi0gICAgICAgIEVYUEVDVEVEX0NPTlRFTlRfVFlQRSA9ICdhcHBsaWNhdGlvbi9qc29uJwotICAgICAgICBpZiBjX3R5cGUgIT0gRVhQRUNURURfQ09OVEVOVF9UWVBFOgotICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY29udGVudCB0eXBlLiBHb3QgJXMgaW5zdGVhZCBvZiAlcycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNfdHlwZSwgRVhQRUNURURfQ09OVEVOVF9UWVBFKSkKLSAgICAgICAganNvbl9kYXRhID0gcmVzcG9uc2UucmVhZCgpCi0gICAgICAgIGJyZWFrICAjIElmIHRoaXMgbGluZSBpcyByZWFjaGVkLCB0aGVuIG5vIGV4Y2VwdGlvbiBvY2N1cnJlZC4KLSAgICAgIGV4Y2VwdCAoc3NsLlNTTEVycm9yLCB1cmxsaWIyLkhUVFBFcnJvciwgdXJsbGliMi5VUkxFcnJvcikgYXMgZToKLSAgICAgICAgdGltZW91dCAqPSAyCi0gICAgICAgIGlmIHRpbWVvdXQgPCBNQVhfVElNRU9VVDoKLSAgICAgICAgICBjb250aW51ZQotICAgICAgICBwcmludCgnRXJyb3I6IFVuYWJsZSB0byByZWFkIHNraWEgZ29sZCBqc29uIGZyb20gJXM6ICVzJyAlICh1cmwsIGUpKQotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgdHJ5OgotICAgICAgZGF0YSA9IGpzb24ubG9hZHMoanNvbl9kYXRhKQotICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0gICAgICBwcmludCAnRXJyb3I6IE1hbGZvcm1lZCBqc29uIHJlYWQgZnJvbSAlczogJXMnICUgKHVybCwgZSkKLSAgICAgIHJldHVybiBOb25lCi0KLSAgICByZXR1cm4gZGF0YS5nZXQoJ21hc3RlcicsIHt9KQotCi0gICMgUmV0dXJuIHZhbHVlcyBmb3IgTWF0Y2hMb2NhbFJlc3VsdCgpLgotICBNQVRDSCA9ICdtYXRjaCcKLSAgTUlTTUFUQ0ggPSAnbWlzbWF0Y2gnCi0gIE5PX0JBU0VMSU5FID0gJ25vX2Jhc2VsaW5lJwotICBCQVNFTElORV9ET1dOTE9BRF9GQUlMRUQgPSAnYmFzZWxpbmVfZG93bmxvYWRfZmFpbGVkJwotCi0gIGRlZiBNYXRjaExvY2FsUmVzdWx0KHNlbGYsIHRlc3RfbmFtZSwgbWQ1X2hhc2gpOgotICAgICIiIgotICAgIE1hdGNoIGEgbG9jYWxseSBnZW5lcmF0ZWQgaGFzaCBvZiBhIHRlc3QgY2FzZXMgcmVuZGVyZWQgaW1hZ2Ugd2l0aCB0aGUKLSAgICBleHBlY3RlZCBoYXNoZXMgZG93bmxvYWRlZCBpbiB0aGUgYmFzZWxpbmVzIGpzb24uCi0KLSAgICBFYWNoIGJhc2VsaW5lIGlzIGEgZGljdCBtYXBwaW5nIHRoZSB0ZXN0IGNhc2UgbmFtZSB0byBhIGRpY3Qgd2l0aCB0aGUKLSAgICBleHBlY3RlZCBoYXNoZXMgYXMga2V5cy4gVGhlcmVmb3JlLCB0aGlzIGxpc3Qgb2YgYmFzZWxpbmVzIHNob3VsZCBiZQotICAgIHNlYXJjaGVkIHVudGlsIHRoZSB0ZXN0IGNhc2UgbmFtZSBpcyBmb3VuZCwgdGhlbiB0aGUgaGFzaCBzaG91bGQgYmUgbWF0Y2hlZAotICAgIHdpdGggdGhlIG9wdGlvbnMgaW4gdGhhdCBkaWN0LiBJZiB0aGUgaGFzaGVzIGRvbid0IG1hdGNoLCBpdCBzaG91bGQgYmUKLSAgICBjb25zaWRlcmVkIGEgZmFpbHVyZSBhbmQgd2Ugc2hvdWxkIG5vdCBjb250aW51ZSBzZWFyY2hpbmcgdGhlIGJhc2VsaW5lIGxpc3QuCi0KLSAgICBSZXR1cm5zIE1BVENIIGlmIHRoZSBtZDUgcHJvdmlkZWQgbWF0Y2hlcyB0aGUgb25lcyBpbiB0aGUgYmFzZWxpbmUganNvbiwKLSAgICBNSVNNQVRDSCBpZiBpdCBkb2VzIG5vdCwgTk9fQkFTRUxJTkUgaWYgdGhlIHRlc3QgY2FzZSBoYXMgbm8gYmFzZWxpbmUsIG9yCi0gICAgQkFTRUxJTkVfRE9XTkxPQURfRkFJTEVEIGlmIHRoZSBiYXNlbGluZSBjb3VsZCBub3QgYmUgZG93bmxvYWRlZCBhbmQgcGFyc2VkLgotICAgICIiIgotICAgIGlmIHNlbGYuX2Jhc2VsaW5lcyBpcyBOb25lOgotICAgICAgcmV0dXJuIEdvbGRCYXNlbGluZS5CQVNFTElORV9ET1dOTE9BRF9GQUlMRUQKLQotICAgIGZvdW5kX3Rlc3RfY2FzZSA9IEZhbHNlCi0gICAgaWYgdGVzdF9uYW1lIGluIHNlbGYuX2Jhc2VsaW5lczoKLSAgICAgIGZvdW5kX3Rlc3RfY2FzZSA9IFRydWUKLSAgICAgIGlmIG1kNV9oYXNoIGluIHNlbGYuX2Jhc2VsaW5lc1t0ZXN0X25hbWVdOgotICAgICAgICByZXR1cm4gR29sZEJhc2VsaW5lLk1BVENICi0KLSAgICByZXR1cm4gKEdvbGRCYXNlbGluZS5NSVNNQVRDSAotICAgICAgICAgICAgaWYgZm91bmRfdGVzdF9jYXNlIGVsc2UgR29sZEJhc2VsaW5lLk5PX0JBU0VMSU5FKQotCi0KLSMgVGhpcyBtb2R1bGUgY29sbGVjdHMgYW5kIHdyaXRlcyBvdXRwdXQgaW4gYSBmb3JtYXQgZXhwZWN0ZWQgYnkgdGhlCi0jIEdvbGQgYmFzZWxpbmUgdG9vbC4gQmFzZWQgb24gbWV0YSBkYXRhIHByb3ZpZGVkIGV4cGxpY2l0bHkgYW5kIGJ5Ci0jIGFkZGluZyBhIHNlcmllcyBvZiB0ZXN0IHJlc3VsdHMgaXQgY2FuIGJlIHVzZWQgdG8gcHJvZHVjZQotIyBhIEpTT04gZmlsZSB0aGF0IGlzIHVwbG9hZGVkIHRvIEdvb2dsZSBTdG9yYWdlIGFuZCBpbmdlc3RlZCBieSBHb2xkLgotIwotIyBUaGUgb3V0cHV0IHdpbGwgbG9vayBzaW1pbGFyIHRoaXM6Ci0jCi0jIHsKLSMgICAgImJ1aWxkX251bWJlciIgOiAiMiIsCi0jICAgICJnaXRIYXNoIiA6ICJhNGEzMzgxNzkwMTNiMDI5ZDZkZDU1ZTczN2I1YmQ2NDhhOWZiNjhjIiwKLSMgICAgImtleSIgOiB7Ci0jICAgICAgICJhcmNoIiA6ICJhcm02NCIsCi0jICAgICAgICJjb21waWxlciIgOiAiQ2xhbmciLAotIyAgICB9LAotIyAgICAicmVzdWx0cyIgOiBbCi0jICAgICAgIHsKLSMgICAgICAgICAgImtleSIgOiB7Ci0jICAgICAgICAgICAgICJjb25maWciIDogInZrIiwKLSMgICAgICAgICAgICAgIm5hbWUiIDogInl1dl9udjEyX3RvX3JnYl9lZmZlY3QiLAotIyAgICAgICAgICAgICAic291cmNlX3R5cGUiIDogImdtIgotIyAgICAgICAgICB9LAotIyAgICAgICAgICAibWQ1IiA6ICI3ZGIzNGRhMjQ2ODY4ZDUwYWI5ZGRkNzc2Y2U2ZDc3OSIsCi0jICAgICAgICAgICJvcHRpb25zIiA6IHsKLSMgICAgICAgICAgICAgImV4dCIgOiAicG5nIiwKLSMgICAgICAgICAgICAgImdhbW1hX2NvcnJlY3QiIDogIm5vIgotIyAgICAgICAgICB9Ci0jICAgICAgIH0sCi0jICAgICAgIHsKLSMgICAgICAgICAgImtleSIgOiB7Ci0jICAgICAgICAgICAgICJjb25maWciIDogInZrIiwKLSMgICAgICAgICAgICAgIm5hbWUiIDogInl1dl90b19yZ2JfZWZmZWN0IiwKLSMgICAgICAgICAgICAgInNvdXJjZV90eXBlIiA6ICJnbSIKLSMgICAgICAgICAgfSwKLSMgICAgICAgICAgIm1kNSIgOiAiMGI5NTVmMzg3NzQwYzY2ZWIyM2JmMGUyNTNjODBkNjQiLAotIyAgICAgICAgICAib3B0aW9ucyIgOiB7Ci0jICAgICAgICAgICAgICJleHQiIDogInBuZyIsCi0jICAgICAgICAgICAgICJnYW1tYV9jb3JyZWN0IiA6ICJubyIKLSMgICAgICAgICAgfQotIyAgICAgICB9Ci0jICAgIF0sCi0jIH0KLSMKLWNsYXNzIEdvbGRSZXN1bHRzKG9iamVjdCk6Ci0KLSAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZV90eXBlLCBvdXRwdXRfZGlyLCBwcm9wZXJ0aWVzX3N0ciwga2V5X3N0ciwKLSAgICAgICAgICAgICAgIGlnbm9yZV9oYXNoZXNfZmlsZSk6Ci0gICAgIiIiCi0gICAgc291cmNlX3R5cGUgaXMgdGhlIHNvdXJjZV90eXBlICg9Y29ycHVzKSBmaWVsZCB1c2VkIGZvciBhbGwgcmVzdWx0cy4KLSAgICBvdXRwdXRfZGlyIGlzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlIHJlc3VsdGluZyBpbWFnZXMgYXJlIGNvcGllZCBhbmQKLSAgICAgICAgICAgICAgIHRoZSBkbS5qc29uIGZpbGUgaXMgd3JpdHRlbi4gSWYgdGhlIGRpcmVjdG9yeSBleGlzdHMgaXQgd2lsbAotICAgICAgICAgICAgICAgYmUgcmVtb3ZlZCBhbmQgcmVjcmVhdGVkLgotICAgIHByb3BlcnRpZXNfc3RyIGlzIGEgc3RyaW5nIHdpdGggc3BhY2Ugc2VwYXJhdGVkIGtleS92YWx1ZSBwYWlycyB0aGF0Ci0gICAgICAgICAgICAgICBpcyB1c2VkIHRvIHNldCB0aGUgdG9wIGxldmVsIGZpZWxkcyBpbiB0aGUgb3V0cHV0IEpTT04gZmlsZS4KLSAgICBrZXlfc3RyIGlzIGEgc3RyaW5nIHdpdGggc3BhY2Ugc2VwYXJhdGVkIGtleS92YWx1ZSBwYWlycyB0aGF0Ci0gICAgICAgICAgICAgICBpcyB1c2VkIHRvIHNldCB0aGUgJ2tleScgZmllbGQgaW4gdGhlIG91dHB1dCBKU09OIGZpbGUuCi0gICAgaWdub3JlX2hhc2hlc19maWxlIGlzIGEgZmlsZSB0aGF0IGNvbnRhaW5zIGEgbGlzdCBvZiBpbWFnZSBoYXNoZXMKLSAgICAgICAgICAgICAgIHRoYXQgc2hvdWxkIGJlIGlnbm9yZWQuCi0gICAgIiIiCi0gICAgc2VsZi5fc291cmNlX3R5cGUgPSBzb3VyY2VfdHlwZQotICAgIHNlbGYuX3Byb3BlcnRpZXMgPSBfUGFyc2VLZXlWYWx1ZVBhaXJzKHByb3BlcnRpZXNfc3RyKQotICAgIHNlbGYuX3Byb3BlcnRpZXNbJ2tleSddID0gX1BhcnNlS2V5VmFsdWVQYWlycyhrZXlfc3RyKQotICAgIHNlbGYuX3Jlc3VsdHMgPSBbXQotICAgIHNlbGYuX3Bhc3NmYWlsID0gW10KLSAgICBzZWxmLl9vdXRwdXRfZGlyID0gb3V0cHV0X2RpcgotCi0gICAgIyBtYWtlIHN1cmUgdGhlIG91dHB1dCBkaXJlY3RvcnkgZXhpc3RzIGFuZCBpcyBlbXB0eS4KLSAgICBpZiBvcy5wYXRoLmV4aXN0cyhvdXRwdXRfZGlyKToKLSAgICAgIHNodXRpbC5ybXRyZWUob3V0cHV0X2RpciwgaWdub3JlX2Vycm9ycz1UcnVlKQotICAgIG9zLm1ha2VkaXJzKG91dHB1dF9kaXIpCi0KLSAgICBzZWxmLl9pZ25vcmVfaGFzaGVzID0gc2V0KCkKLSAgICBpZiBpZ25vcmVfaGFzaGVzX2ZpbGU6Ci0gICAgICB3aXRoIG9wZW4oaWdub3JlX2hhc2hlc19maWxlLCAncicpIGFzIGlnX2ZpbGU6Ci0gICAgICAgIGhhc2hlcyA9IFt4LnN0cmlwKCkgZm9yIHggaW4gaWdfZmlsZS5yZWFkbGluZXMoKSBpZiB4LnN0cmlwKCldCi0gICAgICAgIHNlbGYuX2lnbm9yZV9oYXNoZXMgPSBzZXQoaGFzaGVzKQotCi0gIGRlZiBBZGRUZXN0UmVzdWx0KHNlbGYsIHRlc3ROYW1lLCBtZDVIYXNoLCBvdXRwdXRJbWFnZVBhdGgsIG1hdGNoUmVzdWx0KToKLSAgICAjIElmIHRoZSBoYXNoIGlzIGluIHRoZSBsaXN0IG9mIGhhc2hlcyB0byBpZ25vcmUgdGhlbiB3ZSBkb24ndHJ5Ci0gICAgIyBtYWtlIGEgY29weSwgYnV0IGFkZCBpdCB0byB0aGUgcmVzdWx0LgotICAgIGltZ0V4dCA9IG9zLnBhdGguc3BsaXRleHQob3V0cHV0SW1hZ2VQYXRoKVsxXS5sc3RyaXAoJy4nKQotICAgIGlmIG1kNUhhc2ggbm90IGluIHNlbGYuX2lnbm9yZV9oYXNoZXM6Ci0gICAgICAjIENvcHkgdGhlIGltYWdlIHRvIDxvdXRwdXRfZGlyPi88bWQ1SGFzaD4uPGltYWdlX2V4dGVuc2lvbj4KLSAgICAgIGlmIG5vdCBpbWdFeHQ6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ZpbGUgJXMgZG9lcyBub3QgaGF2ZSBhbiBleHRlbnNpb24nICUgb3V0cHV0SW1hZ2VQYXRoKQotICAgICAgbmV3RmlsZVBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5fb3V0cHV0X2RpciwgbWQ1SGFzaCArICcuJyArIGltZ0V4dCkKLSAgICAgIHNodXRpbC5jb3B5MihvdXRwdXRJbWFnZVBhdGgsIG5ld0ZpbGVQYXRoKQotCi0gICAgIyBBZGQgYW4gZW50cnkgdG8gdGhlIGxpc3Qgb2YgdGVzdCByZXN1bHRzCi0gICAgc2VsZi5fcmVzdWx0cy5hcHBlbmQoewotICAgICAgICAna2V5JzogewotICAgICAgICAgICAgJ25hbWUnOiB0ZXN0TmFtZSwKLSAgICAgICAgICAgICdzb3VyY2VfdHlwZSc6IHNlbGYuX3NvdXJjZV90eXBlLAotICAgICAgICB9LAotICAgICAgICAnbWQ1JzogbWQ1SGFzaCwKLSAgICAgICAgJ29wdGlvbnMnOiB7Ci0gICAgICAgICAgICAnZXh0JzogaW1nRXh0LAotICAgICAgICAgICAgJ2dhbW1hX2NvcnJlY3QnOiAnbm8nCi0gICAgICAgIH0KLSAgICB9KQotCi0gICAgc2VsZi5fcGFzc2ZhaWwuYXBwZW5kKCh0ZXN0TmFtZSwgbWF0Y2hSZXN1bHQpKQotCi0gIGRlZiBXcml0ZVJlc3VsdHMoc2VsZik6Ci0gICAgc2VsZi5fcHJvcGVydGllcy51cGRhdGUoeydyZXN1bHRzJzogc2VsZi5fcmVzdWx0c30pCi0KLSAgICBvdXRwdXRfZmlsZV9uYW1lID0gb3MucGF0aC5qb2luKHNlbGYuX291dHB1dF9kaXIsICdkbS5qc29uJykKLSAgICB3aXRoIG9wZW4ob3V0cHV0X2ZpbGVfbmFtZSwgJ3diJykgYXMgb3V0ZmlsZToKLSAgICAgIGpzb24uZHVtcChzZWxmLl9wcm9wZXJ0aWVzLCBvdXRmaWxlLCBpbmRlbnQ9MSkKLSAgICAgIG91dGZpbGUud3JpdGUoJ1xuJykKLQotICAgIG91dHB1dF9maWxlX25hbWUgPSBvcy5wYXRoLmpvaW4oc2VsZi5fb3V0cHV0X2RpciwgJ3Bhc3NmYWlsLmpzb24nKQotICAgIHdpdGggb3BlbihvdXRwdXRfZmlsZV9uYW1lLCAnd2InKSBhcyBvdXRmaWxlOgotICAgICAganNvbi5kdW1wKHNlbGYuX3Bhc3NmYWlsLCBvdXRmaWxlLCBpbmRlbnQ9MSkKLSAgICAgIG91dGZpbGUud3JpdGUoJ1xuJykKLQotCi0jIFByb2R1Y2UgZXhhbXBsZSBvdXRwdXQgZm9yIG1hbnVhbCB0ZXN0aW5nLgotZGVmIF9FeGFtcGxlKCk6Ci0gICMgQ3JlYXRlIGEgdGVzdCBkaXJlY3Rvcnkgd2l0aCB0aHJlZSBlbXB0eSAnaW1hZ2UnIGZpbGVzLgotICB0ZXN0X2RpciA9ICcuL3Rlc3RkaXJlY3RvcnknCi0gIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyh0ZXN0X2Rpcik6Ci0gICAgb3MubWFrZWRpcnModGVzdF9kaXIpCi0gIG9wZW4ob3MucGF0aC5qb2luKHRlc3RfZGlyLCAnaW1hZ2UxLnBuZycpLCAnd2InKS5jbG9zZSgpCi0gIG9wZW4ob3MucGF0aC5qb2luKHRlc3RfZGlyLCAnaW1hZ2UyLnBuZycpLCAnd2InKS5jbG9zZSgpCi0gIG9wZW4ob3MucGF0aC5qb2luKHRlc3RfZGlyLCAnaW1hZ2UzLnBuZycpLCAnd2InKS5jbG9zZSgpCi0KLSAgIyBDcmVhdGUgYW4gaW5zdGFuY2UgYW5kIGFkZCByZXN1bHRzLgotICBwcm9wX3N0ciA9ICdidWlsZF9udW1iZXIgMiAiYnVpbGRlciBuYW1lIiBCdWlsZGVyLU5hbWUgZ2l0SGFzaCAnIFwKLSAgICAgICdhNGEzMzgxNzkwMTNiMDI5ZDZkZDU1ZTczN2I1YmQ2NDhhOWZiNjhjJwotCi0gIGtleV9zdHIgPSAnYXJjaCBhcm02NCBjb21waWxlciBDbGFuZyBjb25maWd1cmF0aW9uIERlYnVnJwotCi0gIGhhc2hfZmlsZSA9IG9zLnBhdGguam9pbih0ZXN0X2RpciwgJ2lnbm9yZV9oYXNoZXMudHh0JykKLSAgd2l0aCBvcGVuKGhhc2hfZmlsZSwgJ3diJykgYXMgZjoKLSAgICBmLndyaXRlKCdcbicuam9pbihbJ2hhc2gtMScsICdoYXNoLTQnXSkgKyAnXG4nKQotCi0gIG91dHB1dF9kaXIgPSAnLi9vdXRwdXRfZGlyZWN0b3J5JwotICBnciA9IEdvbGRSZXN1bHRzKCdwZGZpdW0nLCBvdXRwdXRfZGlyLCBwcm9wX3N0ciwga2V5X3N0ciwgaGFzaF9maWxlKQotICBnci5BZGRUZXN0UmVzdWx0KCd0ZXN0LTEnLCAnaGFzaC0xJywgb3MucGF0aC5qb2luKHRlc3RfZGlyLCAnaW1hZ2UxLnBuZycpLAotICAgICAgICAgICAgICAgICAgIEdvbGRCYXNlbGluZS5NQVRDSCkKLSAgZ3IuQWRkVGVzdFJlc3VsdCgndGVzdC0yJywgJ2hhc2gtMicsIG9zLnBhdGguam9pbih0ZXN0X2RpciwgJ2ltYWdlMi5wbmcnKSwKLSAgICAgICAgICAgICAgICAgICBHb2xkQmFzZWxpbmUuTUFUQ0gpCi0gIGdyLkFkZFRlc3RSZXN1bHQoJ3Rlc3QtMycsICdoYXNoLTMnLCBvcy5wYXRoLmpvaW4odGVzdF9kaXIsICdpbWFnZTMucG5nJyksCi0gICAgICAgICAgICAgICAgICAgR29sZEJhc2VsaW5lLk1JU01BVENIKQotICBnci5Xcml0ZVJlc3VsdHMoKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gIF9FeGFtcGxlKCkKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdG9vbHMvbGliY3h4X2NoZWNrLnB5IGIvdGVzdGluZy90b29scy9saWJjeHhfY2hlY2sucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWQ2YWJlYQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvdG9vbHMvbGliY3h4X2NoZWNrLnB5CkBAIC0wLDAgKzEsNjUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKyMgQ29weXJpZ2h0IDIwMjIgVGhlIFBERml1bSBBdXRob3JzCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyIiIlZlcmlmaWVzIGxpYmN4eF9yZXZpc2lvbiBlbnRyaWVzIGFyZSBpbiBzeW5jLgorCitERVBTIGFuZCBidWlsZHRvb2xzL2RlcHNfcmV2aXNpb25zLmduaSBib3RoIGhhdmUgbGliY3h4X3JldmlzaW9uIGVudHJpZXMuCitDaGVjayB0aGF0IHRoZXkgYXJlIGluIHN5bmMuCisiIiIKKworaW1wb3J0IHJlCitpbXBvcnQgc3lzCisKKworZGVmIF9FeHRyYWN0UmV2aXNpb25Gcm9tRmlsZShwYXRoLCByZWdleCk6CisgICIiIkdldHMgdGhlIHJldmlzaW9uIGJ5IHJlYWRpbmcgcGF0aCBhbmQgc2VhcmNoaW5nIHRoZSBsaW5lcyB1c2luZyByZWdleC4iIiIKKyAgZGF0YSA9IG9wZW4ocGF0aCwgJ3JiJykucmVhZCgpLnNwbGl0bGluZXMoKQorICByZXZpc2lvbiA9IE5vbmUKKyAgZm9yIGxpbmUgaW4gZGF0YToKKyAgICBtYXRjaCA9IHJlZ2V4Lm1hdGNoKGxpbmUpCisgICAgaWYgbm90IG1hdGNoOgorICAgICAgY29udGludWUKKyAgICBpZiByZXZpc2lvbjoKKyAgICAgIHJldHVybiBOb25lCisgICAgcmV2aXNpb24gPSBtYXRjaC5ncm91cCgxKQorICByZXR1cm4gcmV2aXNpb24KKworCitkZWYgX0dldERlcHNMaWJjeHhSZXZpc2lvbihkZXBzX3BhdGgpOgorICAiIiJHZXRzIHRoZSBsaWJjeHhfcmV2aXNpb24gZnJvbSBERVBTLiIiIgorICByZWdleCA9IHJlLmNvbXBpbGUoYiJeICAnbGliY3h4X3JldmlzaW9uJzogJyguKiknLCQiKQorICByZXR1cm4gX0V4dHJhY3RSZXZpc2lvbkZyb21GaWxlKGRlcHNfcGF0aCwgcmVnZXgpCisKKworZGVmIF9HZXRCdWlsZHRvb2xzTGliY3h4UmV2aXNpb24oYnVpbGR0b29sc19kZXBzX3BhdGgpOgorICAiIiJHZXRzIHRoZSBsaWJjeHhfcmV2aXNpb24gZnJvbSBidWlsZHRvb2xzL2RlcHNfcmV2aXNpb25zLmduaS4iIiIKKyAgcmVnZXggPSByZS5jb21waWxlKGInXiAgbGliY3h4X3JldmlzaW9uID0gIiguKikiJCcpCisgIHJldHVybiBfRXh0cmFjdFJldmlzaW9uRnJvbUZpbGUoYnVpbGR0b29sc19kZXBzX3BhdGgsIHJlZ2V4KQorCisKK2RlZiBtYWluKCk6CisgIGlmIGxlbihzeXMuYXJndikgIT0gMzoKKyAgICBwcmludCgnV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cycpCisgICAgcmV0dXJuIDAKKworICBkZXBzX3BhdGggPSBzeXMuYXJndlsxXQorICBkZXBzX3JldmlzaW9uID0gX0dldERlcHNMaWJjeHhSZXZpc2lvbihkZXBzX3BhdGgpCisgIGlmIG5vdCBkZXBzX3JldmlzaW9uOgorICAgIHByaW50KCdDYW5ub3QgcGFyc2UnLCBkZXBzX3BhdGgpCisgICAgcmV0dXJuIDAKKworICBidWlsZHRvb2xzX2RlcHNfcGF0aCA9IHN5cy5hcmd2WzJdCisgIGJ1aWxkdG9vbHNfcmV2aXNpb24gPSBfR2V0QnVpbGR0b29sc0xpYmN4eFJldmlzaW9uKGJ1aWxkdG9vbHNfZGVwc19wYXRoKQorICBpZiBub3QgYnVpbGR0b29sc19yZXZpc2lvbjoKKyAgICBwcmludCgnQ2Fubm90IHBhcnNlJywgYnVpbGR0b29sc19kZXBzX3BhdGgpCisgICAgcmV0dXJuIDAKKworICBpZiBkZXBzX3JldmlzaW9uICE9IGJ1aWxkdG9vbHNfcmV2aXNpb246CisgICAgcHJpbnQoJ2xpYmN4eF9yZXZpc2lvbiBtaXNtYXRjaCBiZXR3ZWVuICVzIGFuZCAlczogJXMgdnMuICVzJyAlCisgICAgICAgICAgKGRlcHNfcGF0aCwgYnVpbGR0b29sc19kZXBzX3BhdGgsIGRlcHNfcmV2aXNpb24sIGJ1aWxkdG9vbHNfcmV2aXNpb24pKQorICByZXR1cm4gMAorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIHN5cy5leGl0KG1haW4oKSkKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdG9vbHMvbWFrZV9leHBlY3RlZC5zaCBiL3Rlc3RpbmcvdG9vbHMvbWFrZV9leHBlY3RlZC5zaAppbmRleCA1MjM3ZTUxLi44ZjgyMzhjIDEwMDc1NQotLS0gYS90ZXN0aW5nL3Rvb2xzL21ha2VfZXhwZWN0ZWQuc2gKKysrIGIvdGVzdGluZy90b29scy9tYWtlX2V4cGVjdGVkLnNoCkBAIC0xLDYgKzEsNiBAQAogIyEvYmluL2Jhc2gKICMKLSMgQ29weXJpZ2h0IDIwMTUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycwogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAjCkBAIC0yMyw3ICsyMyw5IEBACiAgIGlmIFsgLWYgIiRFVlRGSUxFIiBdOyB0aGVuCiAgICAgU0VORF9FVkVOVFM9Ii0tc2VuZC1ldmVudHMiCiAgIGZpCi0gIG91dC9EZWJ1Zy9wZGZpdW1fdGVzdCAkU0VORF9FVkVOVFMgLS10aW1lPSRURVNUX1NFRURfVElNRSAtLXBuZyAkSU5GSUxFCisgIEZPTlRfRElSPWByZWFkbGluayAtZiB0aGlyZF9wYXJ0eS90ZXN0X2ZvbnRzYAorICBvdXQvRGVidWcvcGRmaXVtX3Rlc3QgJFNFTkRfRVZFTlRTIC0tdGltZT0kVEVTVF9TRUVEX1RJTUUgLS1wbmcgXAorICAgICAgLS1jcm9zY29yZS1mb250LW5hbWVzIC0tZm9udC1kaXI9JEZPTlRfRElSICRJTkZJTEUKICAgUkVTVUxUUz0iJElORklMRS4qLnBuZyIKICAgZm9yIFJFU1VMVCBpbiAkUkVTVUxUUyA7IGRvCiAgICAgRVhQRUNURUQ9YGVjaG8gLW4gJFJFU1VMVCB8IHNlZCAncy9bLl1wZGZbLl0vX2V4cGVjdGVkLnBkZi4vJ2AKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdG9vbHMvcGRmaXVtX3Jvb3QucHkgYi90ZXN0aW5nL3Rvb2xzL3BkZml1bV9yb290LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjNGM4NjEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Rvb2xzL3BkZml1bV9yb290LnB5CkBAIC0wLDAgKzEsNTMgQEAKKyMgQ29weXJpZ2h0IDIwMjIgVGhlIFBERml1bSBBdXRob3JzCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyIiIlV0aWxpdGllcyBmb3Igd29ya2luZyB3aXRoIHRoZSBQREZpdW0gdHJlZSdzIHJvb3QgZGlyZWN0b3J5LiIiIgorCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworCitjbGFzcyBSb290RGlyZWN0b3J5RmluZGVyOgorICAiIiJGaW5kcyB0aGUgUERGaXVtIHRyZWUncyByb290IGRpcmVjdG9yaWVzLgorCisgIFRoZSBpbXBsZW1lbnRhdGlvbiBleHBlY3RzIHRoYXQgZWl0aGVyOgorICAxLiBQREZpdW0gaXMgYSBzdGFuZGFsb25lIGNoZWNrb3V0LgorICAyLiBQREZpdW0gaXMgcGFydCBvZiBhbm90aGVyIHRyZWUgd2l0aGluIGEgInRoaXJkX3BhcnR5L3BkZml1bSIgZGlyZWN0b3J5LgorCisgIEF0dHJpYnV0ZXM6CisgICAgICBwZGZpdW1fcm9vdDogVGhlIHBhdGggdG8gdGhlIHJvb3Qgb2YgdGhlIFBERml1bSB0cmVlLgorICAgICAgc291cmNlX3Jvb3Q6IFRoZSBwYXRoIHRvIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4gTWF5IGRpZmZlciBmcm9tCisgICAgICAgIGBwZGZpdW1fcm9vdGAgaWYgUERGaXVtIGlzIGEgdGhpcmQtcGFydHkgZGVwZW5kZW5jeSBpbiBhbm90aGVyIHRyZWUuCisgICIiIgorCisgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAjIEV4cGVjdCBgc2VsZl9kaXJgIHRvIGJlICIuLi4vdGVzdGluZy90b29scyIuCisgICAgc2VsZl9kaXIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykpCisKKyAgICBzZWxmLnBkZml1bV9yb290ID0gX3JlbW92ZV9wYXRoX3N1ZmZpeChzZWxmX2RpciwgKCd0ZXN0aW5nJywgJ3Rvb2xzJykpCisgICAgaWYgbm90IHNlbGYucGRmaXVtX3Jvb3Q6CisgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCBmaW5kIHRlc3RpbmcvdG9vbHMgd2l0aGluIFBERml1bSByb290IGRpcmVjdG9yeScpCisKKyAgICAjIEluIGEgQ2hyb21pdW0gY2hlY2tvdXQsIGV4cGVjdCBgc2VsZi5wZGZpdW1fcm9vdGAgdG8gYmUKKyAgICAjICIuLi4vdGhpcmRfcGFydHkvcGRmaXVtIi4KKyAgICBzZWxmLnNvdXJjZV9yb290ID0gX3JlbW92ZV9wYXRoX3N1ZmZpeChzZWxmLnBkZml1bV9yb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgndGhpcmRfcGFydHknLCAncGRmaXVtJykpCisgICAgaWYgbm90IHNlbGYuc291cmNlX3Jvb3Q6CisgICAgICBzZWxmLnNvdXJjZV9yb290ID0gc2VsZi5wZGZpdW1fcm9vdAorCisKK2RlZiBfcmVtb3ZlX3BhdGhfc3VmZml4KHBhdGgsIGV4cGVjdGVkX3N1ZmZpeCk6CisgIGZvciBleHBlY3RlZF9wYXJ0IGluIHJldmVyc2VkKGV4cGVjdGVkX3N1ZmZpeCk6CisgICAgaWYgb3MucGF0aC5iYXNlbmFtZShwYXRoKSAhPSBleHBlY3RlZF9wYXJ0OgorICAgICAgcmV0dXJuIE5vbmUKKyAgICBwYXRoID0gb3MucGF0aC5kaXJuYW1lKHBhdGgpCisgIHJldHVybiBwYXRoCisKKworZGVmIGFkZF9zb3VyY2VfZGlyZWN0b3J5X3RvX2ltcG9ydF9wYXRoKHNvdXJjZV9kaXJlY3RvcnlfcGF0aCk6CisgICIiIkFkZHMgYSBzb3VyY2Ugcm9vdC1yZWxhdGl2ZSBkaXJlY3RvcnkgdG8gZW5kIG9mIHRoZSBpbXBvcnQgcGF0aC4iIiIKKyAgcm9vdF9maW5kZXIgPSBSb290RGlyZWN0b3J5RmluZGVyKCkKKyAgcGF0aCA9IG9zLnBhdGgucmVhbHBhdGgoCisgICAgICBvcy5wYXRoLmpvaW4ocm9vdF9maW5kZXIuc291cmNlX3Jvb3QsIHNvdXJjZV9kaXJlY3RvcnlfcGF0aCkpCisgIGlmIHBhdGggbm90IGluIHN5cy5wYXRoOgorICAgIHN5cy5wYXRoLmFwcGVuZChwYXRoKQpkaWZmIC0tZ2l0IGEvdGVzdGluZy90b29scy9wbmdkaWZmZXIucHkgYi90ZXN0aW5nL3Rvb2xzL3BuZ2RpZmZlci5weQppbmRleCBhNDY5NTA2Li4yMDQ0YTM0IDEwMDc1NQotLS0gYS90ZXN0aW5nL3Rvb2xzL3BuZ2RpZmZlci5weQorKysgYi90ZXN0aW5nL3Rvb2xzL3BuZ2RpZmZlci5weQpAQCAtMSwxMzkgKzEsMjM5IEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMgQ29weXJpZ2h0IDIwMTUgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworIyBDb3B5cmlnaHQgMjAxNSBUaGUgUERGaXVtIEF1dGhvcnMKICMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCi1pbXBvcnQgZGlzdHV0aWxzLnNwYXduCitmcm9tIGRhdGFjbGFzc2VzIGltcG9ydCBkYXRhY2xhc3MKIGltcG9ydCBpdGVydG9vbHMKIGltcG9ydCBvcwogaW1wb3J0IHNodXRpbAoraW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBzeXMKIAotIyBweWxpbnQ6IGRpc2FibGU9cmVsYXRpdmUtaW1wb3J0Ci1pbXBvcnQgY29tbW9uCitFWEFDVF9NQVRDSElORyA9ICdleGFjdCcKK0ZVWlpZX01BVENISU5HID0gJ2Z1enp5JwogCitfUE5HX09QVElNSVpFUiA9ICdvcHRpcG5nJworCitfQ09NTU9OX1NVRkZJWF9PUkRFUiA9ICgnX3tvc30nLCAnJykKK19BR0dfU1VGRklYX09SREVSID0gKCdfYWdnX3tvc30nLCAnX2FnZycpICsgX0NPTU1PTl9TVUZGSVhfT1JERVIKK19TS0lBX1NVRkZJWF9PUkRFUiA9ICgnX3NraWFfe29zfScsICdfc2tpYScpICsgX0NPTU1PTl9TVUZGSVhfT1JERVIKKworCitAZGF0YWNsYXNzCitjbGFzcyBJbWFnZURpZmY6CisgICIiIkRldGFpbHMgYWJvdXQgYW4gaW1hZ2UgZGlmZi4KKworICBBdHRyaWJ1dGVzOgorICAgIGFjdHVhbF9wYXRoOiBQYXRoIHRvIHRoZSBhY3R1YWwgaW1hZ2UgZmlsZS4KKyAgICBleHBlY3RlZF9wYXRoOiBQYXRoIHRvIHRoZSBleHBlY3RlZCBpbWFnZSBmaWxlLCBvciBgTm9uZWAgaWYgbm8gbWF0Y2hlcy4KKyAgICBkaWZmX3BhdGg6IFBhdGggdG8gdGhlIGRpZmYgaW1hZ2UgZmlsZSwgb3IgYE5vbmVgIGlmIG5vIGRpZmYuCisgICAgcmVhc29uOiBPcHRpb25hbCByZWFzb24gZm9yIHRoZSBkaWZmLgorICAiIiIKKyAgYWN0dWFsX3BhdGg6IHN0cgorICBleHBlY3RlZF9wYXRoOiBzdHIgPSBOb25lCisgIGRpZmZfcGF0aDogc3RyID0gTm9uZQorICByZWFzb246IHN0ciA9IE5vbmUKIAogY2xhc3MgUE5HRGlmZmVyKCk6CiAKLSAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbmRlciwgcmV2ZXJzZV9ieXRlX29yZGVyKToKKyAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbmRlciwgZmVhdHVyZXMsIHJldmVyc2VfYnl0ZV9vcmRlcik6CiAgICAgc2VsZi5wZGZpdW1fZGlmZl9wYXRoID0gZmluZGVyLkV4ZWN1dGFibGVQYXRoKCdwZGZpdW1fZGlmZicpCiAgICAgc2VsZi5vc19uYW1lID0gZmluZGVyLm9zX25hbWUKICAgICBzZWxmLnJldmVyc2VfYnl0ZV9vcmRlciA9IHJldmVyc2VfYnl0ZV9vcmRlcgorICAgIGlmICdTS0lBJyBpbiBmZWF0dXJlczoKKyAgICAgIHNlbGYuc3VmZml4X29yZGVyID0gX1NLSUFfU1VGRklYX09SREVSCisgICAgZWxzZToKKyAgICAgIHNlbGYuc3VmZml4X29yZGVyID0gX0FHR19TVUZGSVhfT1JERVIKIAogICBkZWYgQ2hlY2tNaXNzaW5nVG9vbHMoc2VsZiwgcmVnZW5lcmF0ZV9leHBlY3RlZCk6Ci0gICAgaWYgKHJlZ2VuZXJhdGVfZXhwZWN0ZWQgYW5kIHNlbGYub3NfbmFtZSA9PSAnbGludXgnIGFuZAotICAgICAgICBub3QgZGlzdHV0aWxzLnNwYXduLmZpbmRfZXhlY3V0YWJsZSgnb3B0aXBuZycpKToKLSAgICAgIHJldHVybiAnUGxlYXNlIGluc3RhbGwgIm9wdGlwbmciIHRvIHJlZ2VuZXJhdGUgZXhwZWN0ZWQgaW1hZ2VzLicKKyAgICBpZiByZWdlbmVyYXRlX2V4cGVjdGVkIGFuZCBub3Qgc2h1dGlsLndoaWNoKF9QTkdfT1BUSU1JWkVSKToKKyAgICAgIHJldHVybiBmJ1BsZWFzZSBpbnN0YWxsICJ7X1BOR19PUFRJTUlaRVJ9IiB0byByZWdlbmVyYXRlIGV4cGVjdGVkIGltYWdlcy4nCiAgICAgcmV0dXJuIE5vbmUKIAogICBkZWYgR2V0QWN0dWFsRmlsZXMoc2VsZiwgaW5wdXRfZmlsZW5hbWUsIHNvdXJjZV9kaXIsIHdvcmtpbmdfZGlyKToKICAgICBhY3R1YWxfcGF0aHMgPSBbXQotICAgIHBhdGhfdGVtcGxhdGVzID0gUGF0aFRlbXBsYXRlcyhpbnB1dF9maWxlbmFtZSwgc291cmNlX2Rpciwgd29ya2luZ19kaXIpCisgICAgcGF0aF90ZW1wbGF0ZXMgPSBfUGF0aFRlbXBsYXRlcyhpbnB1dF9maWxlbmFtZSwgc291cmNlX2Rpciwgd29ya2luZ19kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm9zX25hbWUsIHNlbGYuc3VmZml4X29yZGVyKQogCiAgICAgZm9yIHBhZ2UgaW4gaXRlcnRvb2xzLmNvdW50KCk6CiAgICAgICBhY3R1YWxfcGF0aCA9IHBhdGhfdGVtcGxhdGVzLkdldEFjdHVhbFBhdGgocGFnZSkKLSAgICAgIGV4cGVjdGVkX3BhdGggPSBwYXRoX3RlbXBsYXRlcy5HZXRFeHBlY3RlZFBhdGgocGFnZSkKLSAgICAgIHBsYXRmb3JtX2V4cGVjdGVkX3BhdGggPSBwYXRoX3RlbXBsYXRlcy5HZXRQbGF0Zm9ybUV4cGVjdGVkUGF0aCgKLSAgICAgICAgICBzZWxmLm9zX25hbWUsIHBhZ2UpCi0gICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwbGF0Zm9ybV9leHBlY3RlZF9wYXRoKToKLSAgICAgICAgZXhwZWN0ZWRfcGF0aCA9IHBsYXRmb3JtX2V4cGVjdGVkX3BhdGgKLSAgICAgIGVsaWYgbm90IG9zLnBhdGguZXhpc3RzKGV4cGVjdGVkX3BhdGgpOgorICAgICAgaWYgcGF0aF90ZW1wbGF0ZXMuR2V0RXhwZWN0ZWRQYXRoKHBhZ2UsIGRlZmF1bHRfdG9fYmFzZT1GYWxzZSk6CisgICAgICAgIGFjdHVhbF9wYXRocy5hcHBlbmQoYWN0dWFsX3BhdGgpCisgICAgICBlbHNlOgogICAgICAgICBicmVhawotICAgICAgYWN0dWFsX3BhdGhzLmFwcGVuZChhY3R1YWxfcGF0aCkKLQogICAgIHJldHVybiBhY3R1YWxfcGF0aHMKIAotICBkZWYgSGFzRGlmZmVyZW5jZXMoc2VsZiwgaW5wdXRfZmlsZW5hbWUsIHNvdXJjZV9kaXIsIHdvcmtpbmdfZGlyKToKLSAgICBwYXRoX3RlbXBsYXRlcyA9IFBhdGhUZW1wbGF0ZXMoaW5wdXRfZmlsZW5hbWUsIHNvdXJjZV9kaXIsIHdvcmtpbmdfZGlyKQorICBkZWYgX1J1bkNvbW1hbmQoc2VsZiwgY21kKToKKyAgICB0cnk6CisgICAgICBzdWJwcm9jZXNzLnJ1bihjbWQsIGNhcHR1cmVfb3V0cHV0PVRydWUsIGNoZWNrPVRydWUpCisgICAgICByZXR1cm4gTm9uZQorICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvciBhcyBlOgorICAgICAgcmV0dXJuIGUKIAorICBkZWYgX1J1bkltYWdlQ29tcGFyZUNvbW1hbmQoc2VsZiwgaW1hZ2VfZGlmZiwgaW1hZ2VfbWF0Y2hpbmdfYWxnb3JpdGhtKToKKyAgICBjbWQgPSBbc2VsZi5wZGZpdW1fZGlmZl9wYXRoXQorICAgIGlmIHNlbGYucmV2ZXJzZV9ieXRlX29yZGVyOgorICAgICAgY21kLmFwcGVuZCgnLS1yZXZlcnNlLWJ5dGUtb3JkZXInKQorICAgIGlmIGltYWdlX21hdGNoaW5nX2FsZ29yaXRobSA9PSBGVVpaWV9NQVRDSElORzoKKyAgICAgIGNtZC5hcHBlbmQoJy0tZnV6enknKQorICAgIGNtZC5leHRlbmQoW2ltYWdlX2RpZmYuYWN0dWFsX3BhdGgsIGltYWdlX2RpZmYuZXhwZWN0ZWRfcGF0aF0pCisgICAgcmV0dXJuIHNlbGYuX1J1bkNvbW1hbmQoY21kKQorCisgIGRlZiBfUnVuSW1hZ2VEaWZmQ29tbWFuZChzZWxmLCBpbWFnZV9kaWZmKToKKyAgICAjIFRPRE8oY3JidWcuY29tL3BkZml1bS8xOTI1KTogRGlmZiBtb2RlIGlnbm9yZXMgLS1yZXZlcnNlLWJ5dGUtb3JkZXIuCisgICAgcmV0dXJuIHNlbGYuX1J1bkNvbW1hbmQoWworICAgICAgICBzZWxmLnBkZml1bV9kaWZmX3BhdGgsICctLXN1YnRyYWN0JywgaW1hZ2VfZGlmZi5hY3R1YWxfcGF0aCwKKyAgICAgICAgaW1hZ2VfZGlmZi5leHBlY3RlZF9wYXRoLCBpbWFnZV9kaWZmLmRpZmZfcGF0aAorICAgIF0pCisKKyAgZGVmIENvbXB1dGVEaWZmZXJlbmNlcyhzZWxmLCBpbnB1dF9maWxlbmFtZSwgc291cmNlX2Rpciwgd29ya2luZ19kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfbWF0Y2hpbmdfYWxnb3JpdGhtKToKKyAgICAiIiJDb21wdXRlcyBkaWZmZXJlbmNlcyBiZXR3ZWVuIGFjdHVhbCBhbmQgZXhwZWN0ZWQgaW1hZ2UgZmlsZXMuCisKKyAgICBSZXR1cm5zOgorICAgICAgQSBsaXN0IG9mIGBJbWFnZURpZmZgIGluc3RhbmNlcywgb25lIHBlciBkaWZmZXJpbmcgcGFnZS4KKyAgICAiIiIKKyAgICBpbWFnZV9kaWZmcyA9IFtdCisKKyAgICBwYXRoX3RlbXBsYXRlcyA9IF9QYXRoVGVtcGxhdGVzKGlucHV0X2ZpbGVuYW1lLCBzb3VyY2VfZGlyLCB3b3JraW5nX2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYub3NfbmFtZSwgc2VsZi5zdWZmaXhfb3JkZXIpCiAgICAgZm9yIHBhZ2UgaW4gaXRlcnRvb2xzLmNvdW50KCk6Ci0gICAgICBhY3R1YWxfcGF0aCA9IHBhdGhfdGVtcGxhdGVzLkdldEFjdHVhbFBhdGgocGFnZSkKKyAgICAgIHBhZ2VfZGlmZiA9IEltYWdlRGlmZihhY3R1YWxfcGF0aD1wYXRoX3RlbXBsYXRlcy5HZXRBY3R1YWxQYXRoKHBhZ2UpKQorICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHBhZ2VfZGlmZi5hY3R1YWxfcGF0aCk6CisgICAgICAgICMgTm8gbW9yZSBhY3R1YWwgcGFnZXMuCisgICAgICAgIGJyZWFrCisKICAgICAgIGV4cGVjdGVkX3BhdGggPSBwYXRoX3RlbXBsYXRlcy5HZXRFeHBlY3RlZFBhdGgocGFnZSkKLSAgICAgICMgUERGaXVtIHRlc3RzIHNob3VsZCBiZSBwbGF0Zm9ybSBpbmRlcGVuZGVudC4gUGxhdGZvcm0gYmFzZWQgcmVzdWx0cyBhcmUKLSAgICAgICMgdXNlZCB0byBjYXB0dXJlIHBsYXRmb3JtIGRlcGVuZGVudCBpbXBsZW1lbnRhdGlvbnMuCi0gICAgICBwbGF0Zm9ybV9leHBlY3RlZF9wYXRoID0gcGF0aF90ZW1wbGF0ZXMuR2V0UGxhdGZvcm1FeHBlY3RlZFBhdGgoCi0gICAgICAgICAgc2VsZi5vc19uYW1lLCBwYWdlKQotICAgICAgaWYgKG5vdCBvcy5wYXRoLmV4aXN0cyhleHBlY3RlZF9wYXRoKSBhbmQKLSAgICAgICAgICBub3Qgb3MucGF0aC5leGlzdHMocGxhdGZvcm1fZXhwZWN0ZWRfcGF0aCkpOgotICAgICAgICBpZiBwYWdlID09IDA6Ci0gICAgICAgICAgcHJpbnQgIldBUk5JTkc6IG5vIGV4cGVjdGVkIHJlc3VsdHMgZmlsZXMgZm9yICIgKyBpbnB1dF9maWxlbmFtZQotICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhhY3R1YWxfcGF0aCk6Ci0gICAgICAgICAgcHJpbnQoJ0ZBSUxVUkU6IE1pc3NpbmcgZXhwZWN0ZWQgcmVzdWx0IGZvciAwLWJhc2VkIHBhZ2UgJWQgb2YgJXMnICUKLSAgICAgICAgICAgICAgICAocGFnZSwgaW5wdXRfZmlsZW5hbWUpKQotICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGJyZWFrCi0gICAgICBwcmludCAiQ2hlY2tpbmcgIiArIGFjdHVhbF9wYXRoCi0gICAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGV4cGVjdGVkX3BhdGgpOgotICAgICAgICBjbWQgPSBbc2VsZi5wZGZpdW1fZGlmZl9wYXRoXQotICAgICAgICBpZiBzZWxmLnJldmVyc2VfYnl0ZV9vcmRlcjoKLSAgICAgICAgICBjbWQuYXBwZW5kKCctLXJldmVyc2UtYnl0ZS1vcmRlcicpCi0gICAgICAgIGNtZC5leHRlbmQoW2V4cGVjdGVkX3BhdGgsIGFjdHVhbF9wYXRoXSkKLSAgICAgICAgZXJyb3IgPSBjb21tb24uUnVuQ29tbWFuZChjbWQpCisgICAgICAgIHBhZ2VfZGlmZi5leHBlY3RlZF9wYXRoID0gZXhwZWN0ZWRfcGF0aAorCisgICAgICAgIGNvbXBhcmVfZXJyb3IgPSBzZWxmLl9SdW5JbWFnZUNvbXBhcmVDb21tYW5kKHBhZ2VfZGlmZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfbWF0Y2hpbmdfYWxnb3JpdGhtKQorICAgICAgICBpZiBjb21wYXJlX2Vycm9yOgorICAgICAgICAgIHBhZ2VfZGlmZi5yZWFzb24gPSBzdHIoY29tcGFyZV9lcnJvcikKKworICAgICAgICAgICMgVE9ETyhjcmJ1Zy5jb20vcGRmaXVtLzE5MjUpOiBDb21wYXJlIGFuZCBkaWZmIHNpbXVsdGFuZW91c2x5LgorICAgICAgICAgIHBhZ2VfZGlmZi5kaWZmX3BhdGggPSBwYXRoX3RlbXBsYXRlcy5HZXREaWZmUGF0aChwYWdlKQorICAgICAgICAgIGlmIG5vdCBzZWxmLl9SdW5JbWFnZURpZmZDb21tYW5kKHBhZ2VfZGlmZik6CisgICAgICAgICAgICBwcmludChmJ1dBUk5JTkc6IE5vIGRpZmYgZm9yIHtwYWdlX2RpZmYuYWN0dWFsX3BhdGh9JykKKyAgICAgICAgICAgIHBhZ2VfZGlmZi5kaWZmX3BhdGggPSBOb25lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgIyBWYWxpZGF0ZSB0aGF0IG5vIG90aGVyIHBhdGhzIG1hdGNoLgorICAgICAgICAgIGZvciB1bmV4cGVjdGVkX3BhdGggaW4gcGF0aF90ZW1wbGF0ZXMuR2V0RXhwZWN0ZWRQYXRocyhwYWdlKVsxOl06CisgICAgICAgICAgICBwYWdlX2RpZmYuZXhwZWN0ZWRfcGF0aCA9IHVuZXhwZWN0ZWRfcGF0aAorICAgICAgICAgICAgaWYgbm90IHNlbGYuX1J1bkltYWdlQ29tcGFyZUNvbW1hbmQocGFnZV9kaWZmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2VfbWF0Y2hpbmdfYWxnb3JpdGhtKToKKyAgICAgICAgICAgICAgcGFnZV9kaWZmLnJlYXNvbiA9IGYnQWxzbyBtYXRjaGVzIHt1bmV4cGVjdGVkX3BhdGh9JworICAgICAgICAgICAgICBicmVhaworICAgICAgICAgIHBhZ2VfZGlmZi5leHBlY3RlZF9wYXRoID0gZXhwZWN0ZWRfcGF0aAogICAgICAgZWxzZToKLSAgICAgICAgZXJyb3IgPSAxCi0gICAgICBpZiBlcnJvcjoKLSAgICAgICAgIyBXaGVuIGZhaWxlZCwgd2UgY2hlY2sgYWdhaW5zdCBwbGF0Zm9ybSBiYXNlZCByZXN1bHRzLgotICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwbGF0Zm9ybV9leHBlY3RlZF9wYXRoKToKLSAgICAgICAgICBjbWQgPSBbc2VsZi5wZGZpdW1fZGlmZl9wYXRoXQotICAgICAgICAgIGlmIHNlbGYucmV2ZXJzZV9ieXRlX29yZGVyOgotICAgICAgICAgICAgY21kLmFwcGVuZCgnLS1yZXZlcnNlLWJ5dGUtb3JkZXInKQotICAgICAgICAgIGNtZC5leHRlbmQoW3BsYXRmb3JtX2V4cGVjdGVkX3BhdGgsIGFjdHVhbF9wYXRoXSkKLSAgICAgICAgICBlcnJvciA9IGNvbW1vbi5SdW5Db21tYW5kKGNtZCkKLSAgICAgICAgaWYgZXJyb3I6Ci0gICAgICAgICAgcHJpbnQgIkZBSUxVUkU6ICIgKyBpbnB1dF9maWxlbmFtZSArICI7ICIgKyBzdHIoZXJyb3IpCi0gICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgaWYgcGFnZSA9PSAwOgorICAgICAgICAgIHByaW50KGYnV0FSTklORzogbm8gZXhwZWN0ZWQgcmVzdWx0cyBmaWxlcyBmb3Ige2lucHV0X2ZpbGVuYW1lfScpCisgICAgICAgIHBhZ2VfZGlmZi5yZWFzb24gPSBmJ3tleHBlY3RlZF9wYXRofSBkb2VzIG5vdCBleGlzdCcKIAotICAgIHJldHVybiBGYWxzZQorICAgICAgaWYgcGFnZV9kaWZmLnJlYXNvbjoKKyAgICAgICAgaW1hZ2VfZGlmZnMuYXBwZW5kKHBhZ2VfZGlmZikKIAotICBkZWYgUmVnZW5lcmF0ZShzZWxmLCBpbnB1dF9maWxlbmFtZSwgc291cmNlX2Rpciwgd29ya2luZ19kaXIsIHBsYXRmb3JtX29ubHkpOgotICAgIHBhdGhfdGVtcGxhdGVzID0gUGF0aFRlbXBsYXRlcyhpbnB1dF9maWxlbmFtZSwgc291cmNlX2Rpciwgd29ya2luZ19kaXIpCisgICAgcmV0dXJuIGltYWdlX2RpZmZzCiAKKyAgZGVmIFJlZ2VuZXJhdGUoc2VsZiwgaW5wdXRfZmlsZW5hbWUsIHNvdXJjZV9kaXIsIHdvcmtpbmdfZGlyLAorICAgICAgICAgICAgICAgICBpbWFnZV9tYXRjaGluZ19hbGdvcml0aG0pOgorICAgIHBhdGhfdGVtcGxhdGVzID0gX1BhdGhUZW1wbGF0ZXMoaW5wdXRfZmlsZW5hbWUsIHNvdXJjZV9kaXIsIHdvcmtpbmdfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5vc19uYW1lLCBzZWxmLnN1ZmZpeF9vcmRlcikKICAgICBmb3IgcGFnZSBpbiBpdGVydG9vbHMuY291bnQoKToKLSAgICAgICMgTG9vcCB0aHJvdWdoIHRoZSBnZW5lcmF0ZWQgcGFnZSBpbWFnZXMuIFN0b3Agd2hlbiB0aGVyZSBpcyBhIHBhZ2UKLSAgICAgICMgbWlzc2luZyBhIHBuZywgd2hpY2ggbWVhbnMgdGhlIGRvY3VtZW50IGVuZGVkLgotICAgICAgYWN0dWFsX3BhdGggPSBwYXRoX3RlbXBsYXRlcy5HZXRBY3R1YWxQYXRoKHBhZ2UpCi0gICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoYWN0dWFsX3BhdGgpOgorICAgICAgZXhwZWN0ZWRfcGF0aHMgPSBwYXRoX3RlbXBsYXRlcy5HZXRFeHBlY3RlZFBhdGhzKHBhZ2UpCisKKyAgICAgIGZpcnN0X21hdGNoID0gTm9uZQorICAgICAgbGFzdF9tYXRjaCA9IE5vbmUKKyAgICAgIHBhZ2VfZGlmZiA9IEltYWdlRGlmZihhY3R1YWxfcGF0aD1wYXRoX3RlbXBsYXRlcy5HZXRBY3R1YWxQYXRoKHBhZ2UpKQorICAgICAgaWYgb3MucGF0aC5leGlzdHMocGFnZV9kaWZmLmFjdHVhbF9wYXRoKToKKyAgICAgICAgIyBNYXRjaCBhZ2FpbnN0IGFsbCBleHBlY3RlZCBwYWdlIGltYWdlcy4KKyAgICAgICAgZm9yIGluZGV4LCBleHBlY3RlZF9wYXRoIGluIGVudW1lcmF0ZShleHBlY3RlZF9wYXRocyk6CisgICAgICAgICAgcGFnZV9kaWZmLmV4cGVjdGVkX3BhdGggPSBleHBlY3RlZF9wYXRoCisgICAgICAgICAgaWYgbm90IHNlbGYuX1J1bkltYWdlQ29tcGFyZUNvbW1hbmQocGFnZV9kaWZmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlX21hdGNoaW5nX2FsZ29yaXRobSk6CisgICAgICAgICAgICBpZiBmaXJzdF9tYXRjaCBpcyBOb25lOgorICAgICAgICAgICAgICBmaXJzdF9tYXRjaCA9IGluZGV4CisgICAgICAgICAgICBsYXN0X21hdGNoID0gaW5kZXgKKworICAgICAgICBpZiBsYXN0X21hdGNoID09IDA6CisgICAgICAgICAgIyBSZWdlbmVyYXRpb24gbm90IG5lZWRlZC4gVGhpcyBjYXNlIG1heSBiZSByZWFjaGVkIGlmIG9ubHkgc29tZSwgYnV0CisgICAgICAgICAgIyBub3QgYWxsLCBwYWdlcyBuZWVkIHRvIGJlIHJlZ2VuZXJhdGVkLgorICAgICAgICAgIGNvbnRpbnVlCisgICAgICBlbGlmIGV4cGVjdGVkX3BhdGhzOgorICAgICAgICAjIFJlbW92ZSBhbGwgZXhwZWN0ZWQgcGFnZSBpbWFnZXMuCisgICAgICAgIHByaW50KGYnV0FSTklORzoge2lucHV0X2ZpbGVuYW1lfSBoYXMgZXh0cmEgZXhwZWN0ZWQgcGFnZSB7cGFnZX0nKQorICAgICAgICBmaXJzdF9tYXRjaCA9IDAKKyAgICAgICAgbGFzdF9tYXRjaCA9IGxlbihleHBlY3RlZF9wYXRocykKKyAgICAgIGVsc2U6CisgICAgICAgICMgTm8gbW9yZSBleHBlY3RlZCBvciBhY3R1YWwgcGFnZXMuCiAgICAgICAgIGJyZWFrCiAKLSAgICAgIHBsYXRmb3JtX2V4cGVjdGVkX3BhdGggPSBwYXRoX3RlbXBsYXRlcy5HZXRQbGF0Zm9ybUV4cGVjdGVkUGF0aCgKLSAgICAgICAgICBzZWxmLm9zX25hbWUsIHBhZ2UpCisgICAgICAjIFRyeSB0byByZXVzZSBleHBlY3RhdGlvbnMgYnkgcmVtb3ZpbmcgaW50ZXJ2ZW5pbmcgbm9uLW1hdGNoZXMuCisgICAgICAjCisgICAgICAjIFRPRE8oY3JidWcuY29tL3BkZml1bS8xOTg4KTogVGhpcyBjYW4gbWFrZSBtaXN0YWtlcyBkdWUgdG8gYSBsYWNrIG9mCisgICAgICAjIGdsb2JhbCBrbm93bGVkZ2UgYWJvdXQgb3RoZXIgdGVzdCBjb25maWd1cmF0aW9ucywgd2hpY2ggaXMgd2h5IGl0IGp1c3QKKyAgICAgICMgY3JlYXRlcyBiYWNrdXAgZmlsZXMgcmF0aGVyIHRoYW4gaW1tZWRpYXRlbHkgcmVtb3ZpbmcgZmlsZXMuCisgICAgICBpZiBsYXN0X21hdGNoIGlzIG5vdCBOb25lOgorICAgICAgICBpZiBmaXJzdF9tYXRjaCA+IDE6CisgICAgICAgICAgcHJpbnQoZidXQVJOSU5HOiB7aW5wdXRfZmlsZW5hbWV9LntwYWdlfSBoYXMgbm9uLWFkamFjZW50IG1hdGNoJykKKyAgICAgICAgaWYgZmlyc3RfbWF0Y2ggIT0gbGFzdF9tYXRjaDoKKyAgICAgICAgICBwcmludChmJ1dBUk5JTkc6IHtpbnB1dF9maWxlbmFtZX0ue3BhZ2V9IGhhcyByZWR1bmRhbnQgbWF0Y2hlcycpCiAKLSAgICAgICMgSWYgdGhlcmUgaXMgYSBwbGF0Zm9ybSBleHBlY3RlZCBwbmcsIHdlIHdpbGwgb3ZlcndyaXRlIGl0LiBPdGhlcndpc2UsCi0gICAgICAjIG92ZXJ3cml0ZSB0aGUgZ2VuZXJpYyBwbmcgaW4gImFsbCIgbW9kZSwgb3IgZG8gbm90aGluZyBpbiAicGxhdGZvcm0iCi0gICAgICAjIG1vZGUuCi0gICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwbGF0Zm9ybV9leHBlY3RlZF9wYXRoKToKLSAgICAgICAgZXhwZWN0ZWRfcGF0aCA9IHBsYXRmb3JtX2V4cGVjdGVkX3BhdGgKLSAgICAgIGVsaWYgbm90IHBsYXRmb3JtX29ubHk6Ci0gICAgICAgIGV4cGVjdGVkX3BhdGggPSBwYXRoX3RlbXBsYXRlcy5HZXRFeHBlY3RlZFBhdGgocGFnZSkKLSAgICAgIGVsc2U6CisgICAgICAgIGZvciBleHBlY3RlZF9wYXRoIGluIGV4cGVjdGVkX3BhdGhzWzpsYXN0X21hdGNoXToKKyAgICAgICAgICBvcy5yZW5hbWUoZXhwZWN0ZWRfcGF0aCwgZXhwZWN0ZWRfcGF0aCArICcuYmFrJykKICAgICAgICAgY29udGludWUKIAotICAgICAgc2h1dGlsLmNvcHlmaWxlKGFjdHVhbF9wYXRoLCBleHBlY3RlZF9wYXRoKQotICAgICAgY29tbW9uLlJ1bkNvbW1hbmQoWydvcHRpcG5nJywgZXhwZWN0ZWRfcGF0aF0pCisgICAgICAjIFJlZ2VuZXJhdGUgdGhlIG1vc3Qgc3BlY2lmaWMgZXhwZWN0ZWQgcGF0aCB0aGF0IGV4aXN0cy4gSWYgdGhlcmUgYXJlIG5vCisgICAgICAjIGV4aXN0aW5nIGV4cGVjdGF0aW9ucywgcmVnZW5lcmF0ZSB0aGUgYmFzZSBjYXNlLgorICAgICAgZXhwZWN0ZWRfcGF0aCA9IHBhdGhfdGVtcGxhdGVzLkdldEV4cGVjdGVkUGF0aChwYWdlKQorICAgICAgc2h1dGlsLmNvcHlmaWxlKHBhZ2VfZGlmZi5hY3R1YWxfcGF0aCwgZXhwZWN0ZWRfcGF0aCkKKyAgICAgIHNlbGYuX1J1bkNvbW1hbmQoW19QTkdfT1BUSU1JWkVSLCBleHBlY3RlZF9wYXRoXSkKIAogCi1BQ1RVQUxfVEVNUExBVEUgPSAnLnBkZi4lZC5wbmcnCi1FWFBFQ1RFRF9URU1QTEFURSA9ICdfZXhwZWN0ZWQnICsgQUNUVUFMX1RFTVBMQVRFCi1QTEFURk9STV9FWFBFQ1RFRF9URU1QTEFURSA9ICdfZXhwZWN0ZWRfJXMnICsgQUNUVUFMX1RFTVBMQVRFCitfQUNUVUFMX1RFTVBMQVRFID0gJy5wZGYuJWQucG5nJworX0RJRkZfVEVNUExBVEUgPSAnLnBkZi4lZC5kaWZmLnBuZycKIAogCi1jbGFzcyBQYXRoVGVtcGxhdGVzKG9iamVjdCk6CitjbGFzcyBfUGF0aFRlbXBsYXRlczoKIAotICBkZWYgX19pbml0X18oc2VsZiwgaW5wdXRfZmlsZW5hbWUsIHNvdXJjZV9kaXIsIHdvcmtpbmdfZGlyKToKKyAgZGVmIF9faW5pdF9fKHNlbGYsIGlucHV0X2ZpbGVuYW1lLCBzb3VyY2VfZGlyLCB3b3JraW5nX2Rpciwgb3NfbmFtZSwKKyAgICAgICAgICAgICAgIHN1ZmZpeF9vcmRlcik6CiAgICAgaW5wdXRfcm9vdCwgXyA9IG9zLnBhdGguc3BsaXRleHQoaW5wdXRfZmlsZW5hbWUpCiAgICAgc2VsZi5hY3R1YWxfcGF0aF90ZW1wbGF0ZSA9IG9zLnBhdGguam9pbih3b3JraW5nX2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0X3Jvb3QgKyBBQ1RVQUxfVEVNUExBVEUpCi0gICAgc2VsZi5leHBlY3RlZF9wYXRoID0gb3MucGF0aC5qb2luKHNvdXJjZV9kaXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0X3Jvb3QgKyBFWFBFQ1RFRF9URU1QTEFURSkKLSAgICBzZWxmLnBsYXRmb3JtX2V4cGVjdGVkX3BhdGggPSBvcy5wYXRoLmpvaW4oCi0gICAgICAgIHNvdXJjZV9kaXIsIGlucHV0X3Jvb3QgKyBQTEFURk9STV9FWFBFQ1RFRF9URU1QTEFURSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0X3Jvb3QgKyBfQUNUVUFMX1RFTVBMQVRFKQorICAgIHNlbGYuZGlmZl9wYXRoX3RlbXBsYXRlID0gb3MucGF0aC5qb2luKHdvcmtpbmdfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0X3Jvb3QgKyBfRElGRl9URU1QTEFURSkKKworICAgICMgUHJlLWNyZWF0ZSB0aGUgYXZhaWxhYmxlIHRlbXBsYXRlcyBmcm9tIG1vc3QgdG8gbGVhc3Qgc3BlY2lmaWMuIFdlCisgICAgIyBnZW5lcmFsbHkgZXhwZWN0IHRoZSBtb3N0IHNwZWNpZmljIGNhc2UgdG8gbWF0Y2ggZmlyc3QuCisgICAgc2VsZi5leHBlY3RlZF90ZW1wbGF0ZXMgPSBbXQorICAgIGZvciBzdWZmaXggaW4gc3VmZml4X29yZGVyOgorICAgICAgZm9ybWF0dGVkX3N1ZmZpeCA9IHN1ZmZpeC5mb3JtYXQob3M9b3NfbmFtZSkKKyAgICAgIHNlbGYuZXhwZWN0ZWRfdGVtcGxhdGVzLmFwcGVuZCgKKyAgICAgICAgICBvcy5wYXRoLmpvaW4oCisgICAgICAgICAgICAgIHNvdXJjZV9kaXIsCisgICAgICAgICAgICAgIGYne2lucHV0X3Jvb3R9X2V4cGVjdGVke2Zvcm1hdHRlZF9zdWZmaXh9e19BQ1RVQUxfVEVNUExBVEV9JykpCisgICAgYXNzZXJ0IHNlbGYuZXhwZWN0ZWRfdGVtcGxhdGVzCiAKICAgZGVmIEdldEFjdHVhbFBhdGgoc2VsZiwgcGFnZSk6CiAgICAgcmV0dXJuIHNlbGYuYWN0dWFsX3BhdGhfdGVtcGxhdGUgJSBwYWdlCiAKLSAgZGVmIEdldEV4cGVjdGVkUGF0aChzZWxmLCBwYWdlKToKLSAgICByZXR1cm4gc2VsZi5leHBlY3RlZF9wYXRoICUgcGFnZQorICBkZWYgR2V0RGlmZlBhdGgoc2VsZiwgcGFnZSk6CisgICAgcmV0dXJuIHNlbGYuZGlmZl9wYXRoX3RlbXBsYXRlICUgcGFnZQogCi0gIGRlZiBHZXRQbGF0Zm9ybUV4cGVjdGVkUGF0aChzZWxmLCBwbGF0Zm9ybSwgcGFnZSk6Ci0gICAgcmV0dXJuIHNlbGYucGxhdGZvcm1fZXhwZWN0ZWRfcGF0aCAlIChwbGF0Zm9ybSwgcGFnZSkKKyAgZGVmIF9HZXRQb3NzaWJsZUV4cGVjdGVkUGF0aHMoc2VsZiwgcGFnZSk6CisgICAgcmV0dXJuIFt0ZW1wbGF0ZSAlIHBhZ2UgZm9yIHRlbXBsYXRlIGluIHNlbGYuZXhwZWN0ZWRfdGVtcGxhdGVzXQorCisgIGRlZiBHZXRFeHBlY3RlZFBhdGhzKHNlbGYsIHBhZ2UpOgorICAgIHJldHVybiBsaXN0KGZpbHRlcihvcy5wYXRoLmV4aXN0cywgc2VsZi5fR2V0UG9zc2libGVFeHBlY3RlZFBhdGhzKHBhZ2UpKSkKKworICBkZWYgR2V0RXhwZWN0ZWRQYXRoKHNlbGYsIHBhZ2UsIGRlZmF1bHRfdG9fYmFzZT1UcnVlKToKKyAgICAiIiJSZXR1cm5zIHRoZSBtb3N0IHNwZWNpZmljIGV4cGVjdGVkIHBhdGggdGhhdCBleGlzdHMuIiIiCisgICAgbGFzdF9ub3RfZm91bmRfZXhwZWN0ZWRfcGF0aCA9IE5vbmUKKyAgICBmb3IgZXhwZWN0ZWRfcGF0aCBpbiBzZWxmLl9HZXRQb3NzaWJsZUV4cGVjdGVkUGF0aHMocGFnZSk6CisgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhleHBlY3RlZF9wYXRoKToKKyAgICAgICAgcmV0dXJuIGV4cGVjdGVkX3BhdGgKKyAgICAgIGxhc3Rfbm90X2ZvdW5kX2V4cGVjdGVkX3BhdGggPSBleHBlY3RlZF9wYXRoCisgICAgcmV0dXJuIGxhc3Rfbm90X2ZvdW5kX2V4cGVjdGVkX3BhdGggaWYgZGVmYXVsdF90b19iYXNlIGVsc2UgTm9uZQpkaWZmIC0tZ2l0IGEvdGVzdGluZy90b29scy9ydW5fY29ycHVzX3Rlc3RzLnB5IGIvdGVzdGluZy90b29scy9ydW5fY29ycHVzX3Rlc3RzLnB5CmluZGV4IGMxYmVjM2EuLmM5YWQxODUgMTAwNzU1Ci0tLSBhL3Rlc3RpbmcvdG9vbHMvcnVuX2NvcnB1c190ZXN0cy5weQorKysgYi90ZXN0aW5nL3Rvb2xzL3J1bl9jb3JwdXNfdGVzdHMucHkKQEAgLTEsMTggKzEsMTYgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBDb3B5cmlnaHQgMjAxNSBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIS91c3IvYmluL2VudiB2cHl0aG9uMworIyBDb3B5cmlnaHQgMjAxNSBUaGUgUERGaXVtIEF1dGhvcnMKICMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiBpbXBvcnQgc3lzCiAKLSMgcHlsaW50OiBkaXNhYmxlPXJlbGF0aXZlLWltcG9ydAogaW1wb3J0IHRlc3RfcnVubmVyCiAKIAogZGVmIG1haW4oKToKICAgcnVubmVyID0gdGVzdF9ydW5uZXIuVGVzdFJ1bm5lcignY29ycHVzJykKICAgcnVubmVyLlNldEVuZm9yY2VFeHBlY3RlZEltYWdlcyhUcnVlKQotICBydW5uZXIuU2V0T25lU2hvdFJlbmRlcmVyKFRydWUpCiAgIHJldHVybiBydW5uZXIuUnVuKCkKIAogCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rvb2xzL3J1bl9qYXZhc2NyaXB0X3Rlc3RzLnB5IGIvdGVzdGluZy90b29scy9ydW5famF2YXNjcmlwdF90ZXN0cy5weQppbmRleCA5NDhjMWFmLi4wMTNmZTBiIDEwMDc1NQotLS0gYS90ZXN0aW5nL3Rvb2xzL3J1bl9qYXZhc2NyaXB0X3Rlc3RzLnB5CisrKyBiL3Rlc3RpbmcvdG9vbHMvcnVuX2phdmFzY3JpcHRfdGVzdHMucHkKQEAgLTEsMTEgKzEsMTAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBDb3B5cmlnaHQgMjAxNSBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIS91c3IvYmluL2VudiB2cHl0aG9uMworIyBDb3B5cmlnaHQgMjAxNSBUaGUgUERGaXVtIEF1dGhvcnMKICMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiBpbXBvcnQgc3lzCiAKLSMgcHlsaW50OiBkaXNhYmxlPXJlbGF0aXZlLWltcG9ydAogaW1wb3J0IHRlc3RfcnVubmVyCiAKIApkaWZmIC0tZ2l0IGEvdGVzdGluZy90b29scy9ydW5fcGl4ZWxfdGVzdHMucHkgYi90ZXN0aW5nL3Rvb2xzL3J1bl9waXhlbF90ZXN0cy5weQppbmRleCAwOTkyZTBhLi5mYjM1NWI4IDEwMDc1NQotLS0gYS90ZXN0aW5nL3Rvb2xzL3J1bl9waXhlbF90ZXN0cy5weQorKysgYi90ZXN0aW5nL3Rvb2xzL3J1bl9waXhlbF90ZXN0cy5weQpAQCAtMSwxMSArMSwxMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMhL3Vzci9iaW4vZW52IHZweXRob24zCisjIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycwogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKIGltcG9ydCBzeXMKIAotIyBweWxpbnQ6IGRpc2FibGU9cmVsYXRpdmUtaW1wb3J0CiBpbXBvcnQgdGVzdF9ydW5uZXIKIAogCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rvb2xzL3NhZmV0eW5ldF9jb21wYXJlLnB5IGIvdGVzdGluZy90b29scy9zYWZldHluZXRfY29tcGFyZS5weQppbmRleCBjNzZjZTQ0Li5lMWI1Yzg1IDEwMDc1NQotLS0gYS90ZXN0aW5nL3Rvb2xzL3NhZmV0eW5ldF9jb21wYXJlLnB5CisrKyBiL3Rlc3RpbmcvdG9vbHMvc2FmZXR5bmV0X2NvbXBhcmUucHkKQEAgLTEsNSArMSw1IEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMgQ29weXJpZ2h0IDIwMTcgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworIyBDb3B5cmlnaHQgMjAxNyBUaGUgUERGaXVtIEF1dGhvcnMKICMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogIiIiQ29tcGFyZXMgdGhlIHBlcmZvcm1hbmNlIG9mIHR3byB2ZXJzaW9ucyBvZiB0aGUgcGRmaXVtIGNvZGUuIiIiCkBAIC0xNiw3ICsxNiw2IEBACiBpbXBvcnQgc3lzCiBpbXBvcnQgdGVtcGZpbGUKIAotIyBweWxpbnQ6IGRpc2FibGU9cmVsYXRpdmUtaW1wb3J0CiBmcm9tIGNvbW1vbiBpbXBvcnQgR2V0Qm9vbGVhbkduQXJnCiBmcm9tIGNvbW1vbiBpbXBvcnQgUHJpbnRFcnIKIGZyb20gY29tbW9uIGltcG9ydCBSdW5Db21tYW5kUHJvcGFnYXRlRXJyCkBAIC0zMyw3ICszMiw3IEBACiAgIHJldHVybiAodGVzdF9jYXNlLCByZXN1bHQpCiAKIAotY2xhc3MgQ29tcGFyZVJ1bihvYmplY3QpOgorY2xhc3MgQ29tcGFyZVJ1bjoKICAgIiIiQSBjb21wYXJpc29uIGJldHdlZW4gdHdvIGJyYW5jaGVzIG9mIHBkZml1bS4iIiIKIAogICBkZWYgX19pbml0X18oc2VsZiwgYXJncyk6CkBAIC01MjcsOCArNTI2LDcgQEAKICAgICAgIG91dHB1dF9maWxlbmFtZSA9ICgKICAgICAgICAgICAnY2FsbGdyaW5kLm91dC4lcy4lcycgJSAodGVzdF9jYXNlLnJlcGxhY2UoJy8nLCAnXycpLCBydW5fbGFiZWwpKQogICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxmLmFyZ3Mub3V0cHV0X2Rpciwgb3V0cHV0X2ZpbGVuYW1lKQotICAgIGVsc2U6Ci0gICAgICByZXR1cm4gTm9uZQorICAgIHJldHVybiBOb25lCiAKICAgZGVmIF9EcmF3Q29uY2x1c2lvbnMoc2VsZiwgdGltZXNfYmVmb3JlX2JyYW5jaCwgdGltZXNfYWZ0ZXJfYnJhbmNoKToKICAgICAiIiJEcmF3cyBjb25jbHVzaW9ucyBjb21wYXJpbmcgcmVzdWx0cyBvZiB0ZXN0IHJ1bnMgaW4gdHdvIGJyYW5jaGVzLgpAQCAtNTY0LDcgKzU2Miw3IEBACiAgICAgICAgICAgQ29tcGFyaXNvbkNvbmNsdXNpb25zLkdldE91dHB1dERpY3QoKS4KICAgICAiIiIKICAgICBpZiBzZWxmLmFyZ3MubWFjaGluZV9yZWFkYWJsZToKLSAgICAgIHByaW50IGpzb24uZHVtcHMoY29uY2x1c2lvbnNfZGljdCkKKyAgICAgIHByaW50KGpzb24uZHVtcHMoY29uY2x1c2lvbnNfZGljdCkpCiAgICAgZWxzZToKICAgICAgIFByaW50Q29uY2x1c2lvbnNEaWN0SHVtYW5SZWFkYWJsZSgKICAgICAgICAgICBjb25jbHVzaW9uc19kaWN0LCBjb2xvcmVkPVRydWUsIGtleT1zZWxmLmFyZ3MuY2FzZV9vcmRlcikKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdG9vbHMvc2FmZXR5bmV0X2NvbmNsdXNpb25zLnB5IGIvdGVzdGluZy90b29scy9zYWZldHluZXRfY29uY2x1c2lvbnMucHkKaW5kZXggOGYwYjI4Yy4uYjViZTE0YSAxMDA2NDQKLS0tIGEvdGVzdGluZy90b29scy9zYWZldHluZXRfY29uY2x1c2lvbnMucHkKKysrIGIvdGVzdGluZy90b29scy9zYWZldHluZXRfY29uY2x1c2lvbnMucHkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IDIwMTcgVGhlIFBERml1bSBBdXRob3JzCiAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KICIiIkNsYXNzZXMgdGhhdCBkcmF3IGNvbmNsdXNpb25zIG91dCBvZiBhIGNvbXBhcmlzb24gYW5kIHJlcHJlc2VudCB0aGVtLiIiIgpAQCAtMzEsNyArMzEsNyBAQAogfQogCiAKLWNsYXNzIENvbXBhcmlzb25Db25jbHVzaW9ucyhvYmplY3QpOgorY2xhc3MgQ29tcGFyaXNvbkNvbmNsdXNpb25zOgogICAiIiJBbGwgY29uY2x1c2lvbnMgZHJhd24gZnJvbSBhIGNvbXBhcmlzb24uCiAKICAgVGhpcyBpcyBpbml0aWFsaXplZCBlbXB0eSBhbmQgdGhlbiBwcm9jZXNzZXMgcGFpcnMgb2YgcmVzdWx0cyBmb3IgZWFjaCB0ZXN0CkBAIC0xODIsNyArMTgyLDcgQEAKICAgICByZXR1cm4gb3V0cHV0X2RpY3QKIAogCi1jbGFzcyBDb21wYXJpc29uU3VtbWFyeShvYmplY3QpOgorY2xhc3MgQ29tcGFyaXNvblN1bW1hcnk6CiAgICIiIlRvdGFscyBjb21wdXRlZCBmb3IgYSBjb21wYXJpc29uLiIiIgogCiAgIGRlZiBfX2luaXRfXyhzZWxmKToKQEAgLTIwNyw3ICsyMDcsNyBAQAogICAgIHJldHVybiByZXN1bHQKIAogCi1jbGFzcyBDYXNlUmVzdWx0KG9iamVjdCk6CitjbGFzcyBDYXNlUmVzdWx0OgogICAiIiJUaGUgY29uY2x1c2lvbiBmb3IgdGhlIGNvbXBhcmlzb24gb2YgYSBzaW5nbGUgdGVzdCBjYXNlLiIiIgogCiAgIGRlZiBfX2luaXRfXyhzZWxmLCBjYXNlX25hbWUsIGJlZm9yZSwgYWZ0ZXIsIHJhdGlvLCByYXRpbmcpOgpAQCAtMjQ1LDkgKzI0NSw5IEBACiAgICAga2V5OiBTdHJpbmcgd2l0aCB0aGUgQ2FzZVJlc3VsdCBkaWN0aW9uYXJ5IGtleSB0byBzb3J0IHRoZSBjYXNlcy4KICAgIiIiCiAgICMgUHJpbnQgaGVhZGVyCi0gIHByaW50ICc9JyAqIDgwCi0gIHByaW50ICd7MDo+MTFzfSB7MTo+MTVzfSAgezJ9Jy5mb3JtYXQoJyUgQ2hhbmdlJywgJ1RpbWUgYWZ0ZXInLCAnVGVzdCBjYXNlJykKLSAgcHJpbnQgJy0nICogODAKKyAgcHJpbnQoJz0nICogODApCisgIHByaW50KCd7MDo+MTFzfSB7MTo+MTVzfSAgezJ9Jy5mb3JtYXQoJyUgQ2hhbmdlJywgJ1RpbWUgYWZ0ZXInLCAnVGVzdCBjYXNlJykpCisgIHByaW50KCctJyAqIDgwKQogCiAgIGNvbG9yID0gRk9STUFUX05PUk1BTAogCkBAIC0yNjQsMTggKzI2NCwxOCBAQAogICAgICAgY29sb3IgPSBSQVRJTkdfVE9fQ09MT1JbY2FzZV9kaWN0WydyYXRpbmcnXV0KIAogICAgIGlmIGNhc2VfZGljdFsncmF0aW5nJ10gPT0gUkFUSU5HX0ZBSUxVUkU6Ci0gICAgICBwcmludCB1J3t9IHRvIG1lYXN1cmUgdGltZSBmb3Ige30nLmZvcm1hdCgKLSAgICAgICAgICBjb2xvci5mb3JtYXQoJ0ZhaWxlZCcpLCBjYXNlX25hbWUpLmVuY29kZSgndXRmLTgnKQorICAgICAgcHJpbnQodSd7fSB0byBtZWFzdXJlIHRpbWUgZm9yIHt9Jy5mb3JtYXQoCisgICAgICAgICAgY29sb3IuZm9ybWF0KCdGYWlsZWQnKSwgY2FzZV9uYW1lKS5lbmNvZGUoJ3V0Zi04JykpCiAgICAgICBjb250aW51ZQogCi0gICAgcHJpbnQgdSd7MH0gezE6MTUsZH0gIHsyfScuZm9ybWF0KAorICAgIHByaW50KHUnezB9IHsxOjE1LGR9ICB7Mn0nLmZvcm1hdCgKICAgICAgICAgY29sb3IuZm9ybWF0KCd7OisxMS40JX0nLmZvcm1hdChjYXNlX2RpY3RbJ3JhdGlvJ10pKSwKLSAgICAgICAgY2FzZV9kaWN0WydhZnRlciddLCBjYXNlX25hbWUpLmVuY29kZSgndXRmLTgnKQorICAgICAgICBjYXNlX2RpY3RbJ2FmdGVyJ10sIGNhc2VfbmFtZSkuZW5jb2RlKCd1dGYtOCcpKQogCiAgICMgUHJpbnQgdG90YWxzCiAgIHRvdGFscyA9IGNvbmNsdXNpb25zX2RpY3RbJ3N1bW1hcnknXQotICBwcmludCAnPScgKiA4MAotICBwcmludCAnVGVzdCBjYXNlcyBydW46ICVkJyAlIHRvdGFsc1sndG90YWwnXQorICBwcmludCgnPScgKiA4MCkKKyAgcHJpbnQoJ1Rlc3QgY2FzZXMgcnVuOiAlZCcgJSB0b3RhbHNbJ3RvdGFsJ10pCiAKICAgaWYgY29sb3JlZDoKICAgICBjb2xvciA9IEZPUk1BVF9NQUdFTlRBIGlmIHRvdGFsc1tSQVRJTkdfRkFJTFVSRV0gZWxzZSBGT1JNQVRfR1JFRU4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdG9vbHMvc2FmZXR5bmV0X2ltYWdlLnB5IGIvdGVzdGluZy90b29scy9zYWZldHluZXRfaW1hZ2UucHkKaW5kZXggZjMwMDYxNS4uMzI5NTM4NyAxMDA2NDQKLS0tIGEvdGVzdGluZy90b29scy9zYWZldHluZXRfaW1hZ2UucHkKKysrIGIvdGVzdGluZy90b29scy9zYWZldHluZXRfaW1hZ2UucHkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IDIwMTcgVGhlIFBERml1bSBBdXRob3JzCiAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KICIiIkNvbXBhcmVzIHBhaXJzIG9mIHBhZ2UgaW1hZ2VzIGFuZCBnZW5lcmF0ZXMgYW4gSFRNTCB0byBsb29rIGF0IGRpZmZlcmVuY2VzLgpAQCAtMTMsNyArMTMsNiBAQAogaW1wb3J0IHN5cwogaW1wb3J0IHdlYmJyb3dzZXIKIAotIyBweWxpbnQ6IGRpc2FibGU9cmVsYXRpdmUtaW1wb3J0CiBmcm9tIGNvbW1vbiBpbXBvcnQgRGlyZWN0b3J5RmluZGVyCiAKIApAQCAtMjEsNyArMjAsNyBAQAogICByZXR1cm4gaW1hZ2VfY29tcGFyaXNvbi5HZW5lcmF0ZU9uZURpZmYoaW1hZ2UpCiAKIAotY2xhc3MgSW1hZ2VDb21wYXJpc29uKG9iamVjdCk6CitjbGFzcyBJbWFnZUNvbXBhcmlzb246CiAgICIiIkNvbXBhcmVzIHBhaXJzIG9mIHBhZ2UgaW1hZ2VzIGFuZCBnZW5lcmF0ZXMgYW4gSFRNTCB0byBsb29rIGF0IGRpZmZlcmVuY2VzLgogCiAgIFRoZSBpbWFnZXMgYXJlIGFsbCBhc3N1bWVkIHRvIGhhdmUgdGhlIHNhbWUgbmFtZSBhbmQgYmUgaW4gdHdvIGRpcmVjdG9yaWVzOgpAQCAtNjMsNyArNjIsNyBAQAogICAgICMgcHlsaW50OiBkaXNhYmxlPWF0dHJpYnV0ZS1kZWZpbmVkLW91dHNpZGUtaW5pdAogCiAgICAgaWYgbGVuKHNlbGYudHdvX2xhYmVscykgIT0gMjoKLSAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICd0d29fbGFiZWxzIG11c3QgYmUgYSB0dXBsZSBvZiBsZW5ndGggMicKKyAgICAgIHByaW50KCd0d29fbGFiZWxzIG11c3QgYmUgYSB0dXBsZSBvZiBsZW5ndGggMicsIGZpbGU9c3lzLnN0ZGVycikKICAgICAgIHJldHVybiAxCiAKICAgICBmaW5kZXIgPSBEaXJlY3RvcnlGaW5kZXIoc2VsZi5idWlsZF9kaXIpCkBAIC04OCw3ICs4Nyw3IEBACiAgICAgICBmb3IgaW1hZ2UgaW4gc2VsZi5pbWFnZV9sb2NhdGlvbnMuSW1hZ2VzKCk6CiAgICAgICAgIGRpZmYgPSBkaWZmZXJlbmNlW2ltYWdlXQogICAgICAgICBpZiBkaWZmIGlzIE5vbmU6Ci0gICAgICAgICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgJ0ZhaWxlZCB0byBjb21wYXJlIGltYWdlICVzJyAlIGltYWdlCisgICAgICAgICAgcHJpbnQoJ0ZhaWxlZCB0byBjb21wYXJlIGltYWdlICVzJyAlIGltYWdlLCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgICAgIGVsaWYgZGlmZiA+IHNlbGYudGhyZXNob2xkOgogICAgICAgICAgIHNlbGYuX1dyaXRlSW1hZ2VSb3dzKGYsIGltYWdlLCBkaWZmKQogICAgICAgICBlbHNlOgpAQCAtMTcwLDcgKzE2OSw3IEBACiAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yIGFzIGU6CiAgICAgICByZXR1cm4gaW1hZ2UsIHBlcmNlbnRhZ2VfY2hhbmdlCiAgICAgZWxzZToKLSAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICdXYXJuaW5nOiBTaG91bGQgaGF2ZSBmYWlsZWQgdGhlIHByZXZpb3VzIGRpZmYuJworICAgICAgcHJpbnQoJ1dhcm5pbmc6IFNob3VsZCBoYXZlIGZhaWxlZCB0aGUgcHJldmlvdXMgZGlmZi4nLCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgICByZXR1cm4gaW1hZ2UsIDAKIAogICBkZWYgX0dldFJlbGF0aXZlUGF0aChzZWxmLCBhYnNvbHV0ZV9wYXRoKToKQEAgLTIzOSw3ICsyMzgsNyBAQAogICAgICAgZi53cml0ZSgnPC90ZD48L3RyPicpCiAKIAotY2xhc3MgSW1hZ2VMb2NhdGlvbnMob2JqZWN0KToKK2NsYXNzIEltYWdlTG9jYXRpb25zOgogICAiIiJDb250YWlucyB0aGUgbG9jYXRpb25zIG9mIGlucHV0IGFuZCBvdXRwdXQgaW1hZ2UgZmlsZXMuCiAgICIiIgogCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rvb2xzL3NhZmV0eW5ldF9qb2IucHkgYi90ZXN0aW5nL3Rvb2xzL3NhZmV0eW5ldF9qb2IucHkKaW5kZXggOWI1Y2JmZC4uYmJiM2NjYSAxMDA3NTUKLS0tIGEvdGVzdGluZy90b29scy9zYWZldHluZXRfam9iLnB5CisrKyBiL3Rlc3RpbmcvdG9vbHMvc2FmZXR5bmV0X2pvYi5weQpAQCAtMSw1ICsxLDUgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBDb3B5cmlnaHQgMjAxNyBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIS91c3IvYmluL2VudiBweXRob24zCisjIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycwogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAiIiJMb29rcyBmb3IgcGVyZm9ybWFuY2UgcmVncmVzc2lvbnMgb24gYWxsIHB1c2hlcyBzaW5jZSB0aGUgbGFzdCBydW4uCkBAIC0xNSwxNCArMTUsMTMgQEAKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogCi0jIHB5bGludDogZGlzYWJsZT1yZWxhdGl2ZS1pbXBvcnQKIGZyb20gY29tbW9uIGltcG9ydCBQcmludFdpdGhUaW1lCiBmcm9tIGNvbW1vbiBpbXBvcnQgUnVuQ29tbWFuZFByb3BhZ2F0ZUVycgogZnJvbSBnaXRoZWxwZXIgaW1wb3J0IEdpdEhlbHBlcgogZnJvbSBzYWZldHluZXRfY29uY2x1c2lvbnMgaW1wb3J0IFByaW50Q29uY2x1c2lvbnNEaWN0SHVtYW5SZWFkYWJsZQogCiAKLWNsYXNzIEpvYkNvbnRleHQob2JqZWN0KToKK2NsYXNzIEpvYkNvbnRleHQ6CiAgICIiIkNvbnRleHQgZm9yIGEgc2luZ2xlIHJ1biwgaW5jbHVkaW5nIG5hbWUgYW5kIGRpcmVjdG9yeSBwYXRocy4iIiIKIAogICBkZWYgX19pbml0X18oc2VsZiwgYXJncyk6CkBAIC0zNiw3ICszNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICclcy5sb2cnICUgc2VsZi5kYXRldGltZSkKIAogCi1jbGFzcyBKb2JSdW4ob2JqZWN0KToKK2NsYXNzIEpvYlJ1bjoKICAgIiIiQSBzaW5nbGUgcnVuIGxvb2tpbmcgZm9yIHJlZ3Jlc3Npb25zIHNpbmNlIHRoZSBsYXN0IG9uZS4iIiIKIAogICBkZWYgX19pbml0X18oc2VsZiwgYXJncywgY29udGV4dCk6CkBAIC02OSw3ICs2OCw3IEBACiAKICAgICBpZiBub3Qgc2VsZi5hcmdzLm5vX2NoZWNrb3V0OgogICAgICAgc2VsZi5naXQuRmV0Y2hPcmlnaW5NYXN0ZXIoKQotICAgICAgc2VsZi5naXQuQ2hlY2tvdXQoJ29yaWdpbi9tYXN0ZXInKQorICAgICAgc2VsZi5naXQuQ2hlY2tvdXQoJ29yaWdpbi9tYWluJykKIAogICAgICMgTWFrZSBzdXJlIHJlc3VsdHMgZGlyIGV4aXN0cwogICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzZWxmLmNvbnRleHQucmVzdWx0c19kaXIpOgpAQCAtMjAwLDcgKzE5OSw3IEBACiAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAgICAgICAnLS1uby1jaGVja291dCcsCiAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgaGVscD0nd2hldGhlciB0byBza2lwIGNoZWNraW5nIG91dCBvcmlnaW4vbWFzdGVyLiBVc2UgJworICAgICAgaGVscD0nd2hldGhlciB0byBza2lwIGNoZWNraW5nIG91dCBvcmlnaW4vbWFpbi4gVXNlICcKICAgICAgICdmb3Igc2NyaXB0IGRlYnVnZ2luZy4nKQogICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgJy0tbm8tY2hlY2twb2ludCcsCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rvb2xzL3NhZmV0eW5ldF9tZWFzdXJlLnB5IGIvdGVzdGluZy90b29scy9zYWZldHluZXRfbWVhc3VyZS5weQppbmRleCAzNTc3MTg5Li5jYzgzYjFkIDEwMDc1NQotLS0gYS90ZXN0aW5nL3Rvb2xzL3NhZmV0eW5ldF9tZWFzdXJlLnB5CisrKyBiL3Rlc3RpbmcvdG9vbHMvc2FmZXR5bmV0X21lYXN1cmUucHkKQEAgLTEsNSArMSw1IEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMgQ29weXJpZ2h0IDIwMTcgVGhlIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworIyBDb3B5cmlnaHQgMjAxNyBUaGUgUERGaXVtIEF1dGhvcnMKICMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogIiIiTWVhc3VyZXMgcGVyZm9ybWFuY2UgZm9yIHJlbmRlcmluZyBhIHNpbmdsZSB0ZXN0IGNhc2Ugd2l0aCBwZGZpdW0uCkBAIC0xMyw3ICsxMyw2IEBACiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cwogCi0jIHB5bGludDogZGlzYWJsZT1yZWxhdGl2ZS1pbXBvcnQKIGZyb20gY29tbW9uIGltcG9ydCBQcmludEVycgogCiBDQUxMR1JJTkRfUFJPRklMRVIgPSAnY2FsbGdyaW5kJwpAQCAtMjMsNyArMjIsNyBAQAogUERGSVVNX1RFU1QgPSAncGRmaXVtX3Rlc3QnCiAKIAotY2xhc3MgUGVyZm9ybWFuY2VSdW4ob2JqZWN0KToKK2NsYXNzIFBlcmZvcm1hbmNlUnVuOgogICAiIiJBIHNpbmdsZSBtZWFzdXJlbWVudCBvZiBhIHRlc3QgY2FzZS4iIiIKIAogICBkZWYgX19pbml0X18oc2VsZiwgYXJncyk6CkBAIC02NSw3ICs2NCw3IEBACiAgICAgaWYgdGltZSBpcyBOb25lOgogICAgICAgcmV0dXJuIDEKIAotICAgIHByaW50IHRpbWUKKyAgICBwcmludCh0aW1lKQogICAgIHJldHVybiAwCiAKICAgZGVmIF9SdW5DYWxsZ3JpbmQoc2VsZik6CkBAIC04NCw3ICs4Myw4IEBACiAgICAgICAgICctLWluc3RyLWF0c3RhcnQ9JXMnICUgaW5zdHJ1bWVudF9hdF9zdGFydCwKICAgICAgICAgJy0tY2FsbGdyaW5kLW91dC1maWxlPSVzJyAlIG91dHB1dF9wYXRoCiAgICAgXSArIHNlbGYuX0J1aWxkVGVzdEhhcm5lc3NDb21tYW5kKCkpCi0gICAgb3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQodmFsZ3JpbmRfY21kLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCisgICAgb3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoCisgICAgICAgIHZhbGdyaW5kX2NtZCwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUKS5kZWNvZGUoJ3V0Zi04JykKIAogICAgICMgTWF0Y2ggdGhlIGxpbmUgd2l0aCB0aGUgaW5zdHJ1Y3Rpb24gY291bnQsIGVnLgogICAgICMgJz09OTg3NjU9PSBDb2xsZWN0ZWQgOiAxMjM0NScKQEAgLTEwMCw3ICsxMDAsOCBAQAogICAgICMgLWVpbnN0cnVjdGlvbnM6IHByaW50IG9ubHkgaW5zdHJ1Y3Rpb24gY291bnQKICAgICBjbWRfdG9fcnVuID0gKFsncGVyZicsICdzdGF0JywgJy0tbm8tYmlnLW51bScsICctZWluc3RydWN0aW9ucyddICsKICAgICAgICAgICAgICAgICAgIHNlbGYuX0J1aWxkVGVzdEhhcm5lc3NDb21tYW5kKCkpCi0gICAgb3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoY21kX3RvX3J1biwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUKQorICAgIG91dHB1dCA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KAorICAgICAgICBjbWRfdG9fcnVuLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpLmRlY29kZSgndXRmLTgnKQogCiAgICAgIyBNYXRjaCB0aGUgbGluZSB3aXRoIHRoZSBpbnN0cnVjdGlvbiBjb3VudCwgZWcuCiAgICAgIyAnICAgICAgICAxMjM0NSAgICAgIGluc3RydWN0aW9ucycKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdG9vbHMvc2tpYV9nb2xkL19faW5pdF9fLnB5IGIvdGVzdGluZy90b29scy9za2lhX2dvbGQvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzkzODFiOQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvdG9vbHMvc2tpYV9nb2xkL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNyBAQAorIyBDb3B5cmlnaHQgMjAyMiBUaGUgUERGaXVtIEF1dGhvcnMKKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCitpbXBvcnQgcGRmaXVtX3Jvb3QKKworcGRmaXVtX3Jvb3QuYWRkX3NvdXJjZV9kaXJlY3RvcnlfdG9faW1wb3J0X3BhdGgoJ2J1aWxkJykKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdG9vbHMvc2tpYV9nb2xkL3BkZml1bV9za2lhX2dvbGRfcHJvcGVydGllcy5weSBiL3Rlc3RpbmcvdG9vbHMvc2tpYV9nb2xkL3BkZml1bV9za2lhX2dvbGRfcHJvcGVydGllcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWI4ZWY5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy90b29scy9za2lhX2dvbGQvcGRmaXVtX3NraWFfZ29sZF9wcm9wZXJ0aWVzLnB5CkBAIC0wLDAgKzEsMjcgQEAKKyMgQ29weXJpZ2h0IDIwMjEgVGhlIFBERml1bSBBdXRob3JzCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyIiIlBERml1bSBpbXBsZW1lbnRhdGlvbiBvZiAvL2J1aWxkL3NraWFfZ29sZF9jb21tb24vc2tpYV9nb2xkX3Byb3BlcnRpZXMucHkuIiIiCisKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCisKK2ltcG9ydCBwZGZpdW1fcm9vdAorZnJvbSBza2lhX2dvbGRfY29tbW9uIGltcG9ydCBza2lhX2dvbGRfcHJvcGVydGllcworCisKK2NsYXNzIFBERml1bVNraWFHb2xkUHJvcGVydGllcyhza2lhX2dvbGRfcHJvcGVydGllcy5Ta2lhR29sZFByb3BlcnRpZXMpOgorCisgIEBzdGF0aWNtZXRob2QKKyAgZGVmIF9HZXRHaXRPcmlnaW5NYWluSGVhZFNoYTEoKToKKyAgICByb290X2ZpbmRlciA9IHBkZml1bV9yb290LlJvb3REaXJlY3RvcnlGaW5kZXIoKQorICAgIHRyeToKKyAgICAgIHJldHVybiBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChbJ2dpdCcsICdyZXYtcGFyc2UnLCAnb3JpZ2luL21haW4nXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGVsbD1fSXNXaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjd2Q9cm9vdF9maW5kZXIucGRmaXVtX3Jvb3QpLnN0cmlwKCkKKyAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CisgICAgICByZXR1cm4gTm9uZQorCisKK2RlZiBfSXNXaW4oKToKKyAgcmV0dXJuIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rvb2xzL3NraWFfZ29sZC9wZGZpdW1fc2tpYV9nb2xkX3Nlc3Npb24ucHkgYi90ZXN0aW5nL3Rvb2xzL3NraWFfZ29sZC9wZGZpdW1fc2tpYV9nb2xkX3Nlc3Npb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThhN2VmMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvdG9vbHMvc2tpYV9nb2xkL3BkZml1bV9za2lhX2dvbGRfc2Vzc2lvbi5weQpAQCAtMCwwICsxLDI5IEBACisjIENvcHlyaWdodCAyMDIxIFRoZSBQREZpdW0gQXV0aG9ycworIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisiIiJQREZpdW0gaW1wbGVtZW50YXRpb24gb2YgLy9idWlsZC9za2lhX2dvbGRfY29tbW9uL3NraWFfZ29sZF9zZXNzaW9uLnB5LiIiIgorCitmcm9tIHNraWFfZ29sZF9jb21tb24gaW1wb3J0IG91dHB1dF9tYW5hZ2VybGVzc19za2lhX2dvbGRfc2Vzc2lvbiBhcyBvbXNncworCisKKyMgQ29tcGFyaXNvblJlc3VsdHMgbmVzdGVkIGluc2lkZSB0aGUgU2tpYUdvbGRTZXNzaW9uIGNhdXNlcyBpc3N1ZXMgd2l0aAorIyBtdWx0aXByb2Nlc3NpbmcgYW5kIHBpY2tsaW5nLCBzbyBpdCB3YXMgbW92ZWQgb3V0IGhlcmUuCitjbGFzcyBQREZpdW1Db21wYXJpc29uUmVzdWx0czoKKyAgIiIiU3RydWN0LWxpa2Ugb2JqZWN0IGZvciBzdG9yaW5nIHJlc3VsdHMgb2YgYW4gaW1hZ2UgY29tcGFyaXNvbi4iIiIKKworICBkZWYgX19pbml0X18oc2VsZik6CisgICAgc2VsZi5wdWJsaWNfdHJpYWdlX2xpbmsgPSBOb25lCisgICAgc2VsZi5pbnRlcm5hbF90cmlhZ2VfbGluayA9IE5vbmUKKyAgICBzZWxmLnRyaWFnZV9saW5rX29taXNzaW9uX3JlYXNvbiA9IE5vbmUKKyAgICBzZWxmLmxvY2FsX2RpZmZfZ2l2ZW5faW1hZ2UgPSBOb25lCisgICAgc2VsZi5sb2NhbF9kaWZmX2Nsb3Nlc3RfaW1hZ2UgPSBOb25lCisgICAgc2VsZi5sb2NhbF9kaWZmX2RpZmZfaW1hZ2UgPSBOb25lCisKKworY2xhc3MgUERGaXVtU2tpYUdvbGRTZXNzaW9uKG9tc2dzLk91dHB1dE1hbmFnZXJsZXNzU2tpYUdvbGRTZXNzaW9uKToKKworICBkZWYgX0dldERpZmZHb2xkSW5zdGFuY2Uoc2VsZik6CisgICAgcmV0dXJuIHN0cihzZWxmLl9pbnN0YW5jZSkKKworICBkZWYgQ29tcGFyaXNvblJlc3VsdHMoc2VsZik6CisgICAgcmV0dXJuIFBERml1bUNvbXBhcmlzb25SZXN1bHRzKCkKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdG9vbHMvc2tpYV9nb2xkL3BkZml1bV9za2lhX2dvbGRfc2Vzc2lvbl9tYW5hZ2VyLnB5IGIvdGVzdGluZy90b29scy9za2lhX2dvbGQvcGRmaXVtX3NraWFfZ29sZF9zZXNzaW9uX21hbmFnZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY2Y2M1ZQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvdG9vbHMvc2tpYV9nb2xkL3BkZml1bV9za2lhX2dvbGRfc2Vzc2lvbl9tYW5hZ2VyLnB5CkBAIC0wLDAgKzEsMjEgQEAKKyMgQ29weXJpZ2h0IDIwMjEgVGhlIFBERml1bSBBdXRob3JzCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyIiIlBERml1bSBpbXBsZW1lbnRhdGlvbiBvZgorLy9idWlsZC9za2lhX2dvbGRfY29tbW9uL3NraWFfZ29sZF9zZXNzaW9uX21hbmFnZXIucHkuIiIiCisKK2Zyb20gLiBpbXBvcnQgcGRmaXVtX3NraWFfZ29sZF9zZXNzaW9uCitmcm9tIHNraWFfZ29sZF9jb21tb24gaW1wb3J0IHNraWFfZ29sZF9zZXNzaW9uX21hbmFnZXIgYXMgc2dzbQorCitTS0lBX1BERl9JTlNUQU5DRSA9ICdwZGZpdW0nCisKKworY2xhc3MgUERGaXVtU2tpYUdvbGRTZXNzaW9uTWFuYWdlcihzZ3NtLlNraWFHb2xkU2Vzc2lvbk1hbmFnZXIpOgorCisgIEBzdGF0aWNtZXRob2QKKyAgZGVmIEdldFNlc3Npb25DbGFzcygpOgorICAgIHJldHVybiBwZGZpdW1fc2tpYV9nb2xkX3Nlc3Npb24uUERGaXVtU2tpYUdvbGRTZXNzaW9uCisKKyAgQHN0YXRpY21ldGhvZAorICBkZWYgX0dldERlZmF1bHRJbnN0YW5jZSgpOgorICAgIHJldHVybiBTS0lBX1BERl9JTlNUQU5DRQpkaWZmIC0tZ2l0IGEvdGVzdGluZy90b29scy9za2lhX2dvbGQvc2tpYV9nb2xkLnB5IGIvdGVzdGluZy90b29scy9za2lhX2dvbGQvc2tpYV9nb2xkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzNTk1ZDIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Rvb2xzL3NraWFfZ29sZC9za2lhX2dvbGQucHkKQEAgLTAsMCArMSwyMjEgQEAKKyMgQ29weXJpZ2h0IDIwMjEgVGhlIFBERml1bSBBdXRob3JzCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworaW1wb3J0IG9zCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHNobGV4CitpbXBvcnQgc2h1dGlsCisKK2Zyb20gLiBpbXBvcnQgcGRmaXVtX3NraWFfZ29sZF9wcm9wZXJ0aWVzCitmcm9tIC4gaW1wb3J0IHBkZml1bV9za2lhX2dvbGRfc2Vzc2lvbl9tYW5hZ2VyCisKK0dTX0JVQ0tFVCA9ICdza2lhLXBkZml1bS1nbScKKworCitkZWYgX1BhcnNlS2V5VmFsdWVQYWlycyhrdl9zdHIpOgorICAiIiIKKyAgUGFyc2VzIGEgc3RyaW5nIG9mIHRoZSB0eXBlICdrZXkxIHZhbHVlMSBrZXkyIHZhbHVlMicgaW50byBhIGRpY3QuCisgICIiIgorICBrdl9wYWlycyA9IHNobGV4LnNwbGl0KGt2X3N0cikKKyAgaWYgbGVuKGt2X3BhaXJzKSAlIDI6CisgICAgcmFpc2UgVmFsdWVFcnJvcignVW5ldmVuIG51bWJlciBvZiBrZXkvdmFsdWUgcGFpcnMuIEdvdCAlcycgJSBrdl9zdHIpCisgIHJldHVybiB7a3ZfcGFpcnNbaV06IGt2X3BhaXJzW2kgKyAxXSBmb3IgaSBpbiByYW5nZSgwLCBsZW4oa3ZfcGFpcnMpLCAyKX0KKworCitkZWYgYWRkX3NraWFfZ29sZF9hcmdzKHBhcnNlcik6CisgIGdyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgnU2tpYSBHb2xkIEFyZ3VtZW50cycpCisgIGdyb3VwLmFkZF9hcmd1bWVudCgKKyAgICAgICctLWdpdC1yZXZpc2lvbicsIGhlbHA9J1JldmlzaW9uIGJlaW5nIHRlc3RlZC4nLCBkZWZhdWx0PU5vbmUpCisgIGdyb3VwLmFkZF9hcmd1bWVudCgKKyAgICAgICctLWdlcnJpdC1pc3N1ZScsCisgICAgICBoZWxwPSdGb3IgU2tpYSBHb2xkIGludGVncmF0aW9uLiBHZXJyaXQgaXNzdWUgSUQuJywKKyAgICAgIGRlZmF1bHQ9JycpCisgIGdyb3VwLmFkZF9hcmd1bWVudCgKKyAgICAgICctLWdlcnJpdC1wYXRjaHNldCcsCisgICAgICBoZWxwPSdGb3IgU2tpYSBHb2xkIGludGVncmF0aW9uLiBHZXJyaXQgcGF0Y2ggc2V0IG51bWJlci4nLAorICAgICAgZGVmYXVsdD0nJykKKyAgZ3JvdXAuYWRkX2FyZ3VtZW50KAorICAgICAgJy0tYnVpbGRidWNrZXQtaWQnLAorICAgICAgaGVscD0nRm9yIFNraWEgR29sZCBpbnRlZ3JhdGlvbi4gQnVpbGRidWNrZXQgYnVpbGQgSUQuJywKKyAgICAgIGRlZmF1bHQ9JycpCisgIGdyb3VwLmFkZF9hcmd1bWVudCgKKyAgICAgICctLWJ5cGFzcy1za2lhLWdvbGQtZnVuY3Rpb25hbGl0eScsCisgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgZGVmYXVsdD1GYWxzZSwKKyAgICAgIGhlbHA9J0J5cGFzcyBhbGwgaW50ZXJhY3Rpb24gd2l0aCBTa2lhIEdvbGQsIGVmZmVjdGl2ZWx5IGRpc2FibGluZyB0aGUgJworICAgICAgJ2ltYWdlIGNvbXBhcmlzb24gcG9ydGlvbiBvZiBhbnkgdGVzdHMgdGhhdCB1c2UgR29sZC4gT25seSBtZWFudCB0byAnCisgICAgICAnYmUgdXNlZCBpbiBjYXNlIGEgR29sZCBvdXRhZ2Ugb2NjdXJzIGFuZCBjYW5ub3QgYmUgZml4ZWQgcXVpY2tseS4nKQorICBsb2NhbF9ncm91cCA9IGdyb3VwLmFkZF9tdXR1YWxseV9leGNsdXNpdmVfZ3JvdXAoKQorICBsb2NhbF9ncm91cC5hZGRfYXJndW1lbnQoCisgICAgICAnLS1sb2NhbC1waXhlbC10ZXN0cycsCisgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgZGVmYXVsdD1Ob25lLAorICAgICAgaGVscD0nU3BlY2lmaWVzIHRvIHJ1biB0aGUgdGVzdCBoYXJuZXNzIGluIGxvY2FsIHJ1biBtb2RlIG9yIG5vdC4gV2hlbiAnCisgICAgICAncnVuIGluIGxvY2FsIG1vZGUsIHVwbG9hZGluZyB0byBHb2xkIGlzIGRpc2FibGVkIGFuZCBsaW5rcyB0byAnCisgICAgICAnaGVscCB3aXRoIGxvY2FsIGRlYnVnZ2luZyBhcmUgb3V0cHV0LiBSdW5uaW5nIGluIGxvY2FsIG1vZGUgYWxzbyAnCisgICAgICAnaW1wbGllcyAtLW5vLWx1Y2ktYXV0aC4gSWYgYm90aCB0aGlzIGFuZCAtLW5vLWxvY2FsLXBpeGVsLXRlc3RzIGFyZSAnCisgICAgICAnbGVmdCB1bnNldCwgdGhlIHRlc3QgaGFybmVzcyB3aWxsIGF0dGVtcHQgdG8gZGV0ZWN0IHdoZXRoZXIgaXQgaXMgJworICAgICAgJ3J1bm5pbmcgb24gYSB3b3Jrc3RhdGlvbiBvciBub3QgYW5kIHNldCB0aGlzIG9wdGlvbiBhY2NvcmRpbmdseS4nKQorICBsb2NhbF9ncm91cC5hZGRfYXJndW1lbnQoCisgICAgICAnLS1uby1sb2NhbC1waXhlbC10ZXN0cycsCisgICAgICBhY3Rpb249J3N0b3JlX2ZhbHNlJywKKyAgICAgIGRlc3Q9J2xvY2FsX3BpeGVsX3Rlc3RzJywKKyAgICAgIGhlbHA9J1NwZWNpZmllcyB0byBydW4gdGhlIHRlc3QgaGFybmVzcyBpbiBub24tbG9jYWwgKGJvdCkgbW9kZS4gV2hlbiAnCisgICAgICAncnVuIGluIHRoaXMgbW9kZSwgZGF0YSBpcyBhY3R1YWxseSB1cGxvYWRlZCB0byBHb2xkIGFuZCB0cmlhZ2UgbGlua3MgJworICAgICAgJ2FyZ2UgZ2VuZXJhdGVkLiBJZiBib3RoIHRoaXMgYW5kIC0tbG9jYWwtcGl4ZWwtdGVzdHMgYXJlIGxlZnQgdW5zZXQsICcKKyAgICAgICd0aGUgdGVzdCBoYXJuZXNzIHdpbGwgYXR0ZW1wdCB0byBkZXRlY3Qgd2hldGhlciBpdCBpcyBydW5uaW5nIG9uIGEgJworICAgICAgJ3dvcmtzdGF0aW9uIG9yIG5vdCBhbmQgc2V0IHRoaXMgb3B0aW9uIGFjY29yZGluZ2x5LicpCisgIGdyb3VwLmFkZF9hcmd1bWVudCgKKyAgICAgICctLW5vLWx1Y2ktYXV0aCcsCisgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgZGVmYXVsdD1GYWxzZSwKKyAgICAgIGhlbHA9J0RvblwndCB1c2UgdGhlIHNlcnZpY2UgYWNjb3VudCBwcm92aWRlZCBieSBMVUNJIGZvciAnCisgICAgICAnYXV0aGVudGljYXRpb24gZm9yIFNraWEgR29sZCwgaW5zdGVhZCByZWx5aW5nIG9uIGdzdXRpbCB0byBiZSAnCisgICAgICAncHJlLWF1dGhlbnRpY2F0ZWQuIE1lYW50IGZvciB0ZXN0aW5nIGxvY2FsbHkgaW5zdGVhZCBvZiBvbiB0aGUgYm90cy4nKQorCisgIGdyb3VwLmFkZF9hcmd1bWVudCgKKyAgICAgICctLWdvbGRfa2V5JywKKyAgICAgIGRlZmF1bHQ9JycsCisgICAgICBkZXN0PSJnb2xkX2tleSIsCisgICAgICBoZWxwPSdLZXkgdmFsdWUgcGFpcnMgb2YgY29uZmlnIGRhdGEgc3VjaCBsaWtlIHRoZSBoYXJkd2FyZS9zb2Z0d2FyZSAnCisgICAgICAnY29uZmlndXJhdGlvbiB0aGUgaW1hZ2Ugd2FzIHByb2R1Y2VkIG9uLicpCisgIGdyb3VwLmFkZF9hcmd1bWVudCgKKyAgICAgICctLWdvbGRfb3V0cHV0X2RpcicsCisgICAgICBkZWZhdWx0PScnLAorICAgICAgZGVzdD0iZ29sZF9vdXRwdXRfZGlyIiwKKyAgICAgIGhlbHA9J1BhdGggdG8gdGhlIGRpciB3aGVyZSBkaWZmIG91dHB1dCBpbWFnZSBmaWxlcyBhcmUgc2F2ZWQsICcKKyAgICAgICdpZiBydW5uaW5nIGxvY2FsbHkuIElmIHRoaXMgaXMgYSB0cnlqb2IgcnVuLCB3aWxsIGNvbnRhaW4gbGluayB0byBza2lhICcKKyAgICAgICdnb2xkIENMIHRyaWFnZSBsaW5rLiBSZXF1aXJlZCB3aXRoIC0tcnVuLXNraWEtZ29sZC4nKQorCisKK2RlZiBjbGVhcl9nb2xkX291dHB1dF9kaXIob3V0cHV0X2Rpcik6CisgICMgbWFrZSBzdXJlIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGV4aXN0cyBhbmQgaXMgZW1wdHkuCisgIGlmIG9zLnBhdGguZXhpc3RzKG91dHB1dF9kaXIpOgorICAgIHNodXRpbC5ybXRyZWUob3V0cHV0X2RpciwgaWdub3JlX2Vycm9ycz1UcnVlKQorICBvcy5tYWtlZGlycyhvdXRwdXRfZGlyKQorCisKK2NsYXNzIFNraWFHb2xkVGVzdGVyOgorCisgIGRlZiBfX2luaXRfXyhzZWxmLCBzb3VyY2VfdHlwZSwgc2tpYV9nb2xkX2FyZ3MsIHByb2Nlc3NfbmFtZT1Ob25lKToKKyAgICAiIiIKKyAgICBzb3VyY2VfdHlwZTogc291cmNlX3R5cGUgKD1jb3JwdXMpIGZpZWxkIHVzZWQgZm9yIGFsbCByZXN1bHRzLgorICAgIHNraWFfZ29sZF9hcmdzOiBQYXJzZWQgYXJndW1lbnRzIGZyb20gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIuCisgICAgcHJvY2Vzc19uYW1lOiBVbmlxdWUgbmFtZSBvZiBjdXJyZW50IHByb2Nlc3MsIGlmIG11bHRpcHJvY2Vzc2luZyBpcyBvbi4KKyAgICAiIiIKKyAgICBzZWxmLl9zb3VyY2VfdHlwZSA9IHNvdXJjZV90eXBlCisgICAgc2VsZi5fb3V0cHV0X2RpciA9IHNraWFfZ29sZF9hcmdzLmdvbGRfb3V0cHV0X2RpcgorICAgICMgZ29sZGN0bCBpcyBub3QgdGhyZWFkIHNhZmUsIHNvIGVhY2ggcHJvY2VzcyBuZWVkcyBpdHMgb3duIGRpcmVjdG9yeQorICAgIGlmIHByb2Nlc3NfbmFtZToKKyAgICAgIHNlbGYuX291dHB1dF9kaXIgPSBvcy5wYXRoLmpvaW4oc2tpYV9nb2xkX2FyZ3MuZ29sZF9vdXRwdXRfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzX25hbWUpCisgICAgICBjbGVhcl9nb2xkX291dHB1dF9kaXIoc2VsZi5fb3V0cHV0X2RpcikKKyAgICBzZWxmLl9rZXlzID0gX1BhcnNlS2V5VmFsdWVQYWlycyhza2lhX2dvbGRfYXJncy5nb2xkX2tleSkKKyAgICBzZWxmLl9vbGRfZ29sZF9wcm9wcyA9IF9QYXJzZUtleVZhbHVlUGFpcnMoc2tpYV9nb2xkX2FyZ3MuZ29sZF9wcm9wZXJ0aWVzKQorICAgIHNlbGYuX3NraWFfZ29sZF9hcmdzID0gc2tpYV9nb2xkX2FyZ3MKKyAgICBzZWxmLl9za2lhX2dvbGRfc2Vzc2lvbl9tYW5hZ2VyID0gTm9uZQorICAgIHNlbGYuX3NraWFfZ29sZF9wcm9wZXJ0aWVzID0gTm9uZQorCisgIGRlZiBXcml0ZUNMVHJpYWdlTGluayhzZWxmLCBsaW5rKToKKyAgICAjIHBkZml1bSByZWNpcGUgd2lsbCByZWFkIGZyb20gdGhpcyBmaWxlIGFuZCBkaXNwbGF5IHRoZSBsaW5rIGluIHRoZSBzdGVwCisgICAgIyBwcmVzZW50YXRpb24KKyAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5rLCBzdHIpCisgICAgb3V0cHV0X2ZpbGVfbmFtZSA9IG9zLnBhdGguam9pbihzZWxmLl9vdXRwdXRfZGlyLCAnY2xfdHJpYWdlX2xpbmsudHh0JykKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhvdXRwdXRfZmlsZV9uYW1lKToKKyAgICAgIG9zLnJlbW92ZShvdXRwdXRfZmlsZV9uYW1lKQorICAgIHdpdGggb3BlbihvdXRwdXRfZmlsZV9uYW1lLCAnd2InKSBhcyBvdXRmaWxlOgorICAgICAgb3V0ZmlsZS53cml0ZShsaW5rLmVuY29kZSgndXRmOCcpKQorCisgIGRlZiBHZXRTa2lhR29sZFByb3BlcnRpZXMoc2VsZik6CisgICAgaWYgbm90IHNlbGYuX3NraWFfZ29sZF9wcm9wZXJ0aWVzOgorICAgICAgaWYgc2VsZi5fb2xkX2dvbGRfcHJvcHM6CisgICAgICAgIHNlbGYuX3NraWFfZ29sZF9hcmdzLmdpdF9yZXZpc2lvbiA9IHNlbGYuX29sZF9nb2xkX3Byb3BzWydnaXRIYXNoJ10KKyAgICAgICAgc2VsZi5fc2tpYV9nb2xkX2FyZ3MuZ2Vycml0X2lzc3VlID0gc2VsZi5fb2xkX2dvbGRfcHJvcHNbJ2lzc3VlJ10KKyAgICAgICAgc2VsZi5fc2tpYV9nb2xkX2FyZ3MuZ2Vycml0X3BhdGNoc2V0ID0gc2VsZi5fb2xkX2dvbGRfcHJvcHNbJ3BhdGNoc2V0J10KKyAgICAgICAgc2VsZi5fc2tpYV9nb2xkX2FyZ3MuYnVpbGRidWNrZXRfaWQgPSBcCisgICAgICAgICAgICBzZWxmLl9vbGRfZ29sZF9wcm9wc1snYnVpbGRidWNrZXRfYnVpbGRfaWQnXQorCisgICAgICBpZiBzZWxmLl9za2lhX2dvbGRfYXJncy5sb2NhbF9waXhlbF90ZXN0cyBpcyBOb25lOgorICAgICAgICBzZWxmLl9za2lhX2dvbGRfYXJncy5sb2NhbF9waXhlbF90ZXN0cyA9ICdTV0FSTUlOR19TRVJWRVInIFwKKyAgICAgICAgICAgIG5vdCBpbiBvcy5lbnZpcm9uCisKKyAgICAgIHNlbGYuX3NraWFfZ29sZF9wcm9wZXJ0aWVzID0gcGRmaXVtX3NraWFfZ29sZF9wcm9wZXJ0aWVzXAorICAgICAgICAgIC5QREZpdW1Ta2lhR29sZFByb3BlcnRpZXMoc2VsZi5fc2tpYV9nb2xkX2FyZ3MpCisgICAgcmV0dXJuIHNlbGYuX3NraWFfZ29sZF9wcm9wZXJ0aWVzCisKKyAgZGVmIEdldFNraWFHb2xkU2Vzc2lvbk1hbmFnZXIoc2VsZik6CisgICAgaWYgbm90IHNlbGYuX3NraWFfZ29sZF9zZXNzaW9uX21hbmFnZXI6CisgICAgICBzZWxmLl9za2lhX2dvbGRfc2Vzc2lvbl9tYW5hZ2VyID0gcGRmaXVtX3NraWFfZ29sZF9zZXNzaW9uX21hbmFnZXJcCisgICAgICAgICAgLlBERml1bVNraWFHb2xkU2Vzc2lvbk1hbmFnZXIoc2VsZi5fb3V0cHV0X2RpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkdldFNraWFHb2xkUHJvcGVydGllcygpKQorICAgIHJldHVybiBzZWxmLl9za2lhX2dvbGRfc2Vzc2lvbl9tYW5hZ2VyCisKKyAgZGVmIElzVHJ5am9iUnVuKHNlbGYpOgorICAgIHJldHVybiBzZWxmLkdldFNraWFHb2xkUHJvcGVydGllcygpLklzVHJ5am9iUnVuKCkKKworICBkZWYgR2V0Q0xUcmlhZ2VMaW5rKHNlbGYpOgorICAgIHJldHVybiAnaHR0cHM6Ly9wZGZpdW0tZ29sZC5za2lhLm9yZy9zZWFyY2g/aXNzdWU9e2lzc3VlfSZjcnM9Z2Vycml0JidcCisgICAgJ2NvcnB1cz17c291cmNlX3R5cGV9Jy5mb3JtYXQoCisgICAgICAgIGlzc3VlPXNlbGYuR2V0U2tpYUdvbGRQcm9wZXJ0aWVzKCkuaXNzdWUsIHNvdXJjZV90eXBlPXNlbGYuX3NvdXJjZV90eXBlKQorCisgIGRlZiBVcGxvYWRUZXN0UmVzdWx0VG9Ta2lhR29sZChzZWxmLCBpbWFnZV9uYW1lLCBpbWFnZV9wYXRoKToKKyAgICBnb2xkX3Byb3BlcnRpZXMgPSBzZWxmLkdldFNraWFHb2xkUHJvcGVydGllcygpCisgICAgdXNlX2x1Y2kgPSBub3QgKGdvbGRfcHJvcGVydGllcy5sb2NhbF9waXhlbF90ZXN0cyBvcgorICAgICAgICAgICAgICAgICAgICBnb2xkX3Byb3BlcnRpZXMubm9fbHVjaV9hdXRoKQorICAgIGdvbGRfc2Vzc2lvbiA9IHNlbGYuR2V0U2tpYUdvbGRTZXNzaW9uTWFuYWdlcigpXAorICAgICAgICAuR2V0U2tpYUdvbGRTZXNzaW9uKHNlbGYuX2tleXMsIGNvcnB1cz1zZWxmLl9zb3VyY2VfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWNrZXQ9R1NfQlVDS0VUKQorCisgICAgc3RhdHVzLCBlcnJvciA9IGdvbGRfc2Vzc2lvbi5SdW5Db21wYXJpc29uKAorICAgICAgICBuYW1lPWltYWdlX25hbWUsIHBuZ19maWxlPWltYWdlX3BhdGgsIHVzZV9sdWNpPXVzZV9sdWNpKQorCisgICAgc3RhdHVzX2NvZGVzID1cCisgICAgICAgIHNlbGYuR2V0U2tpYUdvbGRTZXNzaW9uTWFuYWdlcigpLkdldFNlc3Npb25DbGFzcygpLlN0YXR1c0NvZGVzCisgICAgaWYgc3RhdHVzID09IHN0YXR1c19jb2Rlcy5TVUNDRVNTOgorICAgICAgcmV0dXJuIFRydWUKKyAgICBpZiBzdGF0dXMgPT0gc3RhdHVzX2NvZGVzLkFVVEhfRkFJTFVSRToKKyAgICAgIGxvZ2dpbmcuZXJyb3IoJ0dvbGQgYXV0aGVudGljYXRpb24gZmFpbGVkIHdpdGggb3V0cHV0ICVzJywgZXJyb3IpCisgICAgZWxpZiBzdGF0dXMgPT0gc3RhdHVzX2NvZGVzLklOSVRfRkFJTFVSRToKKyAgICAgIGxvZ2dpbmcuZXJyb3IoJ0dvbGQgaW5pdGlhbGl6YXRpb24gZmFpbGVkIHdpdGggb3V0cHV0ICVzJywgZXJyb3IpCisgICAgZWxpZiBzdGF0dXMgPT0gc3RhdHVzX2NvZGVzLkNPTVBBUklTT05fRkFJTFVSRV9SRU1PVEU6CisgICAgICBsb2dnaW5nLmVycm9yKCdSZW1vdGUgY29tcGFyaXNvbiBmYWlsZWQuIFNlZSBvdXRwdXR0ZWQgdHJpYWdlIGxpbmtzLicpCisgICAgZWxpZiBzdGF0dXMgPT0gc3RhdHVzX2NvZGVzLkNPTVBBUklTT05fRkFJTFVSRV9MT0NBTDoKKyAgICAgIGxvZ2dpbmcuZXJyb3IoJ0xvY2FsIGNvbXBhcmlzb24gZmFpbGVkLiBMb2NhbCBkaWZmIGZpbGVzOicpCisgICAgICBfT3V0cHV0TG9jYWxEaWZmRmlsZXMoZ29sZF9zZXNzaW9uLCBpbWFnZV9uYW1lKQorICAgICAgcHJpbnQoKQorICAgIGVsaWYgc3RhdHVzID09IHN0YXR1c19jb2Rlcy5MT0NBTF9ESUZGX0ZBSUxVUkU6CisgICAgICBsb2dnaW5nLmVycm9yKAorICAgICAgICAgICdMb2NhbCBjb21wYXJpc29uIGZhaWxlZCBhbmQgYW4gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIGRpZmYgJworICAgICAgICAgICdnZW5lcmF0aW9uOiAlcycsIGVycm9yKQorICAgICAgIyBUaGVyZSBtaWdodCBiZSBzb21lIGZpbGVzLCBzbyB0cnkgb3V0cHV0dGluZyB0aGVtLgorICAgICAgbG9nZ2luZy5lcnJvcignTG9jYWwgZGlmZiBmaWxlczonKQorICAgICAgX091dHB1dExvY2FsRGlmZkZpbGVzKGdvbGRfc2Vzc2lvbiwgaW1hZ2VfbmFtZSkKKyAgICAgIHByaW50KCkKKyAgICBlbHNlOgorICAgICAgbG9nZ2luZy5lcnJvcigKKyAgICAgICAgICAnR2l2ZW4gdW5oYW5kbGVkIFNraWFHb2xkU2Vzc2lvbiBTdGF0dXNDb2RlICVzIHdpdGggZXJyb3IgJXMnLCBzdGF0dXMsCisgICAgICAgICAgZXJyb3IpCisKKyAgICByZXR1cm4gRmFsc2UKKworCitkZWYgX091dHB1dExvY2FsRGlmZkZpbGVzKGdvbGRfc2Vzc2lvbiwgaW1hZ2VfbmFtZSk6CisgICIiIkxvZ3MgdGhlIGxvY2FsIGRpZmYgaW1hZ2UgZmlsZXMgZnJvbSB0aGUgZ2l2ZW4gU2tpYUdvbGRTZXNzaW9uLgorCisgIEFyZ3M6CisgICAgZ29sZF9zZXNzaW9uOiBBIHNraWFfZ29sZF9zZXNzaW9uLlNraWFHb2xkU2Vzc2lvbiBpbnN0YW5jZSB0byBwdWxsIGZpbGVzCisgICAgICAgIGZyb20uCisgICAgaW1hZ2VfbmFtZTogQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgaW1hZ2UvdGVzdCB0aGF0IHdhcworICAgICAgICBjb21wYXJlZC4KKyAgIiIiCisgIGdpdmVuX2ZpbGUgPSBnb2xkX3Nlc3Npb24uR2V0R2l2ZW5JbWFnZUxpbmsoaW1hZ2VfbmFtZSkKKyAgY2xvc2VzdF9maWxlID0gZ29sZF9zZXNzaW9uLkdldENsb3Nlc3RJbWFnZUxpbmsoaW1hZ2VfbmFtZSkKKyAgZGlmZl9maWxlID0gZ29sZF9zZXNzaW9uLkdldERpZmZJbWFnZUxpbmsoaW1hZ2VfbmFtZSkKKyAgZmFpbHVyZV9tZXNzYWdlID0gJ1VuYWJsZSB0byByZXRyaWV2ZSBsaW5rJworICBsb2dnaW5nLmVycm9yKCdHZW5lcmF0ZWQgaW1hZ2UgZm9yICVzOiAlcycsIGltYWdlX25hbWUsIGdpdmVuX2ZpbGUgb3IKKyAgICAgICAgICAgICAgICBmYWlsdXJlX21lc3NhZ2UpCisgIGxvZ2dpbmcuZXJyb3IoJ0Nsb3Nlc3QgaW1hZ2UgZm9yICVzOiAlcycsIGltYWdlX25hbWUsIGNsb3Nlc3RfZmlsZSBvcgorICAgICAgICAgICAgICAgIGZhaWx1cmVfbWVzc2FnZSkKKyAgbG9nZ2luZy5lcnJvcignRGlmZiBpbWFnZSBmb3IgJXM6ICVzJywgaW1hZ2VfbmFtZSwgZGlmZl9maWxlIG9yCisgICAgICAgICAgICAgICAgZmFpbHVyZV9tZXNzYWdlKQpkaWZmIC0tZ2l0IGEvdGVzdGluZy90b29scy9zdHJpcF9qcDJfY29tbWVudHMucHkgYi90ZXN0aW5nL3Rvb2xzL3N0cmlwX2pwMl9jb21tZW50cy5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYjAzY2RjCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy90b29scy9zdHJpcF9qcDJfY29tbWVudHMucHkKQEAgLTAsMCArMSwxMjQgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKyMgQ29weXJpZ2h0IDIwMjMgVGhlIFBERml1bSBBdXRob3JzCisjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKyMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKyIiIlN0cmlwcyBjb21tZW50cyBmcm9tIGEgSlAyIGZpbGUuCisKK1RoaXMgaXMgYSBzaW1wbGUgZmlsdGVyIHNjcmlwdCB0byBzdHJpcCBjb21tZW50cyBmcm9tIGEgSlAyIGZpbGUsIGluIG9yZGVyIHRvCitzYXZlIGEgZmV3IGJ5dGVzIGZyb20gdGhlIGZpbmFsIGZpbGUgc2l6ZS4KKyIiIgorCitpbXBvcnQgc3RydWN0CitpbXBvcnQgc3lzCisKK0JPWF9IRUFERVJfU0laRSA9IDgKK0JPWF9UQUdfSlAyQyA9IGInanAyYycKKworTUFSS0VSX1NJWkUgPSAyCitNQVJLRVJfU1RBUlQgPSAweGZmCitNQVJLRVJfVEFHX0lHTk9SRSA9IDB4MDAKK01BUktFUl9UQUdfQ09NTUVOVCA9IDB4NjQKK01BUktFUl9UQUdfRklMTCA9IDB4ZmYKKworCitkZWYgcGFyc2VfYm94KGJ1ZmZlciwgb2Zmc2V0KToKKyAgIiIiUGFyc2VzIHRoZSBuZXh0IGJveCBpbiBhIEpQMiBmaWxlLgorCisgIEFyZ3M6CisgICAgYnVmZmVyOiBBIGJ1ZmZlciBjb250YWluaW5nIHRoZSBKUDIgZmlsZSBjb250ZW50cy4KKyAgICBvZmZzZXQ6IFRoZSBzdGFydGluZyBvZmZzZXQgaW50byB0aGUgYnVmZmVyLgorCisgIFJldHVybnM6CisgICAgQSB0dXBsZSAobmV4dF9vZmZzZXQsIHRhZykgd2hlcmUgbmV4dF9vZmZzZXQgaXMgdGhlIGVuZGluZyBvZmZzZXQsIGFuZCB0YWcKKyAgICBpcyB0aGUgdHlwZSB0YWcuIFRoZSBib3ggY29udGVudHMgd2lsbCBiZSBidWZmZXJbb2Zmc2V0ICsgODpuZXh0X29mZnNldF0uCisgICIiIgorICBsZW5ndGgsIHRhZyA9IHN0cnVjdC51bnBhY2tfZnJvbSgnPkk0cycsIGJ1ZmZlciwgb2Zmc2V0KQorICByZXR1cm4gb2Zmc2V0ICsgbGVuZ3RoLCB0YWcKKworCitkZWYgcGFyc2VfbWFya2VyKGJ1ZmZlciwgb2Zmc2V0KToKKyAgIiIiUGFyc2VzIHRoZSBuZXh0IG1hcmtlciBpbiBhIGNvZGVzdHJlYW0uCisKKyAgQXJnczoKKyAgICBidWZmZXI6IEEgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGNvZGVzdHJlYW0uCisgICAgb2Zmc2V0OiBUaGUgc3RhcnRpbmcgb2Zmc2V0IGludG8gdGhlIGJ1ZmZlci4KKworICBSZXR1cm5zOgorICAgIEEgdHVwbGUgKG5leHRfb2Zmc2V0LCB0YWcpIHdoZXJlIG5leHRfb2Zmc2V0IGlzIHRoZSBvZmZzZXQgYWZ0ZXIgdGhlIG1hcmtlciwKKyAgICBhbmQgdGFnIGlzIHRoZSB0eXBlIHRhZy4gSWYgbm8gbWFya2VyIHdhcyBmb3VuZCwgbmV4dF9vZmZzZXQgd2lsbCBwb2ludCB0bworICAgIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciwgYW5kIHRhZyB3aWxsIGJlIE5vbmUuIEEgbWFya2VyIGlzIGFsd2F5cyAyIGJ5dGVzLgorICAiIiIKKyAgd2hpbGUgVHJ1ZToKKyAgICAjIFNlYXJjaCBmb3Igc3RhcnQgb2YgbWFya2VyLgorICAgIG5leHRfb2Zmc2V0ID0gYnVmZmVyLmZpbmQoTUFSS0VSX1NUQVJULCBvZmZzZXQpCisgICAgaWYgbmV4dF9vZmZzZXQgPT0gLTE6CisgICAgICBuZXh0X29mZnNldCA9IGxlbihidWZmZXIpCisgICAgICBicmVhaworICAgIG5leHRfb2Zmc2V0ICs9IDEKKworICAgICMgUGFyc2UgbWFya2VyLgorICAgIGlmIG5leHRfb2Zmc2V0ID09IGxlbihidWZmZXIpOgorICAgICAgYnJlYWsKKyAgICB0YWcgPSBidWZmZXJbbmV4dF9vZmZzZXRdCisgICAgaWYgdGFnID09IE1BUktFUl9UQUdfRklMTDoKKyAgICAgICMgUG9zc2libGUgZmlsbCBieXRlLCByZXBhcnNlIGFzIHN0YXJ0IG9mIG1hcmtlci4KKyAgICAgIGNvbnRpbnVlCisgICAgbmV4dF9vZmZzZXQgKz0gMQorCisgICAgaWYgdGFnID09IE1BUktFUl9UQUdfSUdOT1JFOgorICAgICAgIyBOb3QgYSByZWFsIG1hcmtlci4KKyAgICAgIGNvbnRpbnVlCisgICAgcmV0dXJuIG5leHRfb2Zmc2V0LCB0YWcKKworICByZXR1cm4gbmV4dF9vZmZzZXQKKworCitkZWYgcmV3cml0ZV9qcDJjKGJ1ZmZlcik6CisgIHJld3JpdGVfYnVmZmVyID0gYnl0ZWFycmF5KEJPWF9IRUFERVJfU0laRSkKKworICBvZmZzZXQgPSAwCisgIHN0YXJ0X29mZnNldCA9IG9mZnNldAorICB3aGlsZSBvZmZzZXQgPCBsZW4oYnVmZmVyKToKKyAgICBuZXh0X29mZnNldCwgbWFya2VyID0gcGFyc2VfbWFya2VyKGJ1ZmZlciwgb2Zmc2V0KQorICAgIGlmIG1hcmtlciA9PSBNQVJLRVJfVEFHX0NPTU1FTlQ6CisgICAgICAjIEZsdXNoIHRoZSBjb2Rlc3RyZWFtIGJlZm9yZSB0aGUgY29tbWVudC4KKyAgICAgIHJld3JpdGVfYnVmZmVyLmV4dGVuZChidWZmZXJbc3RhcnRfb2Zmc2V0Om5leHRfb2Zmc2V0IC0gTUFSS0VSX1NJWkVdKQorCisgICAgICAjIEZpbmQgdGhlIG5leHQgbWFya2VyLCBza2lwcGluZyB0aGUgY29tbWVudC4KKyAgICAgIG5leHRfb2Zmc2V0LCBtYXJrZXIgPSBwYXJzZV9tYXJrZXIoYnVmZmVyLCBuZXh0X29mZnNldCkKKyAgICAgIGlmIG1hcmtlciBpcyBub3QgTm9uZToKKyAgICAgICAgIyBSZXBhcnNlIHRoZSBtYXJrZXIuCisgICAgICAgIG5leHRfb2Zmc2V0IC09IE1BUktFUl9TSVpFCisgICAgICBzdGFydF9vZmZzZXQgPSBuZXh0X29mZnNldAorICAgIGVsc2U6CisgICAgICAjIFBhc3MgdGhyb3VnaCBvdGhlciBtYXJrZXJzLgorICAgICAgcGFzcworICAgIG9mZnNldCA9IG5leHRfb2Zmc2V0CisKKyAgIyBGbHVzaCB0aGUgdGFpbCBvZiB0aGUgY29kZXN0cmVhbS4KKyAgcmV3cml0ZV9idWZmZXIuZXh0ZW5kKGJ1ZmZlcltzdGFydF9vZmZzZXQ6XSkKKworICBzdHJ1Y3QucGFja19pbnRvKCc+STRzJywgcmV3cml0ZV9idWZmZXIsIDAsIGxlbihyZXdyaXRlX2J1ZmZlciksIEJPWF9UQUdfSlAyQykKKyAgcmV0dXJuIHJld3JpdGVfYnVmZmVyCisKKworZGVmIG1haW4oaW5fZmlsZSwgb3V0X2ZpbGUpOgorICBidWZmZXIgPSBpbl9maWxlLnJlYWQoKQorCisgICMgU2NhbiB0aHJvdWdoIEpQMiBib3hlcy4KKyAgb2Zmc2V0ID0gMAorICB3aGlsZSBvZmZzZXQgPCBsZW4oYnVmZmVyKToKKyAgICBuZXh0X29mZnNldCwgdGFnID0gcGFyc2VfYm94KGJ1ZmZlciwgb2Zmc2V0KQorICAgIGlmIHRhZyA9PSBCT1hfVEFHX0pQMkM6CisgICAgICAjIFJld3JpdGUgImpwMmMiIChjb2Rlc3RyZWFtKSBib3guCisgICAgICBvdXRfZmlsZS53cml0ZShyZXdyaXRlX2pwMmMoYnVmZmVyW29mZnNldCArIEJPWF9IRUFERVJfU0laRTpuZXh0X29mZnNldF0pKQorICAgIGVsc2U6CisgICAgICAjIFBhc3MgdGhyb3VnaCBvdGhlciBib3hlcy4KKyAgICAgIG91dF9maWxlLndyaXRlKGJ1ZmZlcltvZmZzZXQ6bmV4dF9vZmZzZXRdKQorICAgIG9mZnNldCA9IG5leHRfb2Zmc2V0CisKKyAgb3V0X2ZpbGUuZmx1c2goKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgIG1haW4oc3lzLnN0ZGluLmJ1ZmZlciwgc3lzLnN0ZG91dC5idWZmZXIpCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rvb2xzL3N1cHByZXNzb3IucHkgYi90ZXN0aW5nL3Rvb2xzL3N1cHByZXNzb3IucHkKaW5kZXggNzBlZWY5OS4uOTg5ZjRkZCAxMDA3NTUKLS0tIGEvdGVzdGluZy90b29scy9zdXBwcmVzc29yLnB5CisrKyBiL3Rlc3RpbmcvdG9vbHMvc3VwcHJlc3Nvci5weQpAQCAtMSwzMSArMSwzNCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKyMgQ29weXJpZ2h0IDIwMTUgVGhlIFBERml1bSBBdXRob3JzCiAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogaW1wb3J0IG9zCiAKLSMgcHlsaW50OiBkaXNhYmxlPXJlbGF0aXZlLWltcG9ydAogaW1wb3J0IGNvbW1vbgoraW1wb3J0IHBuZ2RpZmZlcgogCiAKIGNsYXNzIFN1cHByZXNzb3I6CiAKLSAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbmRlciwgZmVhdHVyZV9zdHJpbmcsIGpzX2Rpc2FibGVkLCB4ZmFfZGlzYWJsZWQpOgotICAgIGZlYXR1cmVfdmVjdG9yID0gZmVhdHVyZV9zdHJpbmcuc3RyaXAoKS5zcGxpdCgiLCIpCi0gICAgc2VsZi5oYXNfdjggPSBub3QganNfZGlzYWJsZWQgYW5kICJWOCIgaW4gZmVhdHVyZV92ZWN0b3IKLSAgICBzZWxmLmhhc194ZmEgPSAobm90IGpzX2Rpc2FibGVkIGFuZCBub3QgeGZhX2Rpc2FibGVkIGFuZAotICAgICAgICAgICAgICAgICAgICAiWEZBIiBpbiBmZWF0dXJlX3ZlY3RvcikKKyAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbmRlciwgZmVhdHVyZXMsIGpzX2Rpc2FibGVkLCB4ZmFfZGlzYWJsZWQpOgorICAgIHNlbGYuaGFzX3Y4ID0gbm90IGpzX2Rpc2FibGVkIGFuZCAnVjgnIGluIGZlYXR1cmVzCisgICAgc2VsZi5oYXNfeGZhID0gbm90IGpzX2Rpc2FibGVkIGFuZCBub3QgeGZhX2Rpc2FibGVkIGFuZCAnWEZBJyBpbiBmZWF0dXJlcworICAgIHNlbGYuaGFzX3NraWEgPSAnU0tJQScgaW4gZmVhdHVyZXMKICAgICBzZWxmLnN1cHByZXNzaW9uX3NldCA9IHNlbGYuX0xvYWRTdXBwcmVzc2VkU2V0KCdTVVBQUkVTU0lPTlMnLCBmaW5kZXIpCiAgICAgc2VsZi5pbWFnZV9zdXBwcmVzc2lvbl9zZXQgPSBzZWxmLl9Mb2FkU3VwcHJlc3NlZFNldCgKICAgICAgICAgJ1NVUFBSRVNTSU9OU19JTUFHRV9ESUZGJywgZmluZGVyKQorICAgIHNlbGYuZXhhY3RfbWF0Y2hpbmdfc3VwcHJlc3Npb25fc2V0ID0gc2VsZi5fTG9hZFN1cHByZXNzZWRTZXQoCisgICAgICAgICdTVVBQUkVTU0lPTlNfRVhBQ1RfTUFUQ0hJTkcnLCBmaW5kZXIpCiAKICAgZGVmIF9Mb2FkU3VwcHJlc3NlZFNldChzZWxmLCBzdXBwcmVzc2lvbnNfZmlsZW5hbWUsIGZpbmRlcik6CiAgICAgdjhfb3B0aW9uID0gInY4IiBpZiBzZWxmLmhhc192OCBlbHNlICJub3Y4IgogICAgIHhmYV9vcHRpb24gPSAieGZhIiBpZiBzZWxmLmhhc194ZmEgZWxzZSAibm94ZmEiCisgICAgcmVuZGVyaW5nX29wdGlvbiA9ICJza2lhIiBpZiBzZWxmLmhhc19za2lhIGVsc2UgImFnZyIKICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGZpbmRlci5UZXN0aW5nRGlyKCksIHN1cHByZXNzaW9uc19maWxlbmFtZSkpIGFzIGY6CiAgICAgICByZXR1cm4gc2V0KAotICAgICAgICAgIHNlbGYuX0ZpbHRlclN1cHByZXNzaW9ucyhjb21tb24ub3NfbmFtZSgpLCB2OF9vcHRpb24sIHhmYV9vcHRpb24sCisgICAgICAgICAgc2VsZi5fRmlsdGVyU3VwcHJlc3Npb25zKGNvbW1vbi5vc19uYW1lKCksIHY4X29wdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGZhX29wdGlvbiwgcmVuZGVyaW5nX29wdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fRXh0cmFjdFN1cHByZXNzaW9ucyhmKSkpCiAKICAgZGVmIF9FeHRyYWN0U3VwcHJlc3Npb25zKHNlbGYsIGYpOgpAQCAtMzQsMzUgKzM3LDQ1IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gZi5yZWFkbGluZXMoKV0gaWYgeQogICAgIF0KIAotICBkZWYgX0ZpbHRlclN1cHByZXNzaW9ucyhzZWxmLCBvc19uYW1lLCBqcywgeGZhLCB1bmZpbHRlcmVkX2xpc3QpOgorICBkZWYgX0ZpbHRlclN1cHByZXNzaW9ucyhzZWxmLCBvc19uYW1lLCBqcywgeGZhLCByZW5kZXJpbmdfb3B0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1bmZpbHRlcmVkX2xpc3QpOgogICAgIHJldHVybiBbCiAgICAgICAgIHhbMF0KICAgICAgICAgZm9yIHggaW4gdW5maWx0ZXJlZF9saXN0Ci0gICAgICAgIGlmIHNlbGYuX01hdGNoU3VwcHJlc3Npb24oeCwgb3NfbmFtZSwganMsIHhmYSkKKyAgICAgICAgaWYgc2VsZi5fTWF0Y2hTdXBwcmVzc2lvbih4LCBvc19uYW1lLCBqcywgeGZhLCByZW5kZXJpbmdfb3B0aW9uKQogICAgIF0KIAotICBkZWYgX01hdGNoU3VwcHJlc3Npb24oc2VsZiwgaXRlbSwgb3NfbmFtZSwganMsIHhmYSk6CisgIGRlZiBfTWF0Y2hTdXBwcmVzc2lvbihzZWxmLCBpdGVtLCBvc19uYW1lLCBqcywgeGZhLCByZW5kZXJpbmdfb3B0aW9uKToKICAgICBvc19jb2x1bW4gPSBpdGVtWzFdLnNwbGl0KCIsIikKICAgICBqc19jb2x1bW4gPSBpdGVtWzJdLnNwbGl0KCIsIikKICAgICB4ZmFfY29sdW1uID0gaXRlbVszXS5zcGxpdCgiLCIpCisgICAgcmVuZGVyaW5nX29wdGlvbl9jb2x1bW4gPSBpdGVtWzRdLnNwbGl0KCIsIikKICAgICByZXR1cm4gKCgnKicgaW4gb3NfY29sdW1uIG9yIG9zX25hbWUgaW4gb3NfY29sdW1uKSBhbmQKICAgICAgICAgICAgICgnKicgaW4ganNfY29sdW1uIG9yIGpzIGluIGpzX2NvbHVtbikgYW5kCi0gICAgICAgICAgICAoJyonIGluIHhmYV9jb2x1bW4gb3IgeGZhIGluIHhmYV9jb2x1bW4pKQorICAgICAgICAgICAgKCcqJyBpbiB4ZmFfY29sdW1uIG9yIHhmYSBpbiB4ZmFfY29sdW1uKSBhbmQKKyAgICAgICAgICAgICgnKicgaW4gcmVuZGVyaW5nX29wdGlvbl9jb2x1bW4gb3IKKyAgICAgICAgICAgICByZW5kZXJpbmdfb3B0aW9uIGluIHJlbmRlcmluZ19vcHRpb25fY29sdW1uKSkKIAogICBkZWYgSXNSZXN1bHRTdXBwcmVzc2VkKHNlbGYsIGlucHV0X2ZpbGVuYW1lKToKICAgICBpZiBpbnB1dF9maWxlbmFtZSBpbiBzZWxmLnN1cHByZXNzaW9uX3NldDoKLSAgICAgIHByaW50ICIlcyByZXN1bHQgaXMgc3VwcHJlc3NlZCIgJSBpbnB1dF9maWxlbmFtZQorICAgICAgcHJpbnQoIiVzIHJlc3VsdCBpcyBzdXBwcmVzc2VkIiAlIGlucHV0X2ZpbGVuYW1lKQogICAgICAgcmV0dXJuIFRydWUKICAgICByZXR1cm4gRmFsc2UKIAogICBkZWYgSXNFeGVjdXRpb25TdXBwcmVzc2VkKHNlbGYsIGlucHV0X2ZpbGVwYXRoKToKICAgICBpZiAieGZhX3NwZWNpZmljIiBpbiBpbnB1dF9maWxlcGF0aCBhbmQgbm90IHNlbGYuaGFzX3hmYToKLSAgICAgIHByaW50ICIlcyBleGVjdXRpb24gaXMgc3VwcHJlc3NlZCIgJSBpbnB1dF9maWxlcGF0aAorICAgICAgcHJpbnQoIiVzIGV4ZWN1dGlvbiBpcyBzdXBwcmVzc2VkIiAlIGlucHV0X2ZpbGVwYXRoKQogICAgICAgcmV0dXJuIFRydWUKICAgICByZXR1cm4gRmFsc2UKIAogICBkZWYgSXNJbWFnZURpZmZTdXBwcmVzc2VkKHNlbGYsIGlucHV0X2ZpbGVuYW1lKToKICAgICBpZiBpbnB1dF9maWxlbmFtZSBpbiBzZWxmLmltYWdlX3N1cHByZXNzaW9uX3NldDoKLSAgICAgIHByaW50ICIlcyBpbWFnZSBkaWZmIGNvbXBhcmlzb24gaXMgc3VwcHJlc3NlZCIgJSBpbnB1dF9maWxlbmFtZQorICAgICAgcHJpbnQoIiVzIGltYWdlIGRpZmYgY29tcGFyaXNvbiBpcyBzdXBwcmVzc2VkIiAlIGlucHV0X2ZpbGVuYW1lKQogICAgICAgcmV0dXJuIFRydWUKICAgICByZXR1cm4gRmFsc2UKKworICBkZWYgR2V0SW1hZ2VNYXRjaGluZ0FsZ29yaXRobShzZWxmLCBpbnB1dF9maWxlbmFtZSk6CisgICAgaWYgaW5wdXRfZmlsZW5hbWUgaW4gc2VsZi5leGFjdF9tYXRjaGluZ19zdXBwcmVzc2lvbl9zZXQ6CisgICAgICBwcmludChmIntpbnB1dF9maWxlbmFtZX0gaW1hZ2UgZGlmZiBjb21wYXJpc29uIGlzIGZ1enp5IikKKyAgICAgIHJldHVybiBwbmdkaWZmZXIuRlVaWllfTUFUQ0hJTkcKKyAgICByZXR1cm4gcG5nZGlmZmVyLkVYQUNUX01BVENISU5HCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rvb2xzL3Rlc3RfcnVubmVyLnB5IGIvdGVzdGluZy90b29scy90ZXN0X3J1bm5lci5weQppbmRleCBkMzY0MGQ2Li5hZDM0OGFhIDEwMDY0NAotLS0gYS90ZXN0aW5nL3Rvb2xzL3Rlc3RfcnVubmVyLnB5CisrKyBiL3Rlc3RpbmcvdG9vbHMvdGVzdF9ydW5uZXIucHkKQEAgLTEsMjMgKzEsMzAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIyBDb3B5cmlnaHQgMjAxNiBUaGUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIS91c3IvYmluL2VudiBweXRob24zCisjIENvcHlyaWdodCAyMDE2IFRoZSBQREZpdW0gQXV0aG9ycwogIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAjIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKLWltcG9ydCBmdW5jdG9vbHMKK2ltcG9ydCBhcmdwYXJzZQorZnJvbSBkYXRhY2xhc3NlcyBpbXBvcnQgZGF0YWNsYXNzLCBmaWVsZAorZnJvbSBkYXRldGltZSBpbXBvcnQgdGltZWRlbHRhCitmcm9tIGlvIGltcG9ydCBCeXRlc0lPCiBpbXBvcnQgbXVsdGlwcm9jZXNzaW5nCi1pbXBvcnQgb3B0cGFyc2UKIGltcG9ydCBvcwogaW1wb3J0IHJlCiBpbXBvcnQgc2h1dGlsCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cworaW1wb3J0IHRpbWUKIAotIyBweWxpbnQ6IGRpc2FibGU9cmVsYXRpdmUtaW1wb3J0CiBpbXBvcnQgY29tbW9uCi1pbXBvcnQgZ29sZAoraW1wb3J0IHBkZml1bV9yb290CiBpbXBvcnQgcG5nZGlmZmVyCitmcm9tIHNraWFfZ29sZCBpbXBvcnQgc2tpYV9nb2xkCiBpbXBvcnQgc3VwcHJlc3NvcgogCitwZGZpdW1fcm9vdC5hZGRfc291cmNlX2RpcmVjdG9yeV90b19pbXBvcnRfcGF0aChvcy5wYXRoLmpvaW4oJ2J1aWxkJywgJ3V0aWwnKSkKK2Zyb20gbGliLnJlc3VsdHMgaW1wb3J0IHJlc3VsdF9zaW5rLCByZXN1bHRfdHlwZXMKKworCiAjIEFyYml0cmFyeSB0aW1lc3RhbXAsIGV4cHJlc3NlZCBpbiBzZWNvbmRzIHNpbmNlIHRoZSBlcG9jaCwgdXNlZCB0byBtYWtlIHN1cmUKICMgdGhhdCB0ZXN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgY3VycmVudCB0aW1lIGFyZSBzdGFibGUuIEhhcHBlbnMgdG8gYmUgdGhlCiAjIHRpbWVzdGFtcCBvZiB0aGUgZmlyc3QgY29tbWl0IHRvIHJlcG8sIDIwMTQvNS85IDE3OjQ4OjUwLgpAQCAtMjYsMzMgKzMzLDEwIEBACiAjIExpc3Qgb2YgdGVzdCB0eXBlcyB0aGF0IHNob3VsZCBydW4gdGV4dCB0ZXN0cyBpbnN0ZWFkIG9mIHBpeGVsIHRlc3RzLgogVEVYVF9URVNUUyA9IFsnamF2YXNjcmlwdCddCiAKLQotY2xhc3MgS2V5Ym9hcmRJbnRlcnJ1cHRFcnJvcihFeGNlcHRpb24pOgotICBwYXNzCi0KLQotIyBOb21lbmNsYXR1cmU6Ci0jICAgeF9yb290IC0gIngiCi0jICAgeF9maWxlbmFtZSAtICJ4LmV4dCIKLSMgICB4X3BhdGggLSAicGF0aC90by9hL2IvYy94LmV4dCIKLSMgICBjX2RpciAtICJwYXRoL3RvL2EvYi9jIgotCi0KLWRlZiBUZXN0T25lRmlsZVBhcmFsbGVsKHRoaXMsIHRlc3RfY2FzZSk6Ci0gICIiIldyYXBwZXIgdG8gY2FsbCBHZW5lcmF0ZUFuZFRlc3QoKSBhbmQgcmVkaXJlY3Qgb3V0cHV0IHRvIHN0ZG91dC4iIiIKLSAgdHJ5OgotICAgIGlucHV0X2ZpbGVuYW1lLCBzb3VyY2VfZGlyID0gdGVzdF9jYXNlCi0gICAgcmVzdWx0ID0gdGhpcy5HZW5lcmF0ZUFuZFRlc3QoaW5wdXRfZmlsZW5hbWUsIHNvdXJjZV9kaXIpCi0gICAgcmV0dXJuIChyZXN1bHQsIGlucHV0X2ZpbGVuYW1lLCBzb3VyY2VfZGlyKQotICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgcmFpc2UgS2V5Ym9hcmRJbnRlcnJ1cHRFcnJvcigpCi0KLQotZGVmIERlbGV0ZUZpbGVzKGZpbGVzKToKLSAgIiIiVXRpbGl0eSBmdW5jdGlvbiB0byBkZWxldGUgYSBsaXN0IG9mIGZpbGVzIiIiCi0gIGZvciBmIGluIGZpbGVzOgotICAgIGlmIG9zLnBhdGguZXhpc3RzKGYpOgotICAgICAgb3MucmVtb3ZlKGYpCisjIFRpbWVvdXQgKGluIHNlY29uZHMpIGZvciBpbmRpdmlkdWFsIHRlc3QgY29tbWFuZHMuCisjIFRPRE8oY3JidWcuY29tL3BkZml1bS8xOTY3KTogYXJyYXlfYnVmZmVyLmluIGlzIHNsb3cgdW5kZXIgTVNhbiwgc28gbmVlZCBhCisjIHZlcnkgZ2VuZXJvdXMgNSBtaW51dGUgdGltZW91dCBmb3Igbm93LgorVEVTVF9USU1FT1VUID0gdGltZWRlbHRhKG1pbnV0ZXM9NSkudG90YWxfc2Vjb25kcygpCiAKIAogY2xhc3MgVGVzdFJ1bm5lcjoKQEAgLTYyLDM5MSArNDYsMzAzIEBACiAgICAgIyB3aGljaCBhbGwgY29ycmVzcG9uZCBkaXJlY3RseSB0byB0aGUgdHlwZSBmb3IgdGhlIHRlc3QgYmVpbmcgcnVuLiBJbiB0aGUKICAgICAjIGZ1dHVyZSBpZiB0aGVyZSBhcmUgdGVzdHMgdGhhdCBkb24ndCBoYXZlIHRoaXMgY2xlYW4gY29ycmVzcG9uZGVuY2UsIHRoZW4KICAgICAjIGFuIGFyZ3VtZW50IGZvciB0aGUgdHlwZSB3aWxsIG5lZWQgdG8gYmUgYWRkZWQuCi0gICAgc2VsZi50ZXN0X2RpciA9IGRpcm5hbWUKLSAgICBzZWxmLnRlc3RfdHlwZSA9IGRpcm5hbWUKLSAgICBzZWxmLmRlbGV0ZV9vdXRwdXRfb25fc3VjY2VzcyA9IEZhbHNlCi0gICAgc2VsZi5lbmZvcmNlX2V4cGVjdGVkX2ltYWdlcyA9IEZhbHNlCi0gICAgc2VsZi5vbmVzaG90X3JlbmRlcmVyID0gRmFsc2UKKyAgICBzZWxmLnBlcl9wcm9jZXNzX2NvbmZpZyA9IF9QZXJQcm9jZXNzQ29uZmlnKAorICAgICAgICB0ZXN0X2Rpcj1kaXJuYW1lLCB0ZXN0X3R5cGU9ZGlybmFtZSkKIAotICAjIEdlbmVyYXRlQW5kVGVzdCByZXR1cm5zIGEgdHVwbGUgPHN1Y2Nlc3MsIG91dHB1dGZpbGVzPiB3aGVyZQotICAjIHN1Y2Nlc3MgaXMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgdGVzdHMgcGFzc2VkIGNvbXBhcmlzb24KLSAgIyB0ZXN0cyBhbmQgb3V0cHV0ZmlsZXMgaXMgYSBsaXN0IHR1cGxlczoKLSAgIyAgICAgICAgICAocGF0aF90b19pbWFnZSwgbWQ1X2hhc2hfb2ZfcGl4ZWxidWZmZXIpCi0gIGRlZiBHZW5lcmF0ZUFuZFRlc3Qoc2VsZiwgaW5wdXRfZmlsZW5hbWUsIHNvdXJjZV9kaXIpOgotICAgIGlucHV0X3Jvb3QsIF8gPSBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0X2ZpbGVuYW1lKQotICAgIHBkZl9wYXRoID0gb3MucGF0aC5qb2luKHNlbGYud29ya2luZ19kaXIsIGlucHV0X3Jvb3QgKyAnLnBkZicpCisgIEBwcm9wZXJ0eQorICBkZWYgb3B0aW9ucyhzZWxmKToKKyAgICByZXR1cm4gc2VsZi5wZXJfcHJvY2Vzc19jb25maWcub3B0aW9ucwogCi0gICAgIyBSZW1vdmUgYW55IGV4aXN0aW5nIGdlbmVyYXRlZCBpbWFnZXMgZnJvbSBwcmV2aW91cyBydW5zLgotICAgIGFjdHVhbF9pbWFnZXMgPSBzZWxmLmltYWdlX2RpZmZlci5HZXRBY3R1YWxGaWxlcyhpbnB1dF9maWxlbmFtZSwgc291cmNlX2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi53b3JraW5nX2RpcikKLSAgICBEZWxldGVGaWxlcyhhY3R1YWxfaW1hZ2VzKQorICBkZWYgSXNTa2lhR29sZEVuYWJsZWQoc2VsZik6CisgICAgcmV0dXJuIChzZWxmLm9wdGlvbnMucnVuX3NraWFfZ29sZCBhbmQKKyAgICAgICAgICAgIG5vdCBzZWxmLnBlcl9wcm9jZXNzX2NvbmZpZy50ZXN0X3R5cGUgaW4gVEVYVF9URVNUUykKIAotICAgIHN5cy5zdGRvdXQuZmx1c2goKQorICBkZWYgSXNFeGVjdXRpb25TdXBwcmVzc2VkKHNlbGYsIGlucHV0X3BhdGgpOgorICAgIHJldHVybiBzZWxmLnBlcl9wcm9jZXNzX3N0YXRlLnRlc3Rfc3VwcHJlc3Nvci5Jc0V4ZWN1dGlvblN1cHByZXNzZWQoCisgICAgICAgIGlucHV0X3BhdGgpCiAKLSAgICByYWlzZWRfZXhjZXB0aW9uID0gc2VsZi5HZW5lcmF0ZShzb3VyY2VfZGlyLCBpbnB1dF9maWxlbmFtZSwgaW5wdXRfcm9vdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZGZfcGF0aCkKKyAgZGVmIElzUmVzdWx0U3VwcHJlc3NlZChzZWxmLCBpbnB1dF9maWxlbmFtZSk6CisgICAgcmV0dXJuIHNlbGYucGVyX3Byb2Nlc3Nfc3RhdGUudGVzdF9zdXBwcmVzc29yLklzUmVzdWx0U3VwcHJlc3NlZCgKKyAgICAgICAgaW5wdXRfZmlsZW5hbWUpCiAKLSAgICBpZiByYWlzZWRfZXhjZXB0aW9uIGlzIG5vdCBOb25lOgotICAgICAgcHJpbnQgJ0ZBSUxVUkU6ICVzOyAlcycgJSAoaW5wdXRfZmlsZW5hbWUsIHJhaXNlZF9leGNlcHRpb24pCi0gICAgICByZXR1cm4gRmFsc2UsIFtdCisgIGRlZiBIYW5kbGVSZXN1bHQoc2VsZiwgdGVzdF9jYXNlLCB0ZXN0X3Jlc3VsdCk6CisgICAgaW5wdXRfZmlsZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHRlc3RfY2FzZS5pbnB1dF9wYXRoKQogCi0gICAgcmVzdWx0cyA9IFtdCi0gICAgaWYgc2VsZi50ZXN0X3R5cGUgaW4gVEVYVF9URVNUUzoKLSAgICAgIGV4cGVjdGVkX3R4dF9wYXRoID0gb3MucGF0aC5qb2luKHNvdXJjZV9kaXIsIGlucHV0X3Jvb3QgKyAnX2V4cGVjdGVkLnR4dCcpCi0gICAgICByYWlzZWRfZXhjZXB0aW9uID0gc2VsZi5UZXN0VGV4dChpbnB1dF9maWxlbmFtZSwgaW5wdXRfcm9vdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3R4dF9wYXRoLCBwZGZfcGF0aCkKLSAgICBlbHNlOgotICAgICAgdXNlX2FoZW0gPSAndXNlX2FoZW0nIGluIHNvdXJjZV9kaXIKLSAgICAgIHJhaXNlZF9leGNlcHRpb24sIHJlc3VsdHMgPSBzZWxmLlRlc3RQaXhlbChwZGZfcGF0aCwgdXNlX2FoZW0pCi0KLSAgICBpZiByYWlzZWRfZXhjZXB0aW9uIGlzIG5vdCBOb25lOgotICAgICAgcHJpbnQgJ0ZBSUxVUkU6ICVzOyAlcycgJSAoaW5wdXRfZmlsZW5hbWUsIHJhaXNlZF9leGNlcHRpb24pCi0gICAgICByZXR1cm4gRmFsc2UsIHJlc3VsdHMKLQotICAgIGlmIGFjdHVhbF9pbWFnZXM6Ci0gICAgICBpZiBzZWxmLmltYWdlX2RpZmZlci5IYXNEaWZmZXJlbmNlcyhpbnB1dF9maWxlbmFtZSwgc291cmNlX2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYud29ya2luZ19kaXIpOgotICAgICAgICBzZWxmLlJlZ2VuZXJhdGVJZk5lZWRlZF8oaW5wdXRfZmlsZW5hbWUsIHNvdXJjZV9kaXIpCi0gICAgICAgIHJldHVybiBGYWxzZSwgcmVzdWx0cwotICAgIGVsc2U6Ci0gICAgICBpZiAoc2VsZi5lbmZvcmNlX2V4cGVjdGVkX2ltYWdlcyBhbmQKLSAgICAgICAgICBub3Qgc2VsZi50ZXN0X3N1cHByZXNzb3IuSXNJbWFnZURpZmZTdXBwcmVzc2VkKGlucHV0X2ZpbGVuYW1lKSk6Ci0gICAgICAgIHNlbGYuUmVnZW5lcmF0ZUlmTmVlZGVkXyhpbnB1dF9maWxlbmFtZSwgc291cmNlX2RpcikKLSAgICAgICAgcHJpbnQgJ0ZBSUxVUkU6ICVzOyBNaXNzaW5nIGV4cGVjdGVkIGltYWdlcycgJSBpbnB1dF9maWxlbmFtZQotICAgICAgICByZXR1cm4gRmFsc2UsIHJlc3VsdHMKLQotICAgIGlmIHNlbGYuZGVsZXRlX291dHB1dF9vbl9zdWNjZXNzOgotICAgICAgRGVsZXRlRmlsZXMoYWN0dWFsX2ltYWdlcykKLSAgICByZXR1cm4gVHJ1ZSwgcmVzdWx0cwotCi0gIGRlZiBSZWdlbmVyYXRlSWZOZWVkZWRfKHNlbGYsIGlucHV0X2ZpbGVuYW1lLCBzb3VyY2VfZGlyKToKLSAgICBpZiAobm90IHNlbGYub3B0aW9ucy5yZWdlbmVyYXRlX2V4cGVjdGVkIG9yCi0gICAgICAgIHNlbGYudGVzdF9zdXBwcmVzc29yLklzUmVzdWx0U3VwcHJlc3NlZChpbnB1dF9maWxlbmFtZSkgb3IKLSAgICAgICAgc2VsZi50ZXN0X3N1cHByZXNzb3IuSXNJbWFnZURpZmZTdXBwcmVzc2VkKGlucHV0X2ZpbGVuYW1lKSk6Ci0gICAgICByZXR1cm4KLQotICAgIHBsYXRmb3JtX29ubHkgPSAoc2VsZi5vcHRpb25zLnJlZ2VuZXJhdGVfZXhwZWN0ZWQgPT0gJ3BsYXRmb3JtJykKLSAgICBzZWxmLmltYWdlX2RpZmZlci5SZWdlbmVyYXRlKGlucHV0X2ZpbGVuYW1lLCBzb3VyY2VfZGlyLCBzZWxmLndvcmtpbmdfZGlyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1fb25seSkKLQotICBkZWYgR2VuZXJhdGUoc2VsZiwgc291cmNlX2RpciwgaW5wdXRfZmlsZW5hbWUsIGlucHV0X3Jvb3QsIHBkZl9wYXRoKToKLSAgICBvcmlnaW5hbF9wYXRoID0gb3MucGF0aC5qb2luKHNvdXJjZV9kaXIsIGlucHV0X2ZpbGVuYW1lKQotICAgIGlucHV0X3BhdGggPSBvcy5wYXRoLmpvaW4oc291cmNlX2RpciwgaW5wdXRfcm9vdCArICcuaW4nKQotCi0gICAgaW5wdXRfZXZlbnRfcGF0aCA9IG9zLnBhdGguam9pbihzb3VyY2VfZGlyLCBpbnB1dF9yb290ICsgJy5ldnQnKQotICAgIGlmIG9zLnBhdGguZXhpc3RzKGlucHV0X2V2ZW50X3BhdGgpOgotICAgICAgb3V0cHV0X2V2ZW50X3BhdGggPSBvcy5wYXRoLnNwbGl0ZXh0KHBkZl9wYXRoKVswXSArICcuZXZ0JwotICAgICAgc2h1dGlsLmNvcHlmaWxlKGlucHV0X2V2ZW50X3BhdGgsIG91dHB1dF9ldmVudF9wYXRoKQotCi0gICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGlucHV0X3BhdGgpOgotICAgICAgaWYgb3MucGF0aC5leGlzdHMob3JpZ2luYWxfcGF0aCk6Ci0gICAgICAgIHNodXRpbC5jb3B5ZmlsZShvcmlnaW5hbF9wYXRoLCBwZGZfcGF0aCkKLSAgICAgIHJldHVybiBOb25lCi0KLSAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKLQotICAgIHJldHVybiBjb21tb24uUnVuQ29tbWFuZChbCi0gICAgICAgIHN5cy5leGVjdXRhYmxlLCBzZWxmLmZpeHVwX3BhdGgsICctLW91dHB1dC1kaXI9JyArIHNlbGYud29ya2luZ19kaXIsCi0gICAgICAgIGlucHV0X3BhdGgKLSAgICBdKQotCi0gIGRlZiBUZXN0VGV4dChzZWxmLCBpbnB1dF9maWxlbmFtZSwgaW5wdXRfcm9vdCwgZXhwZWN0ZWRfdHh0X3BhdGgsIHBkZl9wYXRoKToKLSAgICB0eHRfcGF0aCA9IG9zLnBhdGguam9pbihzZWxmLndvcmtpbmdfZGlyLCBpbnB1dF9yb290ICsgJy50eHQnKQotCi0gICAgd2l0aCBvcGVuKHR4dF9wYXRoLCAndycpIGFzIG91dGZpbGU6Ci0gICAgICBjbWRfdG9fcnVuID0gWwotICAgICAgICAgIHNlbGYucGRmaXVtX3Rlc3RfcGF0aCwgJy0tc2VuZC1ldmVudHMnLCAnLS10aW1lPScgKyBURVNUX1NFRURfVElNRQotICAgICAgXQotCi0gICAgICBpZiBzZWxmLm9wdGlvbnMuZGlzYWJsZV9qYXZhc2NyaXB0OgotICAgICAgICBjbWRfdG9fcnVuLmFwcGVuZCgnLS1kaXNhYmxlLWphdmFzY3JpcHQnKQotCi0gICAgICBpZiBzZWxmLm9wdGlvbnMuZGlzYWJsZV94ZmE6Ci0gICAgICAgIGNtZF90b19ydW4uYXBwZW5kKCctLWRpc2FibGUteGZhJykKLQotICAgICAgY21kX3RvX3J1bi5hcHBlbmQocGRmX3BhdGgpCi0gICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoY21kX3RvX3J1biwgc3Rkb3V0PW91dGZpbGUpCi0KLSAgICAjIElmIHRoZSBleHBlY3RlZCBmaWxlIGRvZXMgbm90IGV4aXN0LCB0aGUgb3V0cHV0IGlzIGV4cGVjdGVkIHRvIGJlIGVtcHR5LgotICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhleHBlY3RlZF90eHRfcGF0aCk6Ci0gICAgICByZXR1cm4gc2VsZi5fVmVyaWZ5RW1wdHlUZXh0KHR4dF9wYXRoKQotCi0gICAgIyBJZiBKYXZhU2NyaXB0IGlzIGRpc2FibGVkLCB0aGUgb3V0cHV0IHNob3VsZCBiZSBlbXB0eS4KLSAgICAjIEhvd2V2ZXIsIGlmIHRoZSB0ZXN0IGlzIHN1cHByZXNzZWQgYW5kIEphdmFTY3JpcHQgaXMgZGlzYWJsZWQsIGRvIG5vdAotICAgICMgdmVyaWZ5IHRoYXQgdGhlIHRleHQgaXMgZW1wdHkgc28gdGhlIHN1cHByZXNzZWQgdGVzdCBkb2VzIG5vdCBzdXJwcmlzZS4KLSAgICBpZiAoc2VsZi5vcHRpb25zLmRpc2FibGVfamF2YXNjcmlwdCBhbmQKLSAgICAgICAgbm90IHNlbGYudGVzdF9zdXBwcmVzc29yLklzUmVzdWx0U3VwcHJlc3NlZChpbnB1dF9maWxlbmFtZSkpOgotICAgICAgcmV0dXJuIHNlbGYuX1ZlcmlmeUVtcHR5VGV4dCh0eHRfcGF0aCkKLQotICAgIGNtZCA9IFtzeXMuZXhlY3V0YWJsZSwgc2VsZi50ZXh0X2RpZmZfcGF0aCwgZXhwZWN0ZWRfdHh0X3BhdGgsIHR4dF9wYXRoXQotICAgIHJldHVybiBjb21tb24uUnVuQ29tbWFuZChjbWQpCi0KLSAgZGVmIF9WZXJpZnlFbXB0eVRleHQoc2VsZiwgdHh0X3BhdGgpOgotICAgIHRyeToKLSAgICAgIHdpdGggb3Blbih0eHRfcGF0aCwgInIiKSBhcyB0eHRfZmlsZToKLSAgICAgICAgdHh0X2RhdGEgPSB0eHRfZmlsZS5yZWFkbGluZXMoKQotICAgICAgaWYgbm90IGxlbih0eHRfZGF0YSk6Ci0gICAgICAgIHJldHVybiBOb25lCi0gICAgICBzeXMuc3Rkb3V0LndyaXRlKCdVbmV4cGVjdGVkIG91dHB1dDpcbicpCi0gICAgICBmb3IgbGluZSBpbiB0eHRfZGF0YToKLSAgICAgICAgc3lzLnN0ZG91dC53cml0ZShsaW5lKQotICAgICAgcmFpc2UgRXhjZXB0aW9uKCclcyBzaG91bGQgYmUgZW1wdHkuJyAlIHR4dF9wYXRoKQotICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgIHJldHVybiBlCi0KLSAgZGVmIFRlc3RQaXhlbChzZWxmLCBwZGZfcGF0aCwgdXNlX2FoZW0pOgotICAgIGNtZF90b19ydW4gPSBbCi0gICAgICAgIHNlbGYucGRmaXVtX3Rlc3RfcGF0aCwgJy0tc2VuZC1ldmVudHMnLCAnLS1wbmcnLCAnLS1tZDUnLAotICAgICAgICAnLS10aW1lPScgKyBURVNUX1NFRURfVElNRQotICAgIF0KLQotICAgIGlmIHNlbGYub25lc2hvdF9yZW5kZXJlcjoKLSAgICAgIGNtZF90b19ydW4uYXBwZW5kKCctLXJlbmRlci1vbmVzaG90JykKLQotICAgIGlmIHVzZV9haGVtOgotICAgICAgY21kX3RvX3J1bi5hcHBlbmQoJy0tZm9udC1kaXI9JXMnICUgc2VsZi5mb250X2RpcikKLQotICAgIGlmIHNlbGYub3B0aW9ucy5kaXNhYmxlX2phdmFzY3JpcHQ6Ci0gICAgICBjbWRfdG9fcnVuLmFwcGVuZCgnLS1kaXNhYmxlLWphdmFzY3JpcHQnKQotCi0gICAgaWYgc2VsZi5vcHRpb25zLmRpc2FibGVfeGZhOgotICAgICAgY21kX3RvX3J1bi5hcHBlbmQoJy0tZGlzYWJsZS14ZmEnKQotCi0gICAgaWYgc2VsZi5vcHRpb25zLnJldmVyc2VfYnl0ZV9vcmRlcjoKLSAgICAgIGNtZF90b19ydW4uYXBwZW5kKCctLXJldmVyc2UtYnl0ZS1vcmRlcicpCi0KLSAgICBjbWRfdG9fcnVuLmFwcGVuZChwZGZfcGF0aCkKLSAgICByZXR1cm4gY29tbW9uLlJ1bkNvbW1hbmRFeHRyYWN0SGFzaGVkRmlsZXMoY21kX3RvX3J1bikKLQotICBkZWYgSGFuZGxlUmVzdWx0KHNlbGYsIGlucHV0X2ZpbGVuYW1lLCBpbnB1dF9wYXRoLCByZXN1bHQpOgotICAgIHN1Y2Nlc3MsIGltYWdlX3BhdGhzID0gcmVzdWx0Ci0KLSAgICBpZiBpbWFnZV9wYXRoczoKLSAgICAgIGZvciBpbWdfcGF0aCwgbWQ1X2hhc2ggaW4gaW1hZ2VfcGF0aHM6Ci0gICAgICAgICMgVGhlIG91dHB1dCBmaWxlbmFtZSB3aXRob3V0IGltYWdlIGV4dGVuc2lvbiBiZWNvbWVzIHRoZSB0ZXN0IG5hbWUuCi0gICAgICAgICMgRm9yIGV4YW1wbGUsICIvcGF0aC90by8uLi4vdGVzdGluZy9jb3JwdXMvZXhhbXBsZV8wMDUucGRmLjAucG5nIgotICAgICAgICAjIGJlY29tZXMgImV4YW1wbGVfMDA1LnBkZi4wIi4KLSAgICAgICAgdGVzdF9uYW1lID0gb3MucGF0aC5zcGxpdGV4dChvcy5wYXRoLnNwbGl0KGltZ19wYXRoKVsxXSlbMF0KLQotICAgICAgICBtYXRjaGVkID0gInN1cHByZXNzZWQiCi0gICAgICAgIGlmIG5vdCBzZWxmLnRlc3Rfc3VwcHJlc3Nvci5Jc1Jlc3VsdFN1cHByZXNzZWQoaW5wdXRfZmlsZW5hbWUpOgotICAgICAgICAgIG1hdGNoZWQgPSBzZWxmLmdvbGRfYmFzZWxpbmUuTWF0Y2hMb2NhbFJlc3VsdCh0ZXN0X25hbWUsIG1kNV9oYXNoKQotICAgICAgICAgIGlmIG1hdGNoZWQgPT0gZ29sZC5Hb2xkQmFzZWxpbmUuTUlTTUFUQ0g6Ci0gICAgICAgICAgICBwcmludCAnU2tpYSBHb2xkIGhhc2ggbWlzbWF0Y2ggZm9yIHRlc3QgY2FzZTogJXMnICUgdGVzdF9uYW1lCi0gICAgICAgICAgZWxpZiBtYXRjaGVkID09IGdvbGQuR29sZEJhc2VsaW5lLk5PX0JBU0VMSU5FOgotICAgICAgICAgICAgcHJpbnQgJ05vIFNraWEgR29sZCBiYXNlbGluZSBmb3VuZCBmb3IgdGVzdCBjYXNlOiAlcycgJSB0ZXN0X25hbWUKLQotICAgICAgICBpZiBzZWxmLmdvbGRfcmVzdWx0czoKLSAgICAgICAgICBzZWxmLmdvbGRfcmVzdWx0cy5BZGRUZXN0UmVzdWx0KHRlc3RfbmFtZSwgbWQ1X2hhc2gsIGltZ19wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZCkKLQotICAgIGlmIHNlbGYudGVzdF9zdXBwcmVzc29yLklzUmVzdWx0U3VwcHJlc3NlZChpbnB1dF9maWxlbmFtZSk6CisgICAgdGVzdF9yZXN1bHQuc3RhdHVzID0gc2VsZi5fU3VwcHJlc3NTdGF0dXMoaW5wdXRfZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9yZXN1bHQuc3RhdHVzKQorICAgIGlmIHRlc3RfcmVzdWx0LnN0YXR1cyA9PSByZXN1bHRfdHlwZXMuVU5LTk9XTjoKICAgICAgIHNlbGYucmVzdWx0X3N1cHByZXNzZWRfY2FzZXMuYXBwZW5kKGlucHV0X2ZpbGVuYW1lKQotICAgICAgaWYgc3VjY2VzczoKLSAgICAgICAgc2VsZi5zdXJwcmlzZXMuYXBwZW5kKGlucHV0X3BhdGgpCi0gICAgZWxzZToKLSAgICAgIGlmIG5vdCBzdWNjZXNzOgotICAgICAgICBzZWxmLmZhaWx1cmVzLmFwcGVuZChpbnB1dF9wYXRoKQorICAgICAgc2VsZi5zdXJwcmlzZXMuYXBwZW5kKHRlc3RfY2FzZS5pbnB1dF9wYXRoKQorICAgIGVsaWYgdGVzdF9yZXN1bHQuc3RhdHVzID09IHJlc3VsdF90eXBlcy5TS0lQOgorICAgICAgc2VsZi5yZXN1bHRfc3VwcHJlc3NlZF9jYXNlcy5hcHBlbmQoaW5wdXRfZmlsZW5hbWUpCisgICAgZWxpZiBub3QgdGVzdF9yZXN1bHQuSXNQYXNzKCk6CisgICAgICBzZWxmLmZhaWx1cmVzLmFwcGVuZCh0ZXN0X2Nhc2UuaW5wdXRfcGF0aCkKKworICAgIGZvciBhcnRpZmFjdCBpbiB0ZXN0X3Jlc3VsdC5pbWFnZV9hcnRpZmFjdHM6CisgICAgICBpZiBhcnRpZmFjdC5za2lhX2dvbGRfc3RhdHVzID09IHJlc3VsdF90eXBlcy5QQVNTOgorICAgICAgICBpZiBzZWxmLklzUmVzdWx0U3VwcHJlc3NlZChhcnRpZmFjdC5pbWFnZV9wYXRoKToKKyAgICAgICAgICBzZWxmLnNraWFfZ29sZF91bmV4cGVjdGVkX3N1Y2Nlc3Nlcy5hcHBlbmQoYXJ0aWZhY3QuR2V0U2tpYUdvbGRJZCgpKQorICAgICAgICBlbHNlOgorICAgICAgICAgIHNlbGYuc2tpYV9nb2xkX3N1Y2Nlc3Nlcy5hcHBlbmQoYXJ0aWZhY3QuR2V0U2tpYUdvbGRJZCgpKQorICAgICAgZWxpZiBhcnRpZmFjdC5za2lhX2dvbGRfc3RhdHVzID09IHJlc3VsdF90eXBlcy5GQUlMOgorICAgICAgICBzZWxmLnNraWFfZ29sZF9mYWlsdXJlcy5hcHBlbmQoYXJ0aWZhY3QuR2V0U2tpYUdvbGRJZCgpKQorCisgICAgIyBMb2cgdGVzdCByZXN1bHQuCisgICAgcHJpbnQoZid7dGVzdF9yZXN1bHQuc3RhdHVzfToge3Rlc3RfcmVzdWx0LnRlc3RfaWR9JykKKyAgICBpZiBub3QgdGVzdF9yZXN1bHQuSXNQYXNzKCk6CisgICAgICBpZiB0ZXN0X3Jlc3VsdC5yZWFzb246CisgICAgICAgIHByaW50KGYnRmFpbHVyZSByZWFzb246IHt0ZXN0X3Jlc3VsdC5yZWFzb259JykKKyAgICAgIGlmIHRlc3RfcmVzdWx0LmxvZzoKKyAgICAgICAgZGVjb2RlZF9sb2cgPSBieXRlcy5kZWNvZGUodGVzdF9yZXN1bHQubG9nLCBlcnJvcnM9J2JhY2tzbGFzaHJlcGxhY2UnKQorICAgICAgICBwcmludChmJ1Rlc3Qgb3V0cHV0Olxue2RlY29kZWRfbG9nfScpCisgICAgICBmb3IgYXJ0aWZhY3QgaW4gdGVzdF9yZXN1bHQuaW1hZ2VfYXJ0aWZhY3RzOgorICAgICAgICBpZiBhcnRpZmFjdC5za2lhX2dvbGRfc3RhdHVzID09IHJlc3VsdF90eXBlcy5GQUlMOgorICAgICAgICAgIHByaW50KGYnRmFpbGVkIFNraWEgR29sZDoge2FydGlmYWN0LmltYWdlX3BhdGh9JykKKyAgICAgICAgaWYgYXJ0aWZhY3QuaW1hZ2VfZGlmZjoKKyAgICAgICAgICBwcmludChmJ0ZhaWxlZCBpbWFnZSBkaWZmOiB7YXJ0aWZhY3QuaW1hZ2VfZGlmZi5yZWFzb259JykKKworICAgICMgUmVwb3J0IHRlc3QgcmVzdWx0IHRvIFJlc3VsdERCLgorICAgIGlmIHNlbGYucmVzdWx0ZGI6CisgICAgICBvbmx5X2FydGlmYWN0cyA9IE5vbmUKKyAgICAgIG9ubHlfZmFpbHVyZV9yZWFzb24gPSB0ZXN0X3Jlc3VsdC5yZWFzb24KKyAgICAgIGlmIGxlbih0ZXN0X3Jlc3VsdC5pbWFnZV9hcnRpZmFjdHMpID09IDE6CisgICAgICAgIG9ubHkgPSB0ZXN0X3Jlc3VsdC5pbWFnZV9hcnRpZmFjdHNbMF0KKyAgICAgICAgb25seV9hcnRpZmFjdHMgPSBvbmx5LkdldERpZmZBcnRpZmFjdHMoKQorICAgICAgICBpZiBvbmx5LkdldERpZmZSZWFzb24oKToKKyAgICAgICAgICBvbmx5X2ZhaWx1cmVfcmVhc29uICs9IGYnOiB7b25seS5HZXREaWZmUmVhc29uKCl9JworICAgICAgc2VsZi5yZXN1bHRkYi5Qb3N0KAorICAgICAgICAgIHRlc3RfaWQ9dGVzdF9yZXN1bHQudGVzdF9pZCwKKyAgICAgICAgICBzdGF0dXM9dGVzdF9yZXN1bHQuc3RhdHVzLAorICAgICAgICAgIGR1cmF0aW9uPXRlc3RfcmVzdWx0LmR1cmF0aW9uX21pbGxpc2Vjb25kcywKKyAgICAgICAgICB0ZXN0X2xvZz10ZXN0X3Jlc3VsdC5sb2csCisgICAgICAgICAgdGVzdF9maWxlPU5vbmUsCisgICAgICAgICAgYXJ0aWZhY3RzPW9ubHlfYXJ0aWZhY3RzLAorICAgICAgICAgIGZhaWx1cmVfcmVhc29uPW9ubHlfZmFpbHVyZV9yZWFzb24pCisKKyAgICAgICMgTWlsbyBvbmx5IHN1cHBvcnRzIGEgc2luZ2xlIGRpZmYgcGVyIHRlc3QsIHNvIGlmIHdlIGhhdmUgbXVsdGlwbGUgcGFnZXMsCisgICAgICAjIHJlcG9ydCBlYWNoIHBhZ2UgYXMgaXRzIG93biAidGVzdC4iCisgICAgICBpZiBsZW4odGVzdF9yZXN1bHQuaW1hZ2VfYXJ0aWZhY3RzKSA+IDE6CisgICAgICAgIGZvciBwYWdlLCBhcnRpZmFjdCBpbiBlbnVtZXJhdGUodGVzdF9yZXN1bHQuaW1hZ2VfYXJ0aWZhY3RzKToKKyAgICAgICAgICBzZWxmLnJlc3VsdGRiLlBvc3QoCisgICAgICAgICAgICAgIHRlc3RfaWQ9Zid7dGVzdF9yZXN1bHQudGVzdF9pZH0ve3BhZ2V9JywKKyAgICAgICAgICAgICAgc3RhdHVzPXNlbGYuX1N1cHByZXNzQXJ0aWZhY3RTdGF0dXModGVzdF9yZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFydGlmYWN0LkdldERpZmZTdGF0dXMoKSksCisgICAgICAgICAgICAgIGR1cmF0aW9uPU5vbmUsCisgICAgICAgICAgICAgIHRlc3RfbG9nPU5vbmUsCisgICAgICAgICAgICAgIHRlc3RfZmlsZT1Ob25lLAorICAgICAgICAgICAgICBhcnRpZmFjdHM9YXJ0aWZhY3QuR2V0RGlmZkFydGlmYWN0cygpLAorICAgICAgICAgICAgICBmYWlsdXJlX3JlYXNvbj1hcnRpZmFjdC5HZXREaWZmUmVhc29uKCkpCisKKyAgZGVmIF9TdXBwcmVzc1N0YXR1cyhzZWxmLCBpbnB1dF9maWxlbmFtZSwgc3RhdHVzKToKKyAgICBpZiBub3Qgc2VsZi5Jc1Jlc3VsdFN1cHByZXNzZWQoaW5wdXRfZmlsZW5hbWUpOgorICAgICAgcmV0dXJuIHN0YXR1cworCisgICAgaWYgc3RhdHVzID09IHJlc3VsdF90eXBlcy5QQVNTOgorICAgICAgIyBUaGVyZSBpc24ndCBhbiBhY3R1YWwgc3RhdHVzIGZvciBzdWNjZWVkZWQtYnV0LWlnbm9yZWQsIHNvIHVzZSB0aGUKKyAgICAgICMgImFib3J0IiBzdGF0dXMgdG8gZGlmZmVyZW50aWF0ZSB0aGlzIGZyb20gZmFpbGVkLWJ1dC1pZ25vcmVkLgorICAgICAgIworICAgICAgIyBOb3RlIHRoYXQgdGhpcyBhcHBlYXJzIGFzIGEgcHJlbGltaW5hcnkgZmFpbHVyZSBpbiBHZXJyaXQuCisgICAgICByZXR1cm4gcmVzdWx0X3R5cGVzLlVOS05PV04KKworICAgICMgVGhlcmUgaXNuJ3QgYW4gYWN0dWFsIHN0YXR1cyBmb3IgZmFpbGVkLWJ1dC1pZ25vcmVkLCBzbyB1c2UgdGhlICJza2lwIgorICAgICMgc3RhdHVzIHRvIGRpZmZlcmVudGlhdGUgdGhpcyBmcm9tIHN1Y2NlZWRlZC1idXQtaWdub3JlZC4KKyAgICByZXR1cm4gcmVzdWx0X3R5cGVzLlNLSVAKKworICBkZWYgX1N1cHByZXNzQXJ0aWZhY3RTdGF0dXMoc2VsZiwgdGVzdF9yZXN1bHQsIHN0YXR1cyk6CisgICAgaWYgc3RhdHVzICE9IHJlc3VsdF90eXBlcy5GQUlMOgorICAgICAgcmV0dXJuIHN0YXR1cworCisgICAgaWYgdGVzdF9yZXN1bHQuc3RhdHVzICE9IHJlc3VsdF90eXBlcy5TS0lQOgorICAgICAgcmV0dXJuIHN0YXR1cworCisgICAgcmV0dXJuIHJlc3VsdF90eXBlcy5TS0lQCiAKICAgZGVmIFJ1bihzZWxmKToKICAgICAjIFJ1bm5pbmcgYSB0ZXN0IGRlZmluZXMgYSBudW1iZXIgb2YgYXR0cmlidXRlcyBvbiB0aGUgZmx5LgogICAgICMgcHlsaW50OiBkaXNhYmxlPWF0dHJpYnV0ZS1kZWZpbmVkLW91dHNpZGUtaW5pdAogCi0gICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKKyAgICByZWxhdGl2ZV90ZXN0X2RpciA9IHNlbGYucGVyX3Byb2Nlc3NfY29uZmlnLnRlc3RfZGlyCisgICAgaWYgcmVsYXRpdmVfdGVzdF9kaXIgIT0gJ2NvcnB1cyc6CisgICAgICByZWxhdGl2ZV90ZXN0X2RpciA9IG9zLnBhdGguam9pbigncmVzb3VyY2VzJywgcmVsYXRpdmVfdGVzdF9kaXIpCiAKLSAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCisKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAnLS1idWlsZC1kaXInLAogICAgICAgICBkZWZhdWx0PW9zLnBhdGguam9pbignb3V0JywgJ0RlYnVnJyksCiAgICAgICAgIGhlbHA9J3JlbGF0aXZlIHBhdGggZnJvbSB0aGUgYmFzZSBzb3VyY2UgZGlyZWN0b3J5JykKIAotICAgIHBhcnNlci5hZGRfb3B0aW9uKAorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAgICAgICAgICctaicsCiAgICAgICAgIGRlZmF1bHQ9bXVsdGlwcm9jZXNzaW5nLmNwdV9jb3VudCgpLAogICAgICAgICBkZXN0PSdudW1fd29ya2VycycsCi0gICAgICAgIHR5cGU9J2ludCcsCisgICAgICAgIHR5cGU9aW50LAogICAgICAgICBoZWxwPSdydW4gTlVNX1dPUktFUlMgam9icyBpbiBwYXJhbGxlbCcpCiAKLSAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAnLS1kaXNhYmxlLWphdmFzY3JpcHQnLAotICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICBkZXN0PSJkaXNhYmxlX2phdmFzY3JpcHQiLAorICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAogICAgICAgICBoZWxwPSdQcmV2ZW50cyBKYXZhU2NyaXB0IGZyb20gZXhlY3V0aW5nIGluIFBERiBmaWxlcy4nKQogCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKICAgICAgICAgJy0tZGlzYWJsZS14ZmEnLAotICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICBkZXN0PSJkaXNhYmxlX3hmYSIsCisgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCiAgICAgICAgIGhlbHA9J1ByZXZlbnRzIHByb2Nlc3NpbmcgWEZBIGZvcm1zLicpCiAKLSAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAnLS1yZW5kZXItb25lc2hvdCcsCisgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgIGhlbHA9J1NldHMgd2hldGhlciB0byB1c2UgdGhlIG9uZXNob3QgcmVuZGVyZXIuJykKKworICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICctLXJ1bi1za2lhLWdvbGQnLAorICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICBkZWZhdWx0PUZhbHNlLAorICAgICAgICBoZWxwPSdXaGVuIGZsYWcgaXMgb24sIHNraWEgZ29sZCB0ZXN0cyB3aWxsIGJlIHJ1bi4nKQorCisgICAgIyBUT0RPOiBSZW1vdmUgd2hlbiBwZGZpdW0gcmVjaXBlIHN0b3BzIHBhc3NpbmcgdGhpcyBhcmd1bWVudAorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAgICAgICAgICctLWdvbGRfcHJvcGVydGllcycsCiAgICAgICAgIGRlZmF1bHQ9JycsCi0gICAgICAgIGRlc3Q9ImdvbGRfcHJvcGVydGllcyIsCi0gICAgICAgIGhlbHA9J0tleSB2YWx1ZSBwYWlycyB0aGF0IGFyZSB3cml0dGVuIHRvIHRoZSB0b3AgbGV2ZWwgJwotICAgICAgICAnb2YgdGhlIEpTT04gZmlsZSB0aGF0IGlzIGluZ2VzdGVkIGJ5IEdvbGQuJykKKyAgICAgICAgaGVscD0nS2V5IHZhbHVlIHBhaXJzIHRoYXQgYXJlIHdyaXR0ZW4gdG8gdGhlIHRvcCBsZXZlbCBvZiB0aGUgSlNPTiAnCisgICAgICAgICdmaWxlIHRoYXQgaXMgaW5nZXN0ZWQgYnkgR29sZC4nKQogCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oCi0gICAgICAgICctLWdvbGRfa2V5JywKLSAgICAgICAgZGVmYXVsdD0nJywKLSAgICAgICAgZGVzdD0iZ29sZF9rZXkiLAotICAgICAgICBoZWxwPSdLZXkgdmFsdWUgcGFpcnMgdGhhdCBhcmUgYWRkZWQgdG8gdGhlICJrZXkiIGZpZWxkICcKLSAgICAgICAgJ29mIHRoZSBKU09OIGZpbGUgdGhhdCBpcyBpbmdlc3RlZCBieSBHb2xkLicpCi0KLSAgICBwYXJzZXIuYWRkX29wdGlvbigKLSAgICAgICAgJy0tZ29sZF9vdXRwdXRfZGlyJywKLSAgICAgICAgZGVmYXVsdD0nJywKLSAgICAgICAgZGVzdD0iZ29sZF9vdXRwdXRfZGlyIiwKLSAgICAgICAgaGVscD0nUGF0aCBvZiB3aGVyZSB0byB3cml0ZSB0aGUgSlNPTiBvdXRwdXQgdG8gYmUgJwotICAgICAgICAndXBsb2FkZWQgdG8gR29sZC4nKQotCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oCisgICAgIyBUT0RPOiBSZW1vdmUgd2hlbiBwZGZpdW0gcmVjaXBlIHN0b3BzIHBhc3NpbmcgdGhpcyBhcmd1bWVudAorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAgICAgICAgICctLWdvbGRfaWdub3JlX2hhc2hlcycsCiAgICAgICAgIGRlZmF1bHQ9JycsCi0gICAgICAgIGRlc3Q9ImdvbGRfaWdub3JlX2hhc2hlcyIsCiAgICAgICAgIGhlbHA9J1BhdGggdG8gYSBmaWxlIHdpdGggTUQ1IGhhc2hlcyB3ZSB3aXNoIHRvIGlnbm9yZS4nKQogCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKICAgICAgICAgJy0tcmVnZW5lcmF0ZV9leHBlY3RlZCcsCi0gICAgICAgIGRlZmF1bHQ9JycsCi0gICAgICAgIGRlc3Q9InJlZ2VuZXJhdGVfZXhwZWN0ZWQiLAotICAgICAgICBoZWxwPSdSZWdlbmVyYXRlcyBleHBlY3RlZCBpbWFnZXMuIFZhbGlkIHZhbHVlcyBhcmUgJwotICAgICAgICAnImFsbCIgdG8gcmVnZW5lcmF0ZSBhbGwgZXhwZWN0ZWQgcG5ncywgYW5kICcKLSAgICAgICAgJyJwbGF0Zm9ybSIgdG8gcmVnZW5lcmF0ZSBvbmx5IHBsYXRmb3JtLXNwZWNpZmljICcKLSAgICAgICAgJ2V4cGVjdGVkIHBuZ3MuJykKKyAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgaGVscD0nUmVnZW5lcmF0ZXMgZXhwZWN0ZWQgaW1hZ2VzLiBGb3IgZWFjaCBmYWlsaW5nIGltYWdlIGRpZmYsIHRoaXMgJworICAgICAgICAnd2lsbCByZWdlbmVyYXRlIHRoZSBtb3N0IHNwZWNpZmljIGV4cGVjdGVkIGltYWdlIGZpbGUgdGhhdCBleGlzdHMuICcKKyAgICAgICAgJ1RoaXMgYWxzbyB3aWxsIHN1Z2dlc3QgcmVtb3ZhbHMgb2YgdW5uZWNlc3NhcnkgZXhwZWN0ZWQgaW1hZ2UgZmlsZXMgJworICAgICAgICAnYnkgcmVuYW1pbmcgdGhlbSB3aXRoIGFuIGFkZGl0aW9uYWwgIi5iYWsiIGV4dGVuc2lvbiwgYWx0aG91Z2ggdGhlc2UgJworICAgICAgICAncmVtb3ZhbHMgc2hvdWxkIGJlIHJldmlld2VkIG1hbnVhbGx5LiBVc2UgImdpdCBjbGVhbiIgdG8gcXVpY2tseSBkZWFsICcKKyAgICAgICAgJ3dpdGggYW55ICIuYmFrIiBmaWxlcy4nKQogCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKICAgICAgICAgJy0tcmV2ZXJzZS1ieXRlLW9yZGVyJywKICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywKLSAgICAgICAgZGVzdD0icmV2ZXJzZV9ieXRlX29yZGVyIiwKICAgICAgICAgaGVscD0nUnVuIGltYWdlLWJhc2VkIHRlc3RzIHVzaW5nIC0tcmV2ZXJzZS1ieXRlLW9yZGVyLicpCiAKLSAgICBwYXJzZXIuYWRkX29wdGlvbigKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAnLS1pZ25vcmVfZXJyb3JzJywKLSAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgZGVzdD0iaWdub3JlX2Vycm9ycyIsCisgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCiAgICAgICAgIGhlbHA9J1ByZXZlbnRzIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBiZWluZyBub24temVybyAnCiAgICAgICAgICd3aGVuIGltYWdlIGNvbXBhcmlzb24gZmFpbHMuJykKIAotICAgIHNlbGYub3B0aW9ucywgc2VsZi5hcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICdpbnB1dHRlZF9maWxlX3BhdGhzJywKKyAgICAgICAgbmFyZ3M9JyonLAorICAgICAgICBoZWxwPSdQYXRoIHRvIHRlc3QgZmlsZXMgdG8gcnVuLCByZWxhdGl2ZSB0byAnCisgICAgICAgIGYndGVzdGluZy97cmVsYXRpdmVfdGVzdF9kaXJ9LiBJZiBvbWl0dGVkLCBydW5zIGFsbCB0ZXN0IGZpbGVzIHVuZGVyICcKKyAgICAgICAgZid0ZXN0aW5nL3tyZWxhdGl2ZV90ZXN0X2Rpcn0uJywKKyAgICAgICAgbWV0YXZhcj0ncmVsYXRpdmUvdGVzdC9wYXRoJykKIAotICAgIGlmIChzZWxmLm9wdGlvbnMucmVnZW5lcmF0ZV9leHBlY3RlZCBhbmQKLSAgICAgICAgc2VsZi5vcHRpb25zLnJlZ2VuZXJhdGVfZXhwZWN0ZWQgbm90IGluIFsnYWxsJywgJ3BsYXRmb3JtJ10pOgotICAgICAgcHJpbnQgJ0ZBSUxVUkU6IC0tcmVnZW5lcmF0ZV9leHBlY3RlZCBtdXN0IGJlICJhbGwiIG9yICJwbGF0Zm9ybSInCisgICAgc2tpYV9nb2xkLmFkZF9za2lhX2dvbGRfYXJncyhwYXJzZXIpCisKKyAgICBzZWxmLnBlcl9wcm9jZXNzX2NvbmZpZy5vcHRpb25zID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorCisgICAgZmluZGVyID0gc2VsZi5wZXJfcHJvY2Vzc19jb25maWcuTmV3RmluZGVyKCkKKyAgICBwZGZpdW1fdGVzdF9wYXRoID0gc2VsZi5wZXJfcHJvY2Vzc19jb25maWcuR2V0UGRmaXVtVGVzdFBhdGgoZmluZGVyKQorICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhwZGZpdW1fdGVzdF9wYXRoKToKKyAgICAgIHByaW50KGYiRkFJTFVSRTogQ2FuJ3QgZmluZCB0ZXN0IGV4ZWN1dGFibGUgJ3twZGZpdW1fdGVzdF9wYXRofSciKQorICAgICAgcHJpbnQoJ1VzZSAtLWJ1aWxkLWRpciB0byBzcGVjaWZ5IGl0cyBsb2NhdGlvbi4nKQogICAgICAgcmV0dXJuIDEKKyAgICBzZWxmLnBlcl9wcm9jZXNzX2NvbmZpZy5Jbml0aWFsaXplRmVhdHVyZXMocGRmaXVtX3Rlc3RfcGF0aCkKIAotICAgIGZpbmRlciA9IGNvbW1vbi5EaXJlY3RvcnlGaW5kZXIoc2VsZi5vcHRpb25zLmJ1aWxkX2RpcikKLSAgICBzZWxmLmZpeHVwX3BhdGggPSBmaW5kZXIuU2NyaXB0UGF0aCgnZml4dXBfcGRmX3RlbXBsYXRlLnB5JykKLSAgICBzZWxmLnRleHRfZGlmZl9wYXRoID0gZmluZGVyLlNjcmlwdFBhdGgoJ3RleHRfZGlmZi5weScpCi0gICAgc2VsZi5mb250X2RpciA9IG9zLnBhdGguam9pbihmaW5kZXIuVGVzdGluZ0RpcigpLCAncmVzb3VyY2VzJywgJ2ZvbnRzJykKKyAgICBzZWxmLnBlcl9wcm9jZXNzX3N0YXRlID0gX1BlclByb2Nlc3NTdGF0ZShzZWxmLnBlcl9wcm9jZXNzX2NvbmZpZykKKyAgICBzaHV0aWwucm10cmVlKHNlbGYucGVyX3Byb2Nlc3Nfc3RhdGUud29ya2luZ19kaXIsIGlnbm9yZV9lcnJvcnM9VHJ1ZSkKKyAgICBvcy5tYWtlZGlycyhzZWxmLnBlcl9wcm9jZXNzX3N0YXRlLndvcmtpbmdfZGlyKQogCi0gICAgc2VsZi5zb3VyY2VfZGlyID0gZmluZGVyLlRlc3RpbmdEaXIoKQotICAgIGlmIHNlbGYudGVzdF9kaXIgIT0gJ2NvcnB1cyc6Ci0gICAgICB0ZXN0X2RpciA9IGZpbmRlci5UZXN0aW5nRGlyKG9zLnBhdGguam9pbigncmVzb3VyY2VzJywgc2VsZi50ZXN0X2RpcikpCi0gICAgZWxzZToKLSAgICAgIHRlc3RfZGlyID0gZmluZGVyLlRlc3RpbmdEaXIoc2VsZi50ZXN0X2RpcikKLQotICAgIHNlbGYucGRmaXVtX3Rlc3RfcGF0aCA9IGZpbmRlci5FeGVjdXRhYmxlUGF0aCgncGRmaXVtX3Rlc3QnKQotICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzZWxmLnBkZml1bV90ZXN0X3BhdGgpOgotICAgICAgcHJpbnQgIkZBSUxVUkU6IENhbid0IGZpbmQgdGVzdCBleGVjdXRhYmxlICclcyciICUgc2VsZi5wZGZpdW1fdGVzdF9wYXRoCi0gICAgICBwcmludCAnVXNlIC0tYnVpbGQtZGlyIHRvIHNwZWNpZnkgaXRzIGxvY2F0aW9uLicKLSAgICAgIHJldHVybiAxCi0KLSAgICBzZWxmLndvcmtpbmdfZGlyID0gZmluZGVyLldvcmtpbmdEaXIob3MucGF0aC5qb2luKCd0ZXN0aW5nJywgc2VsZi50ZXN0X2RpcikpCi0gICAgc2h1dGlsLnJtdHJlZShzZWxmLndvcmtpbmdfZGlyLCBpZ25vcmVfZXJyb3JzPVRydWUpCi0gICAgb3MubWFrZWRpcnMoc2VsZi53b3JraW5nX2RpcikKLQotICAgIHNlbGYuZmVhdHVyZV9zdHJpbmcgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dCgKLSAgICAgICAgW3NlbGYucGRmaXVtX3Rlc3RfcGF0aCwgJy0tc2hvdy1jb25maWcnXSkKLSAgICBzZWxmLnRlc3Rfc3VwcHJlc3NvciA9IHN1cHByZXNzb3IuU3VwcHJlc3NvcigKLSAgICAgICAgZmluZGVyLCBzZWxmLmZlYXR1cmVfc3RyaW5nLCBzZWxmLm9wdGlvbnMuZGlzYWJsZV9qYXZhc2NyaXB0LAotICAgICAgICBzZWxmLm9wdGlvbnMuZGlzYWJsZV94ZmEpCi0gICAgc2VsZi5pbWFnZV9kaWZmZXIgPSBwbmdkaWZmZXIuUE5HRGlmZmVyKGZpbmRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5vcHRpb25zLnJldmVyc2VfYnl0ZV9vcmRlcikKLSAgICBlcnJvcl9tZXNzYWdlID0gc2VsZi5pbWFnZV9kaWZmZXIuQ2hlY2tNaXNzaW5nVG9vbHMoCisgICAgZXJyb3JfbWVzc2FnZSA9IHNlbGYucGVyX3Byb2Nlc3Nfc3RhdGUuaW1hZ2VfZGlmZmVyLkNoZWNrTWlzc2luZ1Rvb2xzKAogICAgICAgICBzZWxmLm9wdGlvbnMucmVnZW5lcmF0ZV9leHBlY3RlZCkKICAgICBpZiBlcnJvcl9tZXNzYWdlOgotICAgICAgcHJpbnQgIkZBSUxVUkU6ICVzIiAlIGVycm9yX21lc3NhZ2UKKyAgICAgIHByaW50KCdGQUlMVVJFOicsIGVycm9yX21lc3NhZ2UpCiAgICAgICByZXR1cm4gMQogCi0gICAgc2VsZi5nb2xkX2Jhc2VsaW5lID0gZ29sZC5Hb2xkQmFzZWxpbmUoc2VsZi5vcHRpb25zLmdvbGRfcHJvcGVydGllcykKKyAgICBzZWxmLnJlc3VsdGRiID0gcmVzdWx0X3NpbmsuVHJ5SW5pdENsaWVudCgpCisgICAgaWYgc2VsZi5yZXN1bHRkYjoKKyAgICAgIHByaW50KCdEZXRlY3RlZCBSZXN1bHRTaW5rIGVudmlyb25tZW50JykKIAotICAgIHdhbGtfZnJvbV9kaXIgPSBmaW5kZXIuVGVzdGluZ0Rpcih0ZXN0X2RpcikKKyAgICAjIENvbGxlY3QgdGVzdCBjYXNlcy4KKyAgICB3YWxrX2Zyb21fZGlyID0gZmluZGVyLlRlc3RpbmdEaXIocmVsYXRpdmVfdGVzdF9kaXIpCiAKLSAgICBzZWxmLnRlc3RfY2FzZXMgPSBbXQorICAgIHNlbGYudGVzdF9jYXNlcyA9IFRlc3RDYXNlTWFuYWdlcigpCiAgICAgc2VsZi5leGVjdXRpb25fc3VwcHJlc3NlZF9jYXNlcyA9IFtdCiAgICAgaW5wdXRfZmlsZV9yZSA9IHJlLmNvbXBpbGUoJ14uK1suXShpbnxwZGYpJCcpCi0gICAgaWYgc2VsZi5hcmdzOgotICAgICAgZm9yIGZpbGVfbmFtZSBpbiBzZWxmLmFyZ3M6Ci0gICAgICAgIGZpbGVfbmFtZS5yZXBsYWNlKCcucGRmJywgJy5pbicpCisgICAgaWYgc2VsZi5vcHRpb25zLmlucHV0dGVkX2ZpbGVfcGF0aHM6CisgICAgICBmb3IgZmlsZV9uYW1lIGluIHNlbGYub3B0aW9ucy5pbnB1dHRlZF9maWxlX3BhdGhzOgogICAgICAgICBpbnB1dF9wYXRoID0gb3MucGF0aC5qb2luKHdhbGtfZnJvbV9kaXIsIGZpbGVfbmFtZSkKICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGlucHV0X3BhdGgpOgotICAgICAgICAgIHByaW50ICJDYW4ndCBmaW5kIHRlc3QgZmlsZSAnJXMnIiAlIGZpbGVfbmFtZQorICAgICAgICAgIHByaW50KGYiQ2FuJ3QgZmluZCB0ZXN0IGZpbGUgJ3tmaWxlX25hbWV9JyIpCiAgICAgICAgICAgcmV0dXJuIDEKIAotICAgICAgICBzZWxmLnRlc3RfY2FzZXMuYXBwZW5kKChvcy5wYXRoLmJhc2VuYW1lKGlucHV0X3BhdGgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoaW5wdXRfcGF0aCkpKQorICAgICAgICBzZWxmLnRlc3RfY2FzZXMuTmV3VGVzdENhc2UoaW5wdXRfcGF0aCkKICAgICBlbHNlOgogICAgICAgZm9yIGZpbGVfZGlyLCBfLCBmaWxlbmFtZV9saXN0IGluIG9zLndhbGsod2Fsa19mcm9tX2Rpcik6CiAgICAgICAgIGZvciBpbnB1dF9maWxlbmFtZSBpbiBmaWxlbmFtZV9saXN0OgogICAgICAgICAgIGlmIGlucHV0X2ZpbGVfcmUubWF0Y2goaW5wdXRfZmlsZW5hbWUpOgogICAgICAgICAgICAgaW5wdXRfcGF0aCA9IG9zLnBhdGguam9pbihmaWxlX2RpciwgaW5wdXRfZmlsZW5hbWUpCi0gICAgICAgICAgICBpZiBzZWxmLnRlc3Rfc3VwcHJlc3Nvci5Jc0V4ZWN1dGlvblN1cHByZXNzZWQoaW5wdXRfcGF0aCk6CisgICAgICAgICAgICBpZiBzZWxmLklzRXhlY3V0aW9uU3VwcHJlc3NlZChpbnB1dF9wYXRoKToKICAgICAgICAgICAgICAgc2VsZi5leGVjdXRpb25fc3VwcHJlc3NlZF9jYXNlcy5hcHBlbmQoaW5wdXRfcGF0aCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKGlucHV0X3BhdGgpOgotICAgICAgICAgICAgICAgIHNlbGYudGVzdF9jYXNlcy5hcHBlbmQoKGlucHV0X2ZpbGVuYW1lLCBmaWxlX2RpcikpCisgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoaW5wdXRfcGF0aCk6CisgICAgICAgICAgICAgIGNvbnRpbnVlCiAKLSAgICBzZWxmLnRlc3RfY2FzZXMuc29ydCgpCisgICAgICAgICAgICBzZWxmLnRlc3RfY2FzZXMuTmV3VGVzdENhc2UoaW5wdXRfcGF0aCkKKworICAgICMgRXhlY3V0ZSB0ZXN0IGNhc2VzLgogICAgIHNlbGYuZmFpbHVyZXMgPSBbXQogICAgIHNlbGYuc3VycHJpc2VzID0gW10KKyAgICBzZWxmLnNraWFfZ29sZF9zdWNjZXNzZXMgPSBbXQorICAgIHNlbGYuc2tpYV9nb2xkX3VuZXhwZWN0ZWRfc3VjY2Vzc2VzID0gW10KKyAgICBzZWxmLnNraWFfZ29sZF9mYWlsdXJlcyA9IFtdCiAgICAgc2VsZi5yZXN1bHRfc3VwcHJlc3NlZF9jYXNlcyA9IFtdCiAKLSAgICAjIENvbGxlY3QgR29sZCByZXN1bHRzIGlmIGFuIG91dHB1dCBkaXJlY3Rvcnkgd2FzIG5hbWVkLgotICAgIHNlbGYuZ29sZF9yZXN1bHRzID0gTm9uZQotICAgIGlmIHNlbGYub3B0aW9ucy5nb2xkX291dHB1dF9kaXI6Ci0gICAgICBzZWxmLmdvbGRfcmVzdWx0cyA9IGdvbGQuR29sZFJlc3VsdHMoCi0gICAgICAgICAgc2VsZi50ZXN0X3R5cGUsIHNlbGYub3B0aW9ucy5nb2xkX291dHB1dF9kaXIsCi0gICAgICAgICAgc2VsZi5vcHRpb25zLmdvbGRfcHJvcGVydGllcywgc2VsZi5vcHRpb25zLmdvbGRfa2V5LAotICAgICAgICAgIHNlbGYub3B0aW9ucy5nb2xkX2lnbm9yZV9oYXNoZXMpCisgICAgaWYgc2VsZi5Jc1NraWFHb2xkRW5hYmxlZCgpOgorICAgICAgYXNzZXJ0IHNlbGYub3B0aW9ucy5nb2xkX291dHB1dF9kaXIKKyAgICAgICMgQ2xlYXIgb3V0IGFuZCBjcmVhdGUgdG9wIGxldmVsIGdvbGQgb3V0cHV0IGRpcmVjdG9yeSBiZWZvcmUgc3RhcnRpbmcKKyAgICAgIHNraWFfZ29sZC5jbGVhcl9nb2xkX291dHB1dF9kaXIoc2VsZi5vcHRpb25zLmdvbGRfb3V0cHV0X2RpcikKIAotICAgIGlmIHNlbGYub3B0aW9ucy5udW1fd29ya2VycyA+IDEgYW5kIGxlbihzZWxmLnRlc3RfY2FzZXMpID4gMToKLSAgICAgIHRyeToKLSAgICAgICAgcG9vbCA9IG11bHRpcHJvY2Vzc2luZy5Qb29sKHNlbGYub3B0aW9ucy5udW1fd29ya2VycykKLSAgICAgICAgd29ya2VyX2Z1bmMgPSBmdW5jdG9vbHMucGFydGlhbChUZXN0T25lRmlsZVBhcmFsbGVsLCBzZWxmKQorICAgIHdpdGggbXVsdGlwcm9jZXNzaW5nLlBvb2woCisgICAgICAgIHByb2Nlc3Nlcz1zZWxmLm9wdGlvbnMubnVtX3dvcmtlcnMsCisgICAgICAgIGluaXRpYWxpemVyPV9Jbml0aWFsaXplUGVyUHJvY2Vzc1N0YXRlLAorICAgICAgICBpbml0YXJncz1bc2VsZi5wZXJfcHJvY2Vzc19jb25maWddKSBhcyBwb29sOgorICAgICAgaWYgc2VsZi5wZXJfcHJvY2Vzc19jb25maWcudGVzdF90eXBlIGluIFRFWFRfVEVTVFM6CisgICAgICAgIHRlc3RfZnVuY3Rpb24gPSBfUnVuVGV4dFRlc3QKKyAgICAgIGVsc2U6CisgICAgICAgIHRlc3RfZnVuY3Rpb24gPSBfUnVuUGl4ZWxUZXN0CisgICAgICBmb3IgcmVzdWx0IGluIHBvb2wuaW1hcCh0ZXN0X2Z1bmN0aW9uLCBzZWxmLnRlc3RfY2FzZXMpOgorICAgICAgICBzZWxmLkhhbmRsZVJlc3VsdChzZWxmLnRlc3RfY2FzZXMuR2V0VGVzdENhc2UocmVzdWx0LnRlc3RfaWQpLCByZXN1bHQpCiAKLSAgICAgICAgd29ya2VyX3Jlc3VsdHMgPSBwb29sLmltYXAod29ya2VyX2Z1bmMsIHNlbGYudGVzdF9jYXNlcykKLSAgICAgICAgZm9yIHdvcmtlcl9yZXN1bHQgaW4gd29ya2VyX3Jlc3VsdHM6Ci0gICAgICAgICAgcmVzdWx0LCBpbnB1dF9maWxlbmFtZSwgc291cmNlX2RpciA9IHdvcmtlcl9yZXN1bHQKLSAgICAgICAgICBpbnB1dF9wYXRoID0gb3MucGF0aC5qb2luKHNvdXJjZV9kaXIsIGlucHV0X2ZpbGVuYW1lKQotCi0gICAgICAgICAgc2VsZi5IYW5kbGVSZXN1bHQoaW5wdXRfZmlsZW5hbWUsIGlucHV0X3BhdGgsIHJlc3VsdCkKLQotICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICBwb29sLnRlcm1pbmF0ZSgpCi0gICAgICBmaW5hbGx5OgotICAgICAgICBwb29sLmNsb3NlKCkKLSAgICAgICAgcG9vbC5qb2luKCkKLSAgICBlbHNlOgotICAgICAgZm9yIHRlc3RfY2FzZSBpbiBzZWxmLnRlc3RfY2FzZXM6Ci0gICAgICAgIGlucHV0X2ZpbGVuYW1lLCBpbnB1dF9maWxlX2RpciA9IHRlc3RfY2FzZQotICAgICAgICByZXN1bHQgPSBzZWxmLkdlbmVyYXRlQW5kVGVzdChpbnB1dF9maWxlbmFtZSwgaW5wdXRfZmlsZV9kaXIpCi0gICAgICAgIHNlbGYuSGFuZGxlUmVzdWx0KGlucHV0X2ZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oaW5wdXRfZmlsZV9kaXIsIGlucHV0X2ZpbGVuYW1lKSwgcmVzdWx0KQotCi0gICAgaWYgc2VsZi5nb2xkX3Jlc3VsdHM6Ci0gICAgICBzZWxmLmdvbGRfcmVzdWx0cy5Xcml0ZVJlc3VsdHMoKQotCisgICAgIyBSZXBvcnQgdGVzdCByZXN1bHRzLgogICAgIGlmIHNlbGYuc3VycHJpc2VzOgogICAgICAgc2VsZi5zdXJwcmlzZXMuc29ydCgpCi0gICAgICBwcmludCAnXG5cblVuZXhwZWN0ZWQgU3VjY2Vzc2VzOicKKyAgICAgIHByaW50KCdcblVuZXhwZWN0ZWQgU3VjY2Vzc2VzOicpCiAgICAgICBmb3Igc3VycHJpc2UgaW4gc2VsZi5zdXJwcmlzZXM6Ci0gICAgICAgIHByaW50IHN1cnByaXNlCisgICAgICAgIHByaW50KHN1cnByaXNlKQogCiAgICAgaWYgc2VsZi5mYWlsdXJlczoKICAgICAgIHNlbGYuZmFpbHVyZXMuc29ydCgpCi0gICAgICBwcmludCAnXG5cblN1bW1hcnkgb2YgRmFpbHVyZXM6JworICAgICAgcHJpbnQoJ1xuU3VtbWFyeSBvZiBGYWlsdXJlczonKQogICAgICAgZm9yIGZhaWx1cmUgaW4gc2VsZi5mYWlsdXJlczoKLSAgICAgICAgcHJpbnQgZmFpbHVyZQorICAgICAgICBwcmludChmYWlsdXJlKQorCisgICAgaWYgc2VsZi5za2lhX2dvbGRfdW5leHBlY3RlZF9zdWNjZXNzZXM6CisgICAgICBzZWxmLnNraWFfZ29sZF91bmV4cGVjdGVkX3N1Y2Nlc3Nlcy5zb3J0KCkKKyAgICAgIHByaW50KCdcblVuZXhwZWN0ZWQgU2tpYSBHb2xkIFN1Y2Nlc3NlczonKQorICAgICAgZm9yIHN1cnByaXNlIGluIHNlbGYuc2tpYV9nb2xkX3VuZXhwZWN0ZWRfc3VjY2Vzc2VzOgorICAgICAgICBwcmludChzdXJwcmlzZSkKKworICAgIGlmIHNlbGYuc2tpYV9nb2xkX2ZhaWx1cmVzOgorICAgICAgc2VsZi5za2lhX2dvbGRfZmFpbHVyZXMuc29ydCgpCisgICAgICBwcmludCgnXG5TdW1tYXJ5IG9mIFNraWEgR29sZCBGYWlsdXJlczonKQorICAgICAgZm9yIGZhaWx1cmUgaW4gc2VsZi5za2lhX2dvbGRfZmFpbHVyZXM6CisgICAgICAgIHByaW50KGZhaWx1cmUpCiAKICAgICBzZWxmLl9QcmludFN1bW1hcnkoKQogCkBAIC00NjIsMjMgKzM1OCw1NTEgQEAKICAgICBudW1iZXJfc3VwcHJlc3NlZCA9IGxlbihzZWxmLnJlc3VsdF9zdXBwcmVzc2VkX2Nhc2VzKQogICAgIG51bWJlcl9zdWNjZXNzZXMgPSBudW1iZXJfdGVzdF9jYXNlcyAtIG51bWJlcl9mYWlsdXJlcyAtIG51bWJlcl9zdXBwcmVzc2VkCiAgICAgbnVtYmVyX3N1cnByaXNlcyA9IGxlbihzZWxmLnN1cnByaXNlcykKLSAgICBwcmludAotICAgIHByaW50ICdUZXN0IGNhc2VzIGV4ZWN1dGVkOiAlZCcgJSBudW1iZXJfdGVzdF9jYXNlcwotICAgIHByaW50ICcgIFN1Y2Nlc3NlczogJWQnICUgbnVtYmVyX3N1Y2Nlc3NlcwotICAgIHByaW50ICcgIFN1cHByZXNzZWQ6ICVkJyAlIG51bWJlcl9zdXBwcmVzc2VkCi0gICAgcHJpbnQgJyAgICBTdXJwcmlzZXM6ICVkJyAlIG51bWJlcl9zdXJwcmlzZXMKLSAgICBwcmludCAnICBGYWlsdXJlczogJWQnICUgbnVtYmVyX2ZhaWx1cmVzCi0gICAgcHJpbnQKLSAgICBwcmludCAnVGVzdCBjYXNlcyBub3QgZXhlY3V0ZWQ6ICVkJyAlIGxlbihzZWxmLmV4ZWN1dGlvbl9zdXBwcmVzc2VkX2Nhc2VzKQorICAgIHByaW50KCdcblRlc3QgY2FzZXMgZXhlY3V0ZWQ6JywgbnVtYmVyX3Rlc3RfY2FzZXMpCisgICAgcHJpbnQoJyAgU3VjY2Vzc2VzOicsIG51bWJlcl9zdWNjZXNzZXMpCisgICAgcHJpbnQoJyAgU3VwcHJlc3NlZDonLCBudW1iZXJfc3VwcHJlc3NlZCkKKyAgICBwcmludCgnICBTdXJwcmlzZXM6JywgbnVtYmVyX3N1cnByaXNlcykKKyAgICBwcmludCgnICBGYWlsdXJlczonLCBudW1iZXJfZmFpbHVyZXMpCisgICAgaWYgc2VsZi5Jc1NraWFHb2xkRW5hYmxlZCgpOgorICAgICAgbnVtYmVyX2dvbGRfZmFpbHVyZXMgPSBsZW4oc2VsZi5za2lhX2dvbGRfZmFpbHVyZXMpCisgICAgICBudW1iZXJfZ29sZF9zdWNjZXNzZXMgPSBsZW4oc2VsZi5za2lhX2dvbGRfc3VjY2Vzc2VzKQorICAgICAgbnVtYmVyX2dvbGRfc3VycHJpc2VzID0gbGVuKHNlbGYuc2tpYV9nb2xkX3VuZXhwZWN0ZWRfc3VjY2Vzc2VzKQorICAgICAgbnVtYmVyX3RvdGFsX2dvbGRfdGVzdHMgPSBzdW0oCisgICAgICAgICAgW251bWJlcl9nb2xkX2ZhaWx1cmVzLCBudW1iZXJfZ29sZF9zdWNjZXNzZXMsIG51bWJlcl9nb2xkX3N1cnByaXNlc10pCisgICAgICBwcmludCgnXG5Ta2lhIEdvbGQgVGVzdCBjYXNlcyBleGVjdXRlZDonLCBudW1iZXJfdG90YWxfZ29sZF90ZXN0cykKKyAgICAgIHByaW50KCcgIFNraWEgR29sZCBTdWNjZXNzZXM6JywgbnVtYmVyX2dvbGRfc3VjY2Vzc2VzKQorICAgICAgcHJpbnQoJyAgU2tpYSBHb2xkIFN1cnByaXNlczonLCBudW1iZXJfZ29sZF9zdXJwcmlzZXMpCisgICAgICBwcmludCgnICBTa2lhIEdvbGQgRmFpbHVyZXM6JywgbnVtYmVyX2dvbGRfZmFpbHVyZXMpCisgICAgICBza2lhX3Rlc3RlciA9IHNlbGYucGVyX3Byb2Nlc3Nfc3RhdGUuR2V0U2tpYUdvbGRUZXN0ZXIoKQorICAgICAgaWYgc2VsZi5za2lhX2dvbGRfZmFpbHVyZXMgYW5kIHNraWFfdGVzdGVyLklzVHJ5am9iUnVuKCk6CisgICAgICAgIGNsX3RyaWFnZV9saW5rID0gc2tpYV90ZXN0ZXIuR2V0Q0xUcmlhZ2VMaW5rKCkKKyAgICAgICAgcHJpbnQoJyAgVHJpYWdlIGxpbmsgZm9yIENMOicsIGNsX3RyaWFnZV9saW5rKQorICAgICAgICBza2lhX3Rlc3Rlci5Xcml0ZUNMVHJpYWdlTGluayhjbF90cmlhZ2VfbGluaykKKyAgICBwcmludCgpCisgICAgcHJpbnQoJ1Rlc3QgY2FzZXMgbm90IGV4ZWN1dGVkOicsIGxlbihzZWxmLmV4ZWN1dGlvbl9zdXBwcmVzc2VkX2Nhc2VzKSkKIAogICBkZWYgU2V0RGVsZXRlT3V0cHV0T25TdWNjZXNzKHNlbGYsIG5ld192YWx1ZSk6CiAgICAgIiIiU2V0IHdoZXRoZXIgdG8gZGVsZXRlIGdlbmVyYXRlZCBvdXRwdXQgaWYgdGhlIHRlc3QgcGFzc2VzLiIiIgotICAgIHNlbGYuZGVsZXRlX291dHB1dF9vbl9zdWNjZXNzID0gbmV3X3ZhbHVlCisgICAgc2VsZi5wZXJfcHJvY2Vzc19jb25maWcuZGVsZXRlX291dHB1dF9vbl9zdWNjZXNzID0gbmV3X3ZhbHVlCiAKICAgZGVmIFNldEVuZm9yY2VFeHBlY3RlZEltYWdlcyhzZWxmLCBuZXdfdmFsdWUpOgogICAgICIiIlNldCB3aGV0aGVyIHRvIGVuZm9yY2UgdGhhdCBlYWNoIHRlc3QgY2FzZSBwcm92aWRlIGFuIGV4cGVjdGVkIGltYWdlLiIiIgotICAgIHNlbGYuZW5mb3JjZV9leHBlY3RlZF9pbWFnZXMgPSBuZXdfdmFsdWUKKyAgICBzZWxmLnBlcl9wcm9jZXNzX2NvbmZpZy5lbmZvcmNlX2V4cGVjdGVkX2ltYWdlcyA9IG5ld192YWx1ZQogCi0gIGRlZiBTZXRPbmVTaG90UmVuZGVyZXIoc2VsZiwgbmV3X3ZhbHVlKToKLSAgICAiIiJTZXQgd2hldGhlciB0byB1c2UgdGhlIG9uZXNob3QgcmVuZGVyZXIuICIiIgotICAgIHNlbGYub25lc2hvdF9yZW5kZXJlciA9IG5ld192YWx1ZQorCitkZWYgX1J1blRleHRUZXN0KHRlc3RfY2FzZSk6CisgICIiIlJ1bnMgYSB0ZXh0IHRlc3QgY2FzZS4iIiIKKyAgdGVzdF9jYXNlX3J1bm5lciA9IF9UZXN0Q2FzZVJ1bm5lcih0ZXN0X2Nhc2UpCisgIHdpdGggdGVzdF9jYXNlX3J1bm5lcjoKKyAgICB0ZXN0X2Nhc2VfcnVubmVyLnRlc3RfcmVzdWx0ID0gdGVzdF9jYXNlX3J1bm5lci5HZW5lcmF0ZUFuZFRlc3QoCisgICAgICAgIHRlc3RfY2FzZV9ydW5uZXIuVGVzdFRleHQpCisgIHJldHVybiB0ZXN0X2Nhc2VfcnVubmVyLnRlc3RfcmVzdWx0CisKKworZGVmIF9SdW5QaXhlbFRlc3QodGVzdF9jYXNlKToKKyAgIiIiUnVucyBhIHBpeGVsIHRlc3QgY2FzZS4iIiIKKyAgdGVzdF9jYXNlX3J1bm5lciA9IF9UZXN0Q2FzZVJ1bm5lcih0ZXN0X2Nhc2UpCisgIHdpdGggdGVzdF9jYXNlX3J1bm5lcjoKKyAgICB0ZXN0X2Nhc2VfcnVubmVyLnRlc3RfcmVzdWx0ID0gdGVzdF9jYXNlX3J1bm5lci5HZW5lcmF0ZUFuZFRlc3QoCisgICAgICAgIHRlc3RfY2FzZV9ydW5uZXIuVGVzdFBpeGVsKQorICByZXR1cm4gdGVzdF9jYXNlX3J1bm5lci50ZXN0X3Jlc3VsdAorCisKKyMgYF9QZXJQcm9jZXNzU3RhdGVgIHNpbmdsZXRvbi4gVGhpcyBpcyBpbml0aWFsaXplZCB3aGVuIGNyZWF0aW5nIHRoZQorIyBgbXVsdGlwcm9jZXNzaW5nLlBvb2woKWAuIGBUZXN0UnVubmVyLlJ1bigpYCBjcmVhdGVzIGl0cyBvd24gc2VwYXJhdGUKKyMgaW5zdGFuY2Ugb2YgYF9QZXJQcm9jZXNzU3RhdGVgIGFzIHdlbGwuCitfcGVyX3Byb2Nlc3Nfc3RhdGUgPSBOb25lCisKKworZGVmIF9Jbml0aWFsaXplUGVyUHJvY2Vzc1N0YXRlKGNvbmZpZyk6CisgICIiIkluaXRpYWxpemVzIHRoZSBgX3Blcl9wcm9jZXNzX3N0YXRlYCBzaW5nbGV0b24uIiIiCisgIGdsb2JhbCBfcGVyX3Byb2Nlc3Nfc3RhdGUKKyAgYXNzZXJ0IG5vdCBfcGVyX3Byb2Nlc3Nfc3RhdGUKKyAgX3Blcl9wcm9jZXNzX3N0YXRlID0gX1BlclByb2Nlc3NTdGF0ZShjb25maWcpCisKKworQGRhdGFjbGFzcworY2xhc3MgX1BlclByb2Nlc3NDb25maWc6CisgICIiIkNvbmZpZ3VyYXRpb24gZm9yIGluaXRpYWxpemluZyBgX1BlclByb2Nlc3NTdGF0ZWAuCisKKyAgQXR0cmlidXRlczoKKyAgICB0ZXN0X2RpcjogVGhlIG5hbWUgb2YgdGhlIHRlc3QgZGlyZWN0b3J5LgorICAgIHRlc3RfdHlwZTogVGhlIHRlc3QgdHlwZS4KKyAgICBkZWxldGVfb3V0cHV0X29uX3N1Y2Nlc3M6IFdoZXRoZXIgdG8gZGVsZXRlIG91dHB1dCBvbiBzdWNjZXNzLgorICAgIGVuZm9yY2VfZXhwZWN0ZWRfaW1hZ2VzOiBXaGV0aGVyIHRvIGVuZm9yY2UgZXhwZWN0ZWQgaW1hZ2VzLgorICAgIG9wdGlvbnM6IFRoZSBkaWN0aW9uYXJ5IG9mIGNvbW1hbmQgbGluZSBvcHRpb25zLgorICAgIGZlYXR1cmVzOiBUaGUgbGlzdCBvZiBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgYHBkZml1bV90ZXN0YC4KKyAgIiIiCisgIHRlc3RfZGlyOiBzdHIKKyAgdGVzdF90eXBlOiBzdHIKKyAgZGVsZXRlX291dHB1dF9vbl9zdWNjZXNzOiBib29sID0gRmFsc2UKKyAgZW5mb3JjZV9leHBlY3RlZF9pbWFnZXM6IGJvb2wgPSBGYWxzZQorICBvcHRpb25zOiBkaWN0ID0gTm9uZQorICBmZWF0dXJlczogbGlzdCA9IE5vbmUKKworICBkZWYgTmV3RmluZGVyKHNlbGYpOgorICAgIHJldHVybiBjb21tb24uRGlyZWN0b3J5RmluZGVyKHNlbGYub3B0aW9ucy5idWlsZF9kaXIpCisKKyAgZGVmIEdldFBkZml1bVRlc3RQYXRoKHNlbGYsIGZpbmRlcik6CisgICAgcmV0dXJuIGZpbmRlci5FeGVjdXRhYmxlUGF0aCgncGRmaXVtX3Rlc3QnKQorCisgIGRlZiBJbml0aWFsaXplRmVhdHVyZXMoc2VsZiwgcGRmaXVtX3Rlc3RfcGF0aCk6CisgICAgb3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoW3BkZml1bV90ZXN0X3BhdGgsICctLXNob3ctY29uZmlnJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dD1URVNUX1RJTUVPVVQpCisgICAgc2VsZi5mZWF0dXJlcyA9IG91dHB1dC5kZWNvZGUoJ3V0Zi04Jykuc3RyaXAoKS5zcGxpdCgnLCcpCisKKworY2xhc3MgX1BlclByb2Nlc3NTdGF0ZToKKyAgIiIiU3RhdGUgZGVmaW5lZCBwZXIgcHJvY2Vzcy4iIiIKKworICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKKyAgICBzZWxmLnRlc3RfZGlyID0gY29uZmlnLnRlc3RfZGlyCisgICAgc2VsZi50ZXN0X3R5cGUgPSBjb25maWcudGVzdF90eXBlCisgICAgc2VsZi5kZWxldGVfb3V0cHV0X29uX3N1Y2Nlc3MgPSBjb25maWcuZGVsZXRlX291dHB1dF9vbl9zdWNjZXNzCisgICAgc2VsZi5lbmZvcmNlX2V4cGVjdGVkX2ltYWdlcyA9IGNvbmZpZy5lbmZvcmNlX2V4cGVjdGVkX2ltYWdlcworICAgIHNlbGYub3B0aW9ucyA9IGNvbmZpZy5vcHRpb25zCisgICAgc2VsZi5mZWF0dXJlcyA9IGNvbmZpZy5mZWF0dXJlcworCisgICAgZmluZGVyID0gY29uZmlnLk5ld0ZpbmRlcigpCisgICAgc2VsZi5wZGZpdW1fdGVzdF9wYXRoID0gY29uZmlnLkdldFBkZml1bVRlc3RQYXRoKGZpbmRlcikKKyAgICBzZWxmLmZpeHVwX3BhdGggPSBmaW5kZXIuU2NyaXB0UGF0aCgnZml4dXBfcGRmX3RlbXBsYXRlLnB5JykKKyAgICBzZWxmLnRleHRfZGlmZl9wYXRoID0gZmluZGVyLlNjcmlwdFBhdGgoJ3RleHRfZGlmZi5weScpCisgICAgc2VsZi5mb250X2RpciA9IG9zLnBhdGguam9pbihmaW5kZXIuVGVzdGluZ0RpcigpLCAncmVzb3VyY2VzJywgJ2ZvbnRzJykKKyAgICBzZWxmLnRoaXJkX3BhcnR5X2ZvbnRfZGlyID0gZmluZGVyLlRoaXJkUGFydHlGb250c0RpcigpCisKKyAgICBzZWxmLnNvdXJjZV9kaXIgPSBmaW5kZXIuVGVzdGluZ0RpcigpCisgICAgc2VsZi53b3JraW5nX2RpciA9IGZpbmRlci5Xb3JraW5nRGlyKG9zLnBhdGguam9pbigndGVzdGluZycsIHNlbGYudGVzdF9kaXIpKQorCisgICAgc2VsZi50ZXN0X3N1cHByZXNzb3IgPSBzdXBwcmVzc29yLlN1cHByZXNzb3IoCisgICAgICAgIGZpbmRlciwgc2VsZi5mZWF0dXJlcywgc2VsZi5vcHRpb25zLmRpc2FibGVfamF2YXNjcmlwdCwKKyAgICAgICAgc2VsZi5vcHRpb25zLmRpc2FibGVfeGZhKQorICAgIHNlbGYuaW1hZ2VfZGlmZmVyID0gcG5nZGlmZmVyLlBOR0RpZmZlcihmaW5kZXIsIHNlbGYuZmVhdHVyZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYub3B0aW9ucy5yZXZlcnNlX2J5dGVfb3JkZXIpCisKKyAgICBzZWxmLnByb2Nlc3NfbmFtZSA9IG11bHRpcHJvY2Vzc2luZy5jdXJyZW50X3Byb2Nlc3MoKS5uYW1lCisgICAgc2VsZi5za2lhX3Rlc3RlciA9IE5vbmUKKworICBkZWYgX19nZXRzdGF0ZV9fKHNlbGYpOgorICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignQ2Fubm90IHBpY2tsZSBwZXItcHJvY2VzcyBzdGF0ZScpCisKKyAgZGVmIEdldFNraWFHb2xkVGVzdGVyKHNlbGYpOgorICAgICIiIkdldHMgdGhlIGBTa2lhR29sZFRlc3RlcmAgc2luZ2xldG9uIGZvciB0aGlzIHdvcmtlci4iIiIKKyAgICBpZiBub3Qgc2VsZi5za2lhX3Rlc3RlcjoKKyAgICAgIHNlbGYuc2tpYV90ZXN0ZXIgPSBza2lhX2dvbGQuU2tpYUdvbGRUZXN0ZXIoCisgICAgICAgICAgc291cmNlX3R5cGU9c2VsZi50ZXN0X3R5cGUsCisgICAgICAgICAgc2tpYV9nb2xkX2FyZ3M9c2VsZi5vcHRpb25zLAorICAgICAgICAgIHByb2Nlc3NfbmFtZT1zZWxmLnByb2Nlc3NfbmFtZSkKKyAgICByZXR1cm4gc2VsZi5za2lhX3Rlc3RlcgorCisKK2NsYXNzIF9UZXN0Q2FzZVJ1bm5lcjoKKyAgIiIiUnVubmVyIGZvciBhIHNpbmdsZSB0ZXN0IGNhc2UuIiIiCisKKyAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfY2FzZSk6CisgICAgc2VsZi50ZXN0X2Nhc2UgPSB0ZXN0X2Nhc2UKKyAgICBzZWxmLnRlc3RfcmVzdWx0ID0gTm9uZQorICAgIHNlbGYuZHVyYXRpb25fc3RhcnQgPSAwCisKKyAgICBzZWxmLnNvdXJjZV9kaXIsIHNlbGYuaW5wdXRfZmlsZW5hbWUgPSBvcy5wYXRoLnNwbGl0KAorICAgICAgICBzZWxmLnRlc3RfY2FzZS5pbnB1dF9wYXRoKQorICAgIHNlbGYucGRmX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi53b3JraW5nX2RpciwgZid7c2VsZi50ZXN0X2lkfS5wZGYnKQorICAgIHNlbGYuYWN0dWFsX2ltYWdlcyA9IE5vbmUKKworICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgIHNlbGYuZHVyYXRpb25fc3RhcnQgPSB0aW1lLnBlcmZfY291bnRlcl9ucygpCisgICAgcmV0dXJuIHNlbGYKKworICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKKyAgICBpZiBub3Qgc2VsZi50ZXN0X3Jlc3VsdDoKKyAgICAgIHNlbGYudGVzdF9yZXN1bHQgPSBzZWxmLnRlc3RfY2FzZS5OZXdSZXN1bHQoCisgICAgICAgICAgcmVzdWx0X3R5cGVzLlVOS05PV04sIHJlYXNvbj0nTm8gdGVzdCByZXN1bHQgcmVjb3JkZWQnKQorICAgIGR1cmF0aW9uID0gdGltZS5wZXJmX2NvdW50ZXJfbnMoKSAtIHNlbGYuZHVyYXRpb25fc3RhcnQKKyAgICBzZWxmLnRlc3RfcmVzdWx0LmR1cmF0aW9uX21pbGxpc2Vjb25kcyA9IGR1cmF0aW9uICogMWUtNgorCisgIEBwcm9wZXJ0eQorICBkZWYgb3B0aW9ucyhzZWxmKToKKyAgICByZXR1cm4gX3Blcl9wcm9jZXNzX3N0YXRlLm9wdGlvbnMKKworICBAcHJvcGVydHkKKyAgZGVmIHRlc3RfaWQoc2VsZik6CisgICAgcmV0dXJuIHNlbGYudGVzdF9jYXNlLnRlc3RfaWQKKworICBAcHJvcGVydHkKKyAgZGVmIHdvcmtpbmdfZGlyKHNlbGYpOgorICAgIHJldHVybiBfcGVyX3Byb2Nlc3Nfc3RhdGUud29ya2luZ19kaXIKKworICBkZWYgSXNSZXN1bHRTdXBwcmVzc2VkKHNlbGYpOgorICAgIHJldHVybiBfcGVyX3Byb2Nlc3Nfc3RhdGUudGVzdF9zdXBwcmVzc29yLklzUmVzdWx0U3VwcHJlc3NlZCgKKyAgICAgICAgc2VsZi5pbnB1dF9maWxlbmFtZSkKKworICBkZWYgSXNJbWFnZURpZmZTdXBwcmVzc2VkKHNlbGYpOgorICAgIHJldHVybiBfcGVyX3Byb2Nlc3Nfc3RhdGUudGVzdF9zdXBwcmVzc29yLklzSW1hZ2VEaWZmU3VwcHJlc3NlZCgKKyAgICAgICAgc2VsZi5pbnB1dF9maWxlbmFtZSkKKworICBkZWYgR2V0SW1hZ2VNYXRjaGluZ0FsZ29yaXRobShzZWxmKToKKyAgICByZXR1cm4gX3Blcl9wcm9jZXNzX3N0YXRlLnRlc3Rfc3VwcHJlc3Nvci5HZXRJbWFnZU1hdGNoaW5nQWxnb3JpdGhtKAorICAgICAgICBzZWxmLmlucHV0X2ZpbGVuYW1lKQorCisgIGRlZiBSdW5Db21tYW5kKHNlbGYsIGNvbW1hbmQsIHN0ZG91dD1Ob25lKToKKyAgICAiIiJSdW5zIGEgdGVzdCBjb21tYW5kLgorCisgICAgQXJnczoKKyAgICAgIGNvbW1hbmQ6IFRoZSBsaXN0IG9mIGNvbW1hbmQgYXJndW1lbnRzLgorICAgICAgc3Rkb3V0OiBPcHRpb25hbCBgZmlsZWAtbGlrZSBvYmplY3QgdG8gc2VuZCBzdGFuZGFyZCBvdXRwdXQuCisKKyAgICBSZXR1cm5zOgorICAgICAgVGhlIHRlc3QgcmVzdWx0LgorICAgICIiIgorCisgICAgIyBTdGFuZGFyZCBvdXRwdXQgYW5kIGVycm9yIGFyZSBkaXJlY3RlZCB0byB0aGUgdGVzdCBsb2cuIElmIGBzdGRvdXRgIHdhcworICAgICMgcHJvdmlkZWQsIHJlZGlyZWN0IHN0YW5kYXJkIG91dHB1dCB0byBpdCBpbnN0ZWFkLgorICAgIGlmIHN0ZG91dDoKKyAgICAgIGFzc2VydCBzdGRvdXQgIT0gc3VicHJvY2Vzcy5QSVBFCisgICAgICB0cnk6CisgICAgICAgIHN0ZG91dC5maWxlbm8oKQorICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICMgYHN0ZG91dGAgZG9lc24ndCBoYXZlIGEgZmlsZSBkZXNjcmlwdG9yLCBzbyBpdCBjYW4ndCBiZSBwYXNzZWQgdG8KKyAgICAgICAgIyBgc3VicHJvY2Vzcy5ydW4oKWAgZGlyZWN0bHkuCisgICAgICAgIG9yaWdpbmFsX3N0ZG91dCA9IHN0ZG91dAorICAgICAgICBzdGRvdXQgPSBzdWJwcm9jZXNzLlBJUEUKKyAgICAgIHN0ZGVyciA9IHN1YnByb2Nlc3MuUElQRQorICAgIGVsc2U6CisgICAgICBzdGRvdXQgPSBzdWJwcm9jZXNzLlBJUEUKKyAgICAgIHN0ZGVyciA9IHN1YnByb2Nlc3MuU1RET1VUCisKKyAgICB0ZXN0X3Jlc3VsdCA9IHNlbGYudGVzdF9jYXNlLk5ld1Jlc3VsdChyZXN1bHRfdHlwZXMuUEFTUykKKyAgICB0cnk6CisgICAgICBydW5fcmVzdWx0ID0gc3VicHJvY2Vzcy5ydW4oCisgICAgICAgICAgY29tbWFuZCwKKyAgICAgICAgICBzdGRvdXQ9c3Rkb3V0LAorICAgICAgICAgIHN0ZGVycj1zdGRlcnIsCisgICAgICAgICAgdGltZW91dD1URVNUX1RJTUVPVVQsCisgICAgICAgICAgY2hlY2s9RmFsc2UpCisgICAgICBpZiBydW5fcmVzdWx0LnJldHVybmNvZGUgIT0gMDoKKyAgICAgICAgdGVzdF9yZXN1bHQuc3RhdHVzID0gcmVzdWx0X3R5cGVzLkZBSUwKKyAgICAgICAgdGVzdF9yZXN1bHQucmVhc29uID0gJ0NvbW1hbmQge30gZXhpdGVkIHdpdGggY29kZSB7fScuZm9ybWF0KAorICAgICAgICAgICAgcnVuX3Jlc3VsdC5hcmdzLCBydW5fcmVzdWx0LnJldHVybmNvZGUpCisgICAgZXhjZXB0IHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQgYXMgdGltZW91dF9leHBpcmVkOgorICAgICAgcnVuX3Jlc3VsdCA9IHRpbWVvdXRfZXhwaXJlZAorICAgICAgdGVzdF9yZXN1bHQuc3RhdHVzID0gcmVzdWx0X3R5cGVzLlRJTUVPVVQKKyAgICAgIHRlc3RfcmVzdWx0LnJlYXNvbiA9ICdDb21tYW5kIHt9IHRpbWVkIG91dCcuZm9ybWF0KHJ1bl9yZXN1bHQuY21kKQorCisgICAgaWYgc3Rkb3V0ID09IHN1YnByb2Nlc3MuUElQRSBhbmQgc3RkZXJyID09IHN1YnByb2Nlc3MuUElQRToKKyAgICAgICMgQ29weSBjYXB0dXJlZCBzdGFuZGFyZCBvdXRwdXQsIGlmIGFueSwgdG8gdGhlIG9yaWdpbmFsIGBzdGRvdXRgLgorICAgICAgaWYgcnVuX3Jlc3VsdC5zdGRvdXQ6CisgICAgICAgIG9yaWdpbmFsX3N0ZG91dC53cml0ZShydW5fcmVzdWx0LnN0ZG91dCkKKworICAgIGlmIG5vdCB0ZXN0X3Jlc3VsdC5Jc1Bhc3MoKToKKyAgICAgICMgT24gZmFpbHVyZSwgcmVwb3J0IGNhcHR1cmVkIG91dHB1dCB0byB0aGUgdGVzdCBsb2cuCisgICAgICBpZiBzdGRlcnIgPT0gc3VicHJvY2Vzcy5TVERPVVQ6CisgICAgICAgIHRlc3RfcmVzdWx0LmxvZyA9IHJ1bl9yZXN1bHQuc3Rkb3V0CisgICAgICBlbHNlOgorICAgICAgICB0ZXN0X3Jlc3VsdC5sb2cgPSBydW5fcmVzdWx0LnN0ZGVycgorICAgIHJldHVybiB0ZXN0X3Jlc3VsdAorCisgIGRlZiBHZW5lcmF0ZUFuZFRlc3Qoc2VsZiwgdGVzdF9mdW5jdGlvbik6CisgICAgIiIiR2VuZXJhdGUgdGVzdCBpbnB1dCBhbmQgcnVuIHBkZml1bV90ZXN0LiIiIgorICAgIHRlc3RfcmVzdWx0ID0gc2VsZi5HZW5lcmF0ZSgpCisgICAgaWYgbm90IHRlc3RfcmVzdWx0LklzUGFzcygpOgorICAgICAgcmV0dXJuIHRlc3RfcmVzdWx0CisKKyAgICByZXR1cm4gdGVzdF9mdW5jdGlvbigpCisKKyAgZGVmIF9SZWdlbmVyYXRlSWZOZWVkZWQoc2VsZik6CisgICAgaWYgbm90IHNlbGYub3B0aW9ucy5yZWdlbmVyYXRlX2V4cGVjdGVkOgorICAgICAgcmV0dXJuCisgICAgaWYgc2VsZi5Jc1Jlc3VsdFN1cHByZXNzZWQoKSBvciBzZWxmLklzSW1hZ2VEaWZmU3VwcHJlc3NlZCgpOgorICAgICAgcmV0dXJuCisgICAgX3Blcl9wcm9jZXNzX3N0YXRlLmltYWdlX2RpZmZlci5SZWdlbmVyYXRlKAorICAgICAgICBzZWxmLmlucHV0X2ZpbGVuYW1lLAorICAgICAgICBzZWxmLnNvdXJjZV9kaXIsCisgICAgICAgIHNlbGYud29ya2luZ19kaXIsCisgICAgICAgIGltYWdlX21hdGNoaW5nX2FsZ29yaXRobT1zZWxmLkdldEltYWdlTWF0Y2hpbmdBbGdvcml0aG0oKSkKKworICBkZWYgR2VuZXJhdGUoc2VsZik6CisgICAgaW5wdXRfZXZlbnRfcGF0aCA9IG9zLnBhdGguam9pbihzZWxmLnNvdXJjZV9kaXIsIGYne3NlbGYudGVzdF9pZH0uZXZ0JykKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhpbnB1dF9ldmVudF9wYXRoKToKKyAgICAgIG91dHB1dF9ldmVudF9wYXRoID0gZid7b3MucGF0aC5zcGxpdGV4dChzZWxmLnBkZl9wYXRoKVswXX0uZXZ0JworICAgICAgc2h1dGlsLmNvcHlmaWxlKGlucHV0X2V2ZW50X3BhdGgsIG91dHB1dF9ldmVudF9wYXRoKQorCisgICAgdGVtcGxhdGVfcGF0aCA9IG9zLnBhdGguam9pbihzZWxmLnNvdXJjZV9kaXIsIGYne3NlbGYudGVzdF9pZH0uaW4nKQorICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyh0ZW1wbGF0ZV9wYXRoKToKKyAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHNlbGYudGVzdF9jYXNlLmlucHV0X3BhdGgpOgorICAgICAgICBzaHV0aWwuY29weWZpbGUoc2VsZi50ZXN0X2Nhc2UuaW5wdXRfcGF0aCwgc2VsZi5wZGZfcGF0aCkKKyAgICAgIHJldHVybiBzZWxmLnRlc3RfY2FzZS5OZXdSZXN1bHQocmVzdWx0X3R5cGVzLlBBU1MpCisKKyAgICByZXR1cm4gc2VsZi5SdW5Db21tYW5kKFsKKyAgICAgICAgc3lzLmV4ZWN1dGFibGUsIF9wZXJfcHJvY2Vzc19zdGF0ZS5maXh1cF9wYXRoLAorICAgICAgICBmJy0tb3V0cHV0LWRpcj17c2VsZi53b3JraW5nX2Rpcn0nLCB0ZW1wbGF0ZV9wYXRoCisgICAgXSkKKworICBkZWYgVGVzdFRleHQoc2VsZik6CisgICAgdHh0X3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi53b3JraW5nX2RpciwgZid7c2VsZi50ZXN0X2lkfS50eHQnKQorICAgIHdpdGggb3Blbih0eHRfcGF0aCwgJ3cnKSBhcyBvdXRmaWxlOgorICAgICAgY21kX3RvX3J1biA9IFsKKyAgICAgICAgICBfcGVyX3Byb2Nlc3Nfc3RhdGUucGRmaXVtX3Rlc3RfcGF0aCwgJy0tc2VuZC1ldmVudHMnLAorICAgICAgICAgIGYnLS10aW1lPXtURVNUX1NFRURfVElNRX0nCisgICAgICBdCisKKyAgICAgIGlmIHNlbGYub3B0aW9ucy5kaXNhYmxlX2phdmFzY3JpcHQ6CisgICAgICAgIGNtZF90b19ydW4uYXBwZW5kKCctLWRpc2FibGUtamF2YXNjcmlwdCcpCisKKyAgICAgIGlmIHNlbGYub3B0aW9ucy5kaXNhYmxlX3hmYToKKyAgICAgICAgY21kX3RvX3J1bi5hcHBlbmQoJy0tZGlzYWJsZS14ZmEnKQorCisgICAgICBjbWRfdG9fcnVuLmFwcGVuZChzZWxmLnBkZl9wYXRoKQorICAgICAgdGVzdF9yZXN1bHQgPSBzZWxmLlJ1bkNvbW1hbmQoY21kX3RvX3J1biwgc3Rkb3V0PW91dGZpbGUpCisgICAgICBpZiBub3QgdGVzdF9yZXN1bHQuSXNQYXNzKCk6CisgICAgICAgIHJldHVybiB0ZXN0X3Jlc3VsdAorCisgICAgIyBJZiB0aGUgZXhwZWN0ZWQgZmlsZSBkb2VzIG5vdCBleGlzdCwgdGhlIG91dHB1dCBpcyBleHBlY3RlZCB0byBiZSBlbXB0eS4KKyAgICBleHBlY3RlZF90eHRfcGF0aCA9IG9zLnBhdGguam9pbihzZWxmLnNvdXJjZV9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZid7c2VsZi50ZXN0X2lkfV9leHBlY3RlZC50eHQnKQorICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhleHBlY3RlZF90eHRfcGF0aCk6CisgICAgICByZXR1cm4gc2VsZi5fVmVyaWZ5RW1wdHlUZXh0KHR4dF9wYXRoKQorCisgICAgIyBJZiBKYXZhU2NyaXB0IGlzIGRpc2FibGVkLCB0aGUgb3V0cHV0IHNob3VsZCBiZSBlbXB0eS4KKyAgICAjIEhvd2V2ZXIsIGlmIHRoZSB0ZXN0IGlzIHN1cHByZXNzZWQgYW5kIEphdmFTY3JpcHQgaXMgZGlzYWJsZWQsIGRvIG5vdAorICAgICMgdmVyaWZ5IHRoYXQgdGhlIHRleHQgaXMgZW1wdHkgc28gdGhlIHN1cHByZXNzZWQgdGVzdCBkb2VzIG5vdCBzdXJwcmlzZS4KKyAgICBpZiBzZWxmLm9wdGlvbnMuZGlzYWJsZV9qYXZhc2NyaXB0IGFuZCBub3Qgc2VsZi5Jc1Jlc3VsdFN1cHByZXNzZWQoKToKKyAgICAgIHJldHVybiBzZWxmLl9WZXJpZnlFbXB0eVRleHQodHh0X3BhdGgpCisKKyAgICByZXR1cm4gc2VsZi5SdW5Db21tYW5kKFsKKyAgICAgICAgc3lzLmV4ZWN1dGFibGUsIF9wZXJfcHJvY2Vzc19zdGF0ZS50ZXh0X2RpZmZfcGF0aCwgZXhwZWN0ZWRfdHh0X3BhdGgsCisgICAgICAgIHR4dF9wYXRoCisgICAgXSkKKworICBkZWYgX1ZlcmlmeUVtcHR5VGV4dChzZWxmLCB0eHRfcGF0aCk6CisgICAgd2l0aCBvcGVuKHR4dF9wYXRoLCAicmIiKSBhcyB0eHRfZmlsZToKKyAgICAgIHR4dF9kYXRhID0gdHh0X2ZpbGUucmVhZCgpCisKKyAgICBpZiB0eHRfZGF0YToKKyAgICAgIHJldHVybiBzZWxmLnRlc3RfY2FzZS5OZXdSZXN1bHQoCisgICAgICAgICAgcmVzdWx0X3R5cGVzLkZBSUwsIGxvZz10eHRfZGF0YSwgcmVhc29uPWYne3R4dF9wYXRofSBzaG91bGQgYmUgZW1wdHknKQorCisgICAgcmV0dXJuIHNlbGYudGVzdF9jYXNlLk5ld1Jlc3VsdChyZXN1bHRfdHlwZXMuUEFTUykKKworICAjIFRPRE8oY3JidWcuY29tL3BkZml1bS8xNjU2KTogUmVtb3ZlIHdoZW4gcmVhZHkgdG8gZnVsbHkgc3dpdGNoIG92ZXIgdG8KKyAgIyBTa2lhIEdvbGQKKyAgZGVmIFRlc3RQaXhlbChzZWxmKToKKyAgICAjIFJlbW92ZSBhbnkgZXhpc3RpbmcgZ2VuZXJhdGVkIGltYWdlcyBmcm9tIHByZXZpb3VzIHJ1bnMuCisgICAgc2VsZi5hY3R1YWxfaW1hZ2VzID0gX3Blcl9wcm9jZXNzX3N0YXRlLmltYWdlX2RpZmZlci5HZXRBY3R1YWxGaWxlcygKKyAgICAgICAgc2VsZi5pbnB1dF9maWxlbmFtZSwgc2VsZi5zb3VyY2VfZGlyLCBzZWxmLndvcmtpbmdfZGlyKQorICAgIHNlbGYuX0NsZWFudXBQaXhlbFRlc3QoKQorCisgICAgIyBHZW5lcmF0ZSBpbWFnZXMuCisgICAgY21kX3RvX3J1biA9IFsKKyAgICAgICAgX3Blcl9wcm9jZXNzX3N0YXRlLnBkZml1bV90ZXN0X3BhdGgsICctLXNlbmQtZXZlbnRzJywgJy0tcG5nJywgJy0tbWQ1JywKKyAgICAgICAgZictLXRpbWU9e1RFU1RfU0VFRF9USU1FfScKKyAgICBdCisKKyAgICBpZiAndXNlX2FoZW0nIGluIHNlbGYuc291cmNlX2RpciBvciAndXNlX3N5bWJvbG5ldScgaW4gc2VsZi5zb3VyY2VfZGlyOgorICAgICAgY21kX3RvX3J1bi5hcHBlbmQoZictLWZvbnQtZGlyPXtfcGVyX3Byb2Nlc3Nfc3RhdGUuZm9udF9kaXJ9JykKKyAgICBlbHNlOgorICAgICAgY21kX3RvX3J1bi5hcHBlbmQoZictLWZvbnQtZGlyPXtfcGVyX3Byb2Nlc3Nfc3RhdGUudGhpcmRfcGFydHlfZm9udF9kaXJ9JykKKyAgICAgIGNtZF90b19ydW4uYXBwZW5kKCctLWNyb3Njb3JlLWZvbnQtbmFtZXMnKQorCisgICAgaWYgc2VsZi5vcHRpb25zLmRpc2FibGVfamF2YXNjcmlwdDoKKyAgICAgIGNtZF90b19ydW4uYXBwZW5kKCctLWRpc2FibGUtamF2YXNjcmlwdCcpCisKKyAgICBpZiBzZWxmLm9wdGlvbnMuZGlzYWJsZV94ZmE6CisgICAgICBjbWRfdG9fcnVuLmFwcGVuZCgnLS1kaXNhYmxlLXhmYScpCisKKyAgICBpZiBzZWxmLm9wdGlvbnMucmVuZGVyX29uZXNob3Q6CisgICAgICBjbWRfdG9fcnVuLmFwcGVuZCgnLS1yZW5kZXItb25lc2hvdCcpCisKKyAgICBpZiBzZWxmLm9wdGlvbnMucmV2ZXJzZV9ieXRlX29yZGVyOgorICAgICAgY21kX3RvX3J1bi5hcHBlbmQoJy0tcmV2ZXJzZS1ieXRlLW9yZGVyJykKKworICAgIGNtZF90b19ydW4uYXBwZW5kKHNlbGYucGRmX3BhdGgpCisKKyAgICB3aXRoIEJ5dGVzSU8oKSBhcyBjb21tYW5kX291dHB1dDoKKyAgICAgIHRlc3RfcmVzdWx0ID0gc2VsZi5SdW5Db21tYW5kKGNtZF90b19ydW4sIHN0ZG91dD1jb21tYW5kX291dHB1dCkKKyAgICAgIGlmIG5vdCB0ZXN0X3Jlc3VsdC5Jc1Bhc3MoKToKKyAgICAgICAgcmV0dXJuIHRlc3RfcmVzdWx0CisKKyAgICAgIHRlc3RfcmVzdWx0LmltYWdlX2FydGlmYWN0cyA9IFtdCisgICAgICBmb3IgbGluZSBpbiBjb21tYW5kX291dHB1dC5nZXR2YWx1ZSgpLnNwbGl0bGluZXMoKToKKyAgICAgICAgIyBFeHBlY3QgdGhpcyBmb3JtYXQ6IE1ENTo8cGF0aCB0byBpbWFnZSBmaWxlPjo8aGV4YWRlY2ltYWwgTUQ1IGhhc2g+CisgICAgICAgIGxpbmUgPSBieXRlcy5kZWNvZGUobGluZSkuc3RyaXAoKQorICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJ01ENTonKToKKyAgICAgICAgICBpbWFnZV9wYXRoLCBtZDVfaGFzaCA9IGxpbmVbNDpdLnJzcGxpdCgnOicsIDEpCisgICAgICAgICAgdGVzdF9yZXN1bHQuaW1hZ2VfYXJ0aWZhY3RzLmFwcGVuZCgKKyAgICAgICAgICAgICAgc2VsZi5fTmV3SW1hZ2VBcnRpZmFjdCgKKyAgICAgICAgICAgICAgICAgIGltYWdlX3BhdGg9aW1hZ2VfcGF0aC5zdHJpcCgpLCBtZDVfaGFzaD1tZDVfaGFzaC5zdHJpcCgpKSkKKworICAgIGlmIHNlbGYuYWN0dWFsX2ltYWdlczoKKyAgICAgIGltYWdlX2RpZmZzID0gX3Blcl9wcm9jZXNzX3N0YXRlLmltYWdlX2RpZmZlci5Db21wdXRlRGlmZmVyZW5jZXMoCisgICAgICAgICAgc2VsZi5pbnB1dF9maWxlbmFtZSwKKyAgICAgICAgICBzZWxmLnNvdXJjZV9kaXIsCisgICAgICAgICAgc2VsZi53b3JraW5nX2RpciwKKyAgICAgICAgICBpbWFnZV9tYXRjaGluZ19hbGdvcml0aG09c2VsZi5HZXRJbWFnZU1hdGNoaW5nQWxnb3JpdGhtKCkpCisgICAgICBpZiBpbWFnZV9kaWZmczoKKyAgICAgICAgdGVzdF9yZXN1bHQuc3RhdHVzID0gcmVzdWx0X3R5cGVzLkZBSUwKKyAgICAgICAgdGVzdF9yZXN1bHQucmVhc29uID0gJ0ltYWdlcyBkaWZmZXInCisKKyAgICAgICAgIyBNZXJnZSBpbWFnZSBkaWZmcyBpbnRvIHRlc3QgcmVzdWx0LgorICAgICAgICBkaWZmX21hcCA9IHt9CisgICAgICAgIGRpZmZfbG9nID0gW10KKyAgICAgICAgZm9yIGRpZmYgaW4gaW1hZ2VfZGlmZnM6CisgICAgICAgICAgZGlmZl9tYXBbZGlmZi5hY3R1YWxfcGF0aF0gPSBkaWZmCisgICAgICAgICAgZGlmZl9sb2cuYXBwZW5kKGYne29zLnBhdGguYmFzZW5hbWUoZGlmZi5hY3R1YWxfcGF0aCl9IHZzLiAnKQorICAgICAgICAgIGlmIGRpZmYuZXhwZWN0ZWRfcGF0aDoKKyAgICAgICAgICAgIGRpZmZfbG9nLmFwcGVuZChmJ3tvcy5wYXRoLmJhc2VuYW1lKGRpZmYuZXhwZWN0ZWRfcGF0aCl9XG4nKQorICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkaWZmX2xvZy5hcHBlbmQoJ21pc3NpbmcgZXhwZWN0ZWQgZmlsZVxuJykKKworICAgICAgICBmb3IgYXJ0aWZhY3QgaW4gdGVzdF9yZXN1bHQuaW1hZ2VfYXJ0aWZhY3RzOgorICAgICAgICAgIGFydGlmYWN0LmltYWdlX2RpZmYgPSBkaWZmX21hcC5nZXQoYXJ0aWZhY3QuaW1hZ2VfcGF0aCkKKyAgICAgICAgdGVzdF9yZXN1bHQubG9nID0gJycuam9pbihkaWZmX2xvZykuZW5jb2RlKCkKKworICAgIGVsaWYgX3Blcl9wcm9jZXNzX3N0YXRlLmVuZm9yY2VfZXhwZWN0ZWRfaW1hZ2VzOgorICAgICAgaWYgbm90IHNlbGYuSXNJbWFnZURpZmZTdXBwcmVzc2VkKCk6CisgICAgICAgIHRlc3RfcmVzdWx0LnN0YXR1cyA9IHJlc3VsdF90eXBlcy5GQUlMCisgICAgICAgIHRlc3RfcmVzdWx0LnJlYXNvbiA9ICdNaXNzaW5nIGV4cGVjdGVkIGltYWdlcycKKworICAgIGlmIG5vdCB0ZXN0X3Jlc3VsdC5Jc1Bhc3MoKToKKyAgICAgIHNlbGYuX1JlZ2VuZXJhdGVJZk5lZWRlZCgpCisgICAgICByZXR1cm4gdGVzdF9yZXN1bHQKKworICAgIGlmIF9wZXJfcHJvY2Vzc19zdGF0ZS5kZWxldGVfb3V0cHV0X29uX3N1Y2Nlc3M6CisgICAgICBzZWxmLl9DbGVhbnVwUGl4ZWxUZXN0KCkKKyAgICByZXR1cm4gdGVzdF9yZXN1bHQKKworICBkZWYgX05ld0ltYWdlQXJ0aWZhY3Qoc2VsZiwgKiwgaW1hZ2VfcGF0aCwgbWQ1X2hhc2gpOgorICAgIGFydGlmYWN0ID0gSW1hZ2VBcnRpZmFjdChpbWFnZV9wYXRoPWltYWdlX3BhdGgsIG1kNV9oYXNoPW1kNV9oYXNoKQorCisgICAgaWYgc2VsZi5vcHRpb25zLnJ1bl9za2lhX2dvbGQ6CisgICAgICBpZiBfcGVyX3Byb2Nlc3Nfc3RhdGUuR2V0U2tpYUdvbGRUZXN0ZXIoKS5VcGxvYWRUZXN0UmVzdWx0VG9Ta2lhR29sZCgKKyAgICAgICAgICBhcnRpZmFjdC5HZXRTa2lhR29sZElkKCksIGFydGlmYWN0LmltYWdlX3BhdGgpOgorICAgICAgICBhcnRpZmFjdC5za2lhX2dvbGRfc3RhdHVzID0gcmVzdWx0X3R5cGVzLlBBU1MKKyAgICAgIGVsc2U6CisgICAgICAgIGFydGlmYWN0LnNraWFfZ29sZF9zdGF0dXMgPSByZXN1bHRfdHlwZXMuRkFJTAorCisgICAgcmV0dXJuIGFydGlmYWN0CisKKyAgZGVmIF9DbGVhbnVwUGl4ZWxUZXN0KHNlbGYpOgorICAgIGZvciBpbWFnZV9maWxlIGluIHNlbGYuYWN0dWFsX2ltYWdlczoKKyAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGltYWdlX2ZpbGUpOgorICAgICAgICBvcy5yZW1vdmUoaW1hZ2VfZmlsZSkKKworCitAZGF0YWNsYXNzCitjbGFzcyBUZXN0Q2FzZToKKyAgIiIiRGVzY3JpcHRpb24gb2YgYSB0ZXN0IGNhc2UgdG8gcnVuLgorCisgIEF0dHJpYnV0ZXM6CisgICAgdGVzdF9pZDogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHRlc3QuCisgICAgaW5wdXRfcGF0aDogVGhlIGFic29sdXRlIHBhdGggdG8gdGhlIHRlc3QgZmlsZS4KKyAgIiIiCisgIHRlc3RfaWQ6IHN0cgorICBpbnB1dF9wYXRoOiBzdHIKKworICBkZWYgTmV3UmVzdWx0KHNlbGYsIHN0YXR1cywgKiprd2FyZ3MpOgorICAgICIiIkRlcml2ZXMgYSBuZXcgdGVzdCByZXN1bHQgY29ycmVzcG9uZGluZyB0byB0aGlzIHRlc3QgY2FzZS4iIiIKKyAgICByZXR1cm4gVGVzdFJlc3VsdCh0ZXN0X2lkPXNlbGYudGVzdF9pZCwgc3RhdHVzPXN0YXR1cywgKiprd2FyZ3MpCisKKworQGRhdGFjbGFzcworY2xhc3MgVGVzdFJlc3VsdDoKKyAgIiIiUmVzdWx0cyBmcm9tIHJ1bm5pbmcgYSB0ZXN0IGNhc2UuCisKKyAgQXR0cmlidXRlczoKKyAgICB0ZXN0X2lkOiBUaGUgY29ycmVzcG9uZGluZyB0ZXN0IGNhc2UgSUQuCisgICAgc3RhdHVzOiBUaGUgb3ZlcmFsbCBgcmVzdWx0X3R5cGVzYCBzdGF0dXMuCisgICAgZHVyYXRpb25fbWlsbGlzZWNvbmRzOiBUZXN0IHRpbWUgaW4gbWlsbGlzZWNvbmRzLgorICAgIGxvZzogT3B0aW9uYWwgbG9nIG9mIHRoZSB0ZXN0J3Mgb3V0cHV0LgorICAgIGltYWdlX2FydGZhY3RzOiBPcHRpb25hbCBsaXN0IG9mIGltYWdlIGFydGlmYWN0cy4KKyAgICByZWFzb246IE9wdGlvbmFsIHJlYXNvbiB3aHkgdGhlIHRlc3QgZmFpbGVkLgorICAiIiIKKyAgdGVzdF9pZDogc3RyCisgIHN0YXR1czogc3RyCisgIGR1cmF0aW9uX21pbGxpc2Vjb25kczogZmxvYXQgPSBOb25lCisgIGxvZzogc3RyID0gTm9uZQorICBpbWFnZV9hcnRpZmFjdHM6IGxpc3QgPSBmaWVsZChkZWZhdWx0X2ZhY3Rvcnk9bGlzdCkKKyAgcmVhc29uOiBzdHIgPSBOb25lCisKKyAgZGVmIElzUGFzcyhzZWxmKToKKyAgICAiIiJXaGV0aGVyIHRoZSB0ZXN0IHBhc3NlZC4iIiIKKyAgICByZXR1cm4gc2VsZi5zdGF0dXMgPT0gcmVzdWx0X3R5cGVzLlBBU1MKKworCitAZGF0YWNsYXNzCitjbGFzcyBJbWFnZUFydGlmYWN0OgorICAiIiJJbWFnZSBhcnRpZmFjdCBmb3IgYSB0ZXN0IHJlc3VsdC4KKworICBBdHRyaWJ1dGVzOgorICAgIGltYWdlX3BhdGg6IFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBpbWFnZSBmaWxlLgorICAgIG1kNV9oYXNoOiBUaGUgTUQ1IGhhc2ggb2YgdGhlIHBpeGVsIGJ1ZmZlci4KKyAgICBza2lhX2dvbGRfc3RhdHVzOiBPcHRpb25hbCBTa2lhIEdvbGQgc3RhdHVzLgorICAgIGltYWdlX2RpZmY6IE9wdGlvbmFsIGltYWdlIGRpZmYuCisgICIiIgorICBpbWFnZV9wYXRoOiBzdHIKKyAgbWQ1X2hhc2g6IHN0cgorICBza2lhX2dvbGRfc3RhdHVzOiBzdHIgPSBOb25lCisgIGltYWdlX2RpZmY6IHBuZ2RpZmZlci5JbWFnZURpZmYgPSBOb25lCisKKyAgZGVmIEdldFNraWFHb2xkSWQoc2VsZik6CisgICAgIyBUaGUgb3V0cHV0IGZpbGVuYW1lIHdpdGhvdXQgaW1hZ2UgZXh0ZW5zaW9uIGJlY29tZXMgdGhlIHRlc3QgSUQuIEZvcgorICAgICMgZXhhbXBsZSwgIi9wYXRoL3RvLy4uLi90ZXN0aW5nL2NvcnB1cy9leGFtcGxlXzAwNS5wZGYuMC5wbmciIGJlY29tZXMKKyAgICAjICJleGFtcGxlXzAwNS5wZGYuMCIuCisgICAgcmV0dXJuIF9HZXRUZXN0SWQob3MucGF0aC5iYXNlbmFtZShzZWxmLmltYWdlX3BhdGgpKQorCisgIGRlZiBHZXREaWZmU3RhdHVzKHNlbGYpOgorICAgIHJldHVybiByZXN1bHRfdHlwZXMuRkFJTCBpZiBzZWxmLmltYWdlX2RpZmYgZWxzZSByZXN1bHRfdHlwZXMuUEFTUworCisgIGRlZiBHZXREaWZmUmVhc29uKHNlbGYpOgorICAgIHJldHVybiBzZWxmLmltYWdlX2RpZmYucmVhc29uIGlmIHNlbGYuaW1hZ2VfZGlmZiBlbHNlIE5vbmUKKworICBkZWYgR2V0RGlmZkFydGlmYWN0cyhzZWxmKToKKyAgICBpZiBub3Qgc2VsZi5pbWFnZV9kaWZmOgorICAgICAgcmV0dXJuIE5vbmUKKyAgICBpZiBub3Qgc2VsZi5pbWFnZV9kaWZmLmV4cGVjdGVkX3BhdGggb3Igbm90IHNlbGYuaW1hZ2VfZGlmZi5kaWZmX3BhdGg6CisgICAgICByZXR1cm4gTm9uZQorICAgIHJldHVybiB7CisgICAgICAgICdhY3R1YWxfaW1hZ2UnOgorICAgICAgICAgICAgX0dldEFydGlmYWN0RnJvbUZpbGVQYXRoKHNlbGYuaW1hZ2VfcGF0aCksCisgICAgICAgICdleHBlY3RlZF9pbWFnZSc6CisgICAgICAgICAgICBfR2V0QXJ0aWZhY3RGcm9tRmlsZVBhdGgoc2VsZi5pbWFnZV9kaWZmLmV4cGVjdGVkX3BhdGgpLAorICAgICAgICAnaW1hZ2VfZGlmZic6CisgICAgICAgICAgICBfR2V0QXJ0aWZhY3RGcm9tRmlsZVBhdGgoc2VsZi5pbWFnZV9kaWZmLmRpZmZfcGF0aCkKKyAgICB9CisKKworY2xhc3MgVGVzdENhc2VNYW5hZ2VyOgorICAiIiJNYW5hZ2VzIGEgY29sbGVjdGlvbiBvZiB0ZXN0IGNhc2VzLiIiIgorCisgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICBzZWxmLnRlc3RfY2FzZXMgPSB7fQorCisgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgIHJldHVybiBsZW4oc2VsZi50ZXN0X2Nhc2VzKQorCisgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICByZXR1cm4gaXRlcihzZWxmLnRlc3RfY2FzZXMudmFsdWVzKCkpCisKKyAgZGVmIE5ld1Rlc3RDYXNlKHNlbGYsIGlucHV0X3BhdGgsICoqa3dhcmdzKToKKyAgICAiIiJDcmVhdGVzIGFuZCByZWdpc3RlcnMgYSBuZXcgdGVzdCBjYXNlLiIiIgorICAgIGlucHV0X2Jhc2VuYW1lID0gb3MucGF0aC5iYXNlbmFtZShpbnB1dF9wYXRoKQorICAgIHRlc3RfaWQgPSBfR2V0VGVzdElkKGlucHV0X2Jhc2VuYW1lKQorICAgIGlmIHRlc3RfaWQgaW4gc2VsZi50ZXN0X2Nhc2VzOgorICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICBmJ1Rlc3QgSUQgInt0ZXN0X2lkfSIgZGVyaXZlZCBmcm9tICJ7aW5wdXRfYmFzZW5hbWV9IiBtdXN0IGJlIHVuaXF1ZScpCisKKyAgICB0ZXN0X2Nhc2UgPSBUZXN0Q2FzZSh0ZXN0X2lkPXRlc3RfaWQsIGlucHV0X3BhdGg9aW5wdXRfcGF0aCwgKiprd2FyZ3MpCisgICAgc2VsZi50ZXN0X2Nhc2VzW3Rlc3RfaWRdID0gdGVzdF9jYXNlCisgICAgcmV0dXJuIHRlc3RfY2FzZQorCisgIGRlZiBHZXRUZXN0Q2FzZShzZWxmLCB0ZXN0X2lkKToKKyAgICAiIiJMb29rcyB1cCBhIHRlc3QgY2FzZSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgYnkgYE5ld1Rlc3RDYXNlKClgLiIiIgorICAgIHJldHVybiBzZWxmLnRlc3RfY2FzZXNbdGVzdF9pZF0KKworCitkZWYgX0dldFRlc3RJZChpbnB1dF9iYXNlbmFtZSk6CisgICIiIkNvbnN0cnVjdHMgYSB0ZXN0IElEIGJ5IHN0cmlwcGluZyB0aGUgbGFzdCBleHRlbnNpb24gZnJvbSB0aGUgYmFzZW5hbWUuIiIiCisgIHJldHVybiBvcy5wYXRoLnNwbGl0ZXh0KGlucHV0X2Jhc2VuYW1lKVswXQorCisKK2RlZiBfR2V0QXJ0aWZhY3RGcm9tRmlsZVBhdGgoZmlsZV9wYXRoKToKKyAgIiIiQ29uc3RydWN0cyBhIFJlc3VsdFNpbmsgYXJ0aWZhY3QgZnJvbSBhIGZpbGUgcGF0aC4iIiIKKyAgcmV0dXJuIHsnZmlsZVBhdGgnOiBmaWxlX3BhdGh9CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Rvb2xzL3RleHRfZGlmZi5weSBiL3Rlc3RpbmcvdG9vbHMvdGV4dF9kaWZmLnB5CmluZGV4IGZkZjQ1YTAuLjdkY2IxYzIgMTAwNzU1Ci0tLSBhL3Rlc3RpbmcvdG9vbHMvdGV4dF9kaWZmLnB5CisrKyBiL3Rlc3RpbmcvdG9vbHMvdGV4dF9kaWZmLnB5CkBAIC0xLDUgKzEsNSBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKyMgQ29weXJpZ2h0IDIwMTUgVGhlIFBERml1bSBBdXRob3JzCiAjIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICMgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtOSw3ICs5LDcgQEAKIAogZGVmIG1haW4oYXJndik6CiAgIGlmIGxlbihhcmd2KSAhPSAzOgotICAgIHByaW50ICclczogaW52YWxpZCBhcmd1bWVudHMnICUgYXJndlswXQorICAgIHByaW50KCclczogaW52YWxpZCBhcmd1bWVudHMnICUgYXJndlswXSkKICAgICByZXR1cm4gMgogICBmaWxlbmFtZTEgPSBhcmd2WzFdCiAgIGZpbGVuYW1lMiA9IGFyZ3ZbMl0KQEAgLTIxLDcgKzIxLDcgQEAKICAgICBkaWZmcyA9IGRpZmZsaWIudW5pZmllZF9kaWZmKAogICAgICAgICBzdHIxLCBzdHIyLCBmcm9tZmlsZT1maWxlbmFtZTEsIHRvZmlsZT1maWxlbmFtZTIpCiAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICBwcmludCAic29tZXRoaW5nIHdlbnQgYXN0cmF5OiAlcyIgJSBlCisgICAgcHJpbnQoInNvbWV0aGluZyB3ZW50IGFzdHJheTogJXMiICUgZSkKICAgICByZXR1cm4gMQogICBzdGF0dXNfY29kZSA9IDAKICAgZm9yIGRpZmYgaW4gZGlmZnM6CmRpZmYgLS1naXQgYS90ZXN0aW5nL3VuaXRfdGVzdF9tYWluLmNwcCBiL3Rlc3RpbmcvdW5pdF90ZXN0X21haW4uY3BwCmluZGV4IDVkNTAyNDkuLjE2ZThmMGYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvdW5pdF90ZXN0X21haW4uY3BwCisrKyBiL3Rlc3RpbmcvdW5pdF90ZXN0X21haW4uY3BwCkBAIC0xLDU3ICsxLDM4IEBACi0vLyBDb3B5cmlnaHQgMjAxNyBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAotI2luY2x1ZGUgPG1lbW9yeT4KLSNpbmNsdWRlIDxzdHJpbmc+Ci0KICNpbmNsdWRlICJjb3JlL2Z4Y3J0L2Z4X21lbW9yeS5oIgogI2luY2x1ZGUgInRlc3RpbmcvZ21vY2svaW5jbHVkZS9nbW9jay9nbW9jay5oIgogI2luY2x1ZGUgInRlc3RpbmcvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC5oIgotI2luY2x1ZGUgInRlc3RpbmcvdGVzdF9zdXBwb3J0LmgiCisjaW5jbHVkZSAidGVzdGluZy9wZGZfdGVzdF9lbnZpcm9ubWVudC5oIgogCiAjaWZkZWYgUERGX0VOQUJMRV9WOAotI2luY2x1ZGUgInRlc3RpbmcvdjhfaW5pdGlhbGl6ZXIuaCIKLSNpbmNsdWRlICJ2OC9pbmNsdWRlL3Y4LXBsYXRmb3JtLmgiCi0jaW5jbHVkZSAidjgvaW5jbHVkZS92OC5oIgotI2VuZGlmICAvLyBQREZfRU5BQkxFX1Y4Ci0KKyNpbmNsdWRlICJ0ZXN0aW5nL3Y4X3Rlc3RfZW52aXJvbm1lbnQuaCIKICNpZmRlZiBQREZfRU5BQkxFX1hGQQotI2luY2x1ZGUgInRlc3RpbmcveGZhX3VuaXRfdGVzdF9zdXBwb3J0LmgiCisjaW5jbHVkZSAidGVzdGluZy94ZmFfdGVzdF9lbnZpcm9ubWVudC5oIgogI2VuZGlmICAvLyBQREZfRU5BQkxFX1hGQQorI2VuZGlmICAvLyBQREZfRU5BQkxFX1Y4CiAKIC8vIENhbid0IHVzZSBndGVzdC1wcm92aWRlZCBtYWluIHNpbmNlIHdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBwYXJ0aXRpb24KLS8vIGFsbG9jIGJlZm9yZSBpbnZva2luZyBhbnkgdGVzdC4KKy8vIGFsbG9jIGJlZm9yZSBpbnZva2luZyBhbnkgdGVzdCwgYW5kIGFkZCB0ZXN0IGVudmlyb25tZW50cy4KIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgewotICBGWE1FTV9Jbml0aWFsaXplUGFydGl0aW9uQWxsb2MoKTsKKyAgRlhfSW5pdGlhbGl6ZU1lbW9yeUFsbG9jYXRvcnMoKTsKKworICAvLyBQREYgdGVzdCBlbnZpcm9ubWVudCB3aWxsIGJlIGRlbGV0ZWQgYnkgZ3Rlc3QuCisgIEFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChuZXcgUERGVGVzdEVudmlyb25tZW50KCkpOwogCiAjaWZkZWYgUERGX0VOQUJMRV9WOAotICBzdGQ6OnVuaXF1ZV9wdHI8djg6OlBsYXRmb3JtPiBwbGF0Zm9ybTsKLSNpZmRlZiBWOF9VU0VfRVhURVJOQUxfU1RBUlRVUF9EQVRBCi0gIHN0YXRpYyB2ODo6U3RhcnR1cERhdGEqIHNuYXBzaG90ID0gbmV3IHY4OjpTdGFydHVwRGF0YTsKLSAgcGxhdGZvcm0gPQotICAgICAgSW5pdGlhbGl6ZVY4Rm9yUERGaXVtV2l0aFN0YXJ0dXBEYXRhKGFyZ3ZbMF0sIHN0ZDo6c3RyaW5nKCksIHNuYXBzaG90KTsKLSNlbHNlICAvLyBWOF9VU0VfRVhURVJOQUxfU1RBUlRVUF9EQVRBCi0gIHBsYXRmb3JtID0gSW5pdGlhbGl6ZVY4Rm9yUERGaXVtKGFyZ3ZbMF0pOwotI2VuZGlmICAvLyBWOF9VU0VfRVhURVJOQUxfU1RBUlRVUF9EQVRBCi0jZW5kaWYgIC8vIFBERl9FTkFCTEVfVjgKLQotICBJbml0aWFsaXplUERGVGVzdEVudmlyb25tZW50KCk7CisgIC8vIFY4IHRlc3QgZW52aXJvbm1lbnQgd2lsbCBiZSBkZWxldGVkIGJ5IGd0ZXN0LgorICBBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IFY4VGVzdEVudmlyb25tZW50KGFyZ3ZbMF0pKTsKICNpZmRlZiBQREZfRU5BQkxFX1hGQQotICBJbml0aWFsaXplWEZBVGVzdEVudmlyb25tZW50KCk7CisgIC8vIFhGQSB0ZXN0IGVudmlyb25tZW50IHdpbGwgYmUgZGVsZXRlZCBieSBndGVzdC4KKyAgQWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBYRkFUZXN0RW52aXJvbm1lbnQoKSk7CiAjZW5kaWYgIC8vIFBERl9FTkFCTEVfWEZBCisjZW5kaWYgIC8vIFBERl9FTkFCTEVfVjgKIAogICB0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CiAgIHRlc3Rpbmc6OkluaXRHb29nbGVNb2NrKCZhcmdjLCBhcmd2KTsKIAotICBpbnQgcmV0X3ZhbCA9IFJVTl9BTExfVEVTVFMoKTsKLQotICBEZXN0cm95UERGVGVzdEVudmlyb25tZW50KCk7Ci0gIC8vIE5PVEU6IFhGQSB0ZXN0IGVudmlyb25tZW50LCBpZiBwcmVzZW50LCBkZXN0cm95ZWQgYnkgZ3Rlc3QuCi0KLSNpZmRlZiBQREZfRU5BQkxFX1Y4Ci0gIHY4OjpWODo6U2h1dGRvd25QbGF0Zm9ybSgpOwotI2VuZGlmICAvLyBQREZfRU5BQkxFX1Y4Ci0KLSAgcmV0dXJuIHJldF92YWw7CisgIHJldHVybiBSVU5fQUxMX1RFU1RTKCk7CiB9CmRpZmYgLS1naXQgYS90ZXN0aW5nL3V0aWxzL2JpdG1hcF9zYXZlci5jcHAgYi90ZXN0aW5nL3V0aWxzL2JpdG1hcF9zYXZlci5jcHAKaW5kZXggNTI0YTlmNi4uNDBhMTMzOSAxMDA2NDQKLS0tIGEvdGVzdGluZy91dGlscy9iaXRtYXBfc2F2ZXIuY3BwCisrKyBiL3Rlc3RpbmcvdXRpbHMvYml0bWFwX3NhdmVyLmNwcApAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAyMDE4IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTggVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCkBAIC05LDcgKzksNyBAQAogCiAjaW5jbHVkZSAiY29yZS9meGNydC9meF9zYWZlX3R5cGVzLmgiCiAjaW5jbHVkZSAidGVzdGluZy9pbWFnZV9kaWZmL2ltYWdlX2RpZmZfcG5nLmgiCi0jaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9jaGVjay5oIgogCiAvLyBzdGF0aWMKIHZvaWQgQml0bWFwU2F2ZXI6OldyaXRlQml0bWFwVG9QbmcoRlBERl9CSVRNQVAgYml0bWFwLApAQCAtMjcsOCArMjcsMTEgQEAKICAgICAgIHBkZml1bTo6YmFzZTo6VmFsdWVPckRpZUZvclR5cGU8c2l6ZV90PihzaXplKSk7CiAKICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gcG5nOwotICBpZiAoRlBERkJpdG1hcF9HZXRGb3JtYXQoYml0bWFwKSA9PSBGUERGQml0bWFwX0dyYXkpIHsKKyAgaW50IGZvcm1hdCA9IEZQREZCaXRtYXBfR2V0Rm9ybWF0KGJpdG1hcCk7CisgIGlmIChmb3JtYXQgPT0gRlBERkJpdG1hcF9HcmF5KSB7CiAgICAgcG5nID0gaW1hZ2VfZGlmZl9wbmc6OkVuY29kZUdyYXlQTkcoaW5wdXQsIHdpZHRoLCBoZWlnaHQsIHN0cmlkZSk7CisgIH0gZWxzZSBpZiAoZm9ybWF0ID09IEZQREZCaXRtYXBfQkdSKSB7CisgICAgcG5nID0gaW1hZ2VfZGlmZl9wbmc6OkVuY29kZUJHUlBORyhpbnB1dCwgd2lkdGgsIGhlaWdodCwgc3RyaWRlKTsKICAgfSBlbHNlIHsKICAgICBwbmcgPSBpbWFnZV9kaWZmX3BuZzo6RW5jb2RlQkdSQVBORyhpbnB1dCwgd2lkdGgsIGhlaWdodCwgc3RyaWRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qZGlzY2FyZF90cmFuc3BhcmVuY3k9Ki9mYWxzZSk7CmRpZmYgLS1naXQgYS90ZXN0aW5nL3V0aWxzL2JpdG1hcF9zYXZlci5oIGIvdGVzdGluZy91dGlscy9iaXRtYXBfc2F2ZXIuaAppbmRleCA5ZjkzMWZjLi44YTliMmM2IDEwMDY0NAotLS0gYS90ZXN0aW5nL3V0aWxzL2JpdG1hcF9zYXZlci5oCisrKyBiL3Rlc3RpbmcvdXRpbHMvYml0bWFwX3NhdmVyLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOCBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE4IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy91dGlscy9maWxlX3V0aWwuY3BwIGIvdGVzdGluZy91dGlscy9maWxlX3V0aWwuY3BwCmluZGV4IDVkMjZkOTguLjY5OThmMGUgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvdXRpbHMvZmlsZV91dGlsLmNwcAorKysgYi90ZXN0aW5nL3V0aWxzL2ZpbGVfdXRpbC5jcHAKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE5IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtOCw2ICs4LDcgQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4KIAogI2luY2x1ZGUgInRlc3RpbmcvdXRpbHMvcGF0aF9zZXJ2aWNlLmgiCisjaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9udW1lcmljcy9zYWZlX2NvbnZlcnNpb25zLmgiCiAKIHN0ZDo6dW5pcXVlX3B0cjxjaGFyLCBwZGZpdW06OkZyZWVEZWxldGVyPiBHZXRGaWxlQ29udGVudHMoY29uc3QgY2hhciogZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCogcmV0bGVuKSB7CkBAIC01NSw3ICs1Niw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyKiBwQnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzaXplKSB7CiAgIG1lbWNweShwQnVmLCBmaWxlX2NvbnRlbnRzXy5nZXQoKSArIHBvcywgc2l6ZSk7Ci0gIHJldHVybiBzaXplOworICByZXR1cm4gcGRmaXVtOjpiYXNlOjpjaGVja2VkX2Nhc3Q8aW50PihzaXplKTsKIH0KIAogLy8gc3RhdGljCmRpZmYgLS1naXQgYS90ZXN0aW5nL3V0aWxzL2ZpbGVfdXRpbC5oIGIvdGVzdGluZy91dGlscy9maWxlX3V0aWwuaAppbmRleCAzNTJiODgyLi5lOTFmM2Q0IDEwMDY0NAotLS0gYS90ZXN0aW5nL3V0aWxzL2ZpbGVfdXRpbC5oCisrKyBiL3Rlc3RpbmcvdXRpbHMvZmlsZV91dGlsLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE5IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApkaWZmIC0tZ2l0IGEvdGVzdGluZy91dGlscy9oYXNoLmNwcCBiL3Rlc3RpbmcvdXRpbHMvaGFzaC5jcHAKaW5kZXggMzE3MGRlMi4uNWI0YTJjZiAxMDA2NDQKLS0tIGEvdGVzdGluZy91dGlscy9oYXNoLmNwcAorKysgYi90ZXN0aW5nL3V0aWxzL2hhc2guY3BwCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTkgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTE4LDggKzE4LDggQEAKICAgcmV0dXJuIHJldDsKIH0KIAotc3RkOjpzdHJpbmcgR2VuZXJhdGVNRDVCYXNlMTYoY29uc3QgdWludDhfdCogZGF0YSwgdWludDMyX3Qgc2l6ZSkgeworc3RkOjpzdHJpbmcgR2VuZXJhdGVNRDVCYXNlMTYocGRmaXVtOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+IGRhdGEpIHsKICAgdWludDhfdCBkaWdlc3RbMTZdOwotICBDUllQVF9NRDVHZW5lcmF0ZSh7ZGF0YSwgc2l6ZX0sIGRpZ2VzdCk7CisgIENSWVBUX01ENUdlbmVyYXRlKGRhdGEsIGRpZ2VzdCk7CiAgIHJldHVybiBDcnlwdFRvQmFzZTE2KGRpZ2VzdCk7CiB9CmRpZmYgLS1naXQgYS90ZXN0aW5nL3V0aWxzL2hhc2guaCBiL3Rlc3RpbmcvdXRpbHMvaGFzaC5oCmluZGV4IDBlNTUxNjUuLmMyMTY0ZTggMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvdXRpbHMvaGFzaC5oCisrKyBiL3Rlc3RpbmcvdXRpbHMvaGFzaC5oCkBAIC0xLDQgKzEsNCBAQAotLy8gQ29weXJpZ2h0IDIwMTkgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKQEAgLTcsNyArNyw5IEBACiAKICNpbmNsdWRlIDxzdHJpbmc+CiAKKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL3NwYW4uaCIKKwogc3RkOjpzdHJpbmcgQ3J5cHRUb0Jhc2UxNihjb25zdCB1aW50OF90KiBkaWdlc3QpOwotc3RkOjpzdHJpbmcgR2VuZXJhdGVNRDVCYXNlMTYoY29uc3QgdWludDhfdCogZGF0YSwgdWludDMyX3Qgc2l6ZSk7CitzdGQ6OnN0cmluZyBHZW5lcmF0ZU1ENUJhc2UxNihwZGZpdW06OnNwYW48Y29uc3QgdWludDhfdD4gZGF0YSk7CiAKICNlbmRpZiAgLy8gVEVTVElOR19VVElMU19IQVNIX0hfCmRpZmYgLS1naXQgYS90ZXN0aW5nL3V0aWxzL3BhdGhfc2VydmljZS5jcHAgYi90ZXN0aW5nL3V0aWxzL3BhdGhfc2VydmljZS5jcHAKaW5kZXggNWUxY2UzOS4uMDFhMWJmZSAxMDA2NDQKLS0tIGEvdGVzdGluZy91dGlscy9wYXRoX3NlcnZpY2UuY3BwCisrKyBiL3Rlc3RpbmcvdXRpbHMvcGF0aF9zZXJ2aWNlLmNwcApAQCAtMSwxNCArMSwxOSBAQAotLy8gQ29weXJpZ2h0IDIwMTUgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBDb3B5cmlnaHQgMjAxNSBUaGUgUERGaXVtIEF1dGhvcnMKIC8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKIC8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCiAKICNpbmNsdWRlICJ0ZXN0aW5nL3V0aWxzL3BhdGhfc2VydmljZS5oIgogCisjaW5jbHVkZSA8c3RkZGVmLmg+CisKICNpZmRlZiBfV0lOMzIKICNpbmNsdWRlIDxXaW5kb3dzLmg+CiAjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKICNpbmNsdWRlIDxtYWNoLW8vZHlsZC5oPgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjZWxpZiBkZWZpbmVkKF9fRnVjaHNpYV9fKQorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZWxzZSAgLy8gTGludXgKICNpbmNsdWRlIDxsaW51eC9saW1pdHMuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgpAQCAtMTgsMTAgKzIzLDEyIEBACiAjaW5jbHVkZSA8c3RyaW5nPgogCiAjaW5jbHVkZSAiY29yZS9meGNydC9meF9zeXN0ZW0uaCIKKyNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL2NoZWNrLmgiCiAKIG5hbWVzcGFjZSB7CiAKLSNpZiBkZWZpbmVkKF9fQVBQTEVfXykgfHwgKGRlZmluZWQoQU5EUk9JRCkgJiYgX19BTkRST0lEX0FQSV9fIDwgMjEpCisjaWYgZGVmaW5lZChfX0FQUExFX18pIHx8IGRlZmluZWQoX19GdWNoc2lhX18pIHx8IFwKKyAgICAoZGVmaW5lZChBTkRST0lEKSAmJiBfX0FORFJPSURfQVBJX18gPCAyMSkKIHVzaW5nIHN0YXRfd3JhcHBlcl90ID0gc3RydWN0IHN0YXQ7CiAKIGludCBDYWxsU3RhdChjb25zdCBjaGFyKiBwYXRoLCBzdGF0X3dyYXBwZXJfdCogc2IpIHsKQEAgLTY4LDcgKzc1LDcgQEAKICAgICByZXR1cm4gZmFsc2U7CiAgICpwYXRoID0gc3RkOjpzdHJpbmcocGF0aF9idWZmZXIpOwogI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCi0gIEFTU0VSVChwYXRoKTsKKyAgRENIRUNLKHBhdGgpOwogICB1bnNpZ25lZCBpbnQgcGF0aF9sZW5ndGggPSAwOwogICBfTlNHZXRFeGVjdXRhYmxlUGF0aChOVUxMLCAmcGF0aF9sZW5ndGgpOwogICBpZiAocGF0aF9sZW5ndGggPT0gMCkKQEAgLTg5LDEwICs5NiwxMCBAQAogI2VuZGlmICAvLyBfV0lOMzIKIAogICAvLyBHZXQgdGhlIGRpcmVjdG9yeSBwYXRoLgotICBzdGQ6OnNpemVfdCBwb3MgPSBwYXRoLT5zaXplKCkgLSAxOworICBzaXplX3QgcG9zID0gcGF0aC0+c2l6ZSgpIC0gMTsKICAgaWYgKEVuZHNXaXRoU2VwYXJhdG9yKCpwYXRoKSkKICAgICBwb3MtLTsKLSAgc3RkOjpzaXplX3QgZm91bmQgPSBwYXRoLT5maW5kX2xhc3Rfb2YoUEFUSF9TRVBBUkFUT1IsIHBvcyk7CisgIHNpemVfdCBmb3VuZCA9IHBhdGgtPmZpbmRfbGFzdF9vZihQQVRIX1NFUEFSQVRPUiwgcG9zKTsKICAgaWYgKGZvdW5kID09IHN0ZDo6c3RyaW5nOjpucG9zKQogICAgIHJldHVybiBmYWxzZTsKICAgcGF0aC0+cmVzaXplKGZvdW5kKTsKQEAgLTE2MCwzICsxNjcsMzkgQEAKICAgcGF0aC0+YXBwZW5kKGZpbGVfbmFtZSk7CiAgIHJldHVybiB0cnVlOwogfQorCisvLyBzdGF0aWMKK2Jvb2wgUGF0aFNlcnZpY2U6OkdldFRoaXJkUGFydHlGaWxlUGF0aChjb25zdCBzdGQ6OnN0cmluZyYgZmlsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nKiBwYXRoKSB7CisgIGlmICghR2V0U291cmNlRGlyKHBhdGgpKQorICAgIHJldHVybiBmYWxzZTsKKworICBpZiAoIUVuZHNXaXRoU2VwYXJhdG9yKCpwYXRoKSkKKyAgICBwYXRoLT5wdXNoX2JhY2soUEFUSF9TRVBBUkFUT1IpOworCisgIHN0ZDo6c3RyaW5nIHBvdGVudGlhbF9wYXRoID0gKnBhdGg7CisgIHBvdGVudGlhbF9wYXRoLmFwcGVuZCgidGhpcmRfcGFydHkiKTsKKworICAvLyBVc2UgdGhpcmRfcGFydHkvYmlnaW50IGFzIGEgd2F5IHRvIGRpc3Rpbmd1aXNoIFBERml1bSdzIHZzLiBvdGhlcidzLgorICBzdGQ6OnN0cmluZyBiaWdpbnQgPSBwb3RlbnRpYWxfcGF0aCArIFBBVEhfU0VQQVJBVE9SICsgImJpZ2ludCI7CisgIGlmIChQYXRoU2VydmljZTo6RGlyZWN0b3J5RXhpc3RzKGJpZ2ludCkpIHsKKyAgICAqcGF0aCA9IHBvdGVudGlhbF9wYXRoOworICAgIHBhdGgtPmFwcGVuZChQQVRIX1NFUEFSQVRPUiArIGZpbGVfbmFtZSk7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKworICBwb3RlbnRpYWxfcGF0aCA9ICpwYXRoOworICBwb3RlbnRpYWxfcGF0aC5hcHBlbmQoInRoaXJkX3BhcnR5Iik7CisgIHBvdGVudGlhbF9wYXRoLnB1c2hfYmFjayhQQVRIX1NFUEFSQVRPUik7CisgIHBvdGVudGlhbF9wYXRoLmFwcGVuZCgicGRmaXVtIik7CisgIHBvdGVudGlhbF9wYXRoLnB1c2hfYmFjayhQQVRIX1NFUEFSQVRPUik7CisgIHBvdGVudGlhbF9wYXRoLmFwcGVuZCgidGhpcmRfcGFydHkiKTsKKyAgYmlnaW50ID0gcG90ZW50aWFsX3BhdGggKyBQQVRIX1NFUEFSQVRPUiArICJiaWdpbnQiOworICBpZiAoUGF0aFNlcnZpY2U6OkRpcmVjdG9yeUV4aXN0cyhwb3RlbnRpYWxfcGF0aCkpIHsKKyAgICAqcGF0aCA9IHBvdGVudGlhbF9wYXRoOworICAgIHBhdGgtPmFwcGVuZChQQVRIX1NFUEFSQVRPUiArIGZpbGVfbmFtZSk7CisgICAgcmV0dXJuIHRydWU7CisgIH0KKworICByZXR1cm4gZmFsc2U7Cit9CmRpZmYgLS1naXQgYS90ZXN0aW5nL3V0aWxzL3BhdGhfc2VydmljZS5oIGIvdGVzdGluZy91dGlscy9wYXRoX3NlcnZpY2UuaAppbmRleCA2M2RmODA4Li5hNjU4MmMzIDEwMDY0NAotLS0gYS90ZXN0aW5nL3V0aWxzL3BhdGhfc2VydmljZS5oCisrKyBiL3Rlc3RpbmcvdXRpbHMvcGF0aF9zZXJ2aWNlLmgKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxNSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE1IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtMzcsNSArMzcsOSBAQAogCiAgIC8vIEdldCB0aGUgZnVsbCBwYXRoIGZvciBhIHRlc3QgZmlsZSB1bmRlciB0aGUgdGVzdCBkYXRhIGRpcmVjdG9yeS4KICAgc3RhdGljIGJvb2wgR2V0VGVzdEZpbGVQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWxlX25hbWUsIHN0ZDo6c3RyaW5nKiBwYXRoKTsKKworICAvLyBHZXQgdGhlIGZ1bGwgcGF0aCBmb3IgYSBmaWxlIHVuZGVyIHRoZSB0aGlyZC1wYXJ0eSBkaXJlY3RvcnkuCisgIHN0YXRpYyBib29sIEdldFRoaXJkUGFydHlGaWxlUGF0aChjb25zdCBzdGQ6OnN0cmluZyYgZmlsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcqIHBhdGgpOwogfTsKICNlbmRpZiAgLy8gVEVTVElOR19VVElMU19QQVRIX1NFUlZJQ0VfSF8KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdjhfaW5pdGlhbGl6ZXIuY3BwIGIvdGVzdGluZy92OF9pbml0aWFsaXplci5jcHAKaW5kZXggODU2NGIyZS4uZjRlZDYxMSAxMDA2NDQKLS0tIGEvdGVzdGluZy92OF9pbml0aWFsaXplci5jcHAKKysrIGIvdGVzdGluZy92OF9pbml0aWFsaXplci5jcHAKQEAgLTEsNCArMSw0IEBACi0vLyBDb3B5cmlnaHQgMjAxOSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE5IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIApAQCAtOSw4ICs5LDE0IEBACiAjaW5jbHVkZSAicHVibGljL2ZwZGZ2aWV3LmgiCiAjaW5jbHVkZSAidGVzdGluZy91dGlscy9maWxlX3V0aWwuaCIKICNpbmNsdWRlICJ0ZXN0aW5nL3V0aWxzL3BhdGhfc2VydmljZS5oIgorI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2UvbnVtZXJpY3Mvc2FmZV9jb252ZXJzaW9ucy5oIgogI2luY2x1ZGUgInY4L2luY2x1ZGUvbGlicGxhdGZvcm0vbGlicGxhdGZvcm0uaCIKLSNpbmNsdWRlICJ2OC9pbmNsdWRlL3Y4LmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS92OC1pbml0aWFsaXphdGlvbi5oIgorI2luY2x1ZGUgInY4L2luY2x1ZGUvdjgtc25hcHNob3QuaCIKKworI2lmZGVmIFBERl9FTkFCTEVfWEZBCisjaW5jbHVkZSAidjgvaW5jbHVkZS9jcHBnYy9wbGF0Zm9ybS5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSB7CiAKQEAgLTQ5LDIwICs1NSwyNyBAQAogICAgIHJldHVybiBmYWxzZTsKIAogICByZXN1bHRfZGF0YS0+ZGF0YSA9IGRhdGFfYnVmZmVyLnJlbGVhc2UoKTsKLSAgcmVzdWx0X2RhdGEtPnJhd19zaXplID0gZGF0YV9sZW5ndGg7CisgIHJlc3VsdF9kYXRhLT5yYXdfc2l6ZSA9IHBkZml1bTo6YmFzZTo6Y2hlY2tlZF9jYXN0PGludD4oZGF0YV9sZW5ndGgpOwogICByZXR1cm4gdHJ1ZTsKIH0KICNlbmRpZiAgLy8gVjhfVVNFX0VYVEVSTkFMX1NUQVJUVVBfREFUQQogCi1zdGQ6OnVuaXF1ZV9wdHI8djg6OlBsYXRmb3JtPiBJbml0aWFsaXplVjhDb21tb24oY29uc3Qgc3RkOjpzdHJpbmcmIGV4ZV9wYXRoKSB7CitzdGQ6OnVuaXF1ZV9wdHI8djg6OlBsYXRmb3JtPiBJbml0aWFsaXplVjhDb21tb24oY29uc3Qgc3RkOjpzdHJpbmcmIGV4ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBqc19mbGFncykgewogICB2ODo6Vjg6OkluaXRpYWxpemVJQ1VEZWZhdWx0TG9jYXRpb24oZXhlX3BhdGguY19zdHIoKSk7CiAKICAgc3RkOjp1bmlxdWVfcHRyPHY4OjpQbGF0Zm9ybT4gcGxhdGZvcm0gPSB2ODo6cGxhdGZvcm06Ok5ld0RlZmF1bHRQbGF0Zm9ybSgpOwogICB2ODo6Vjg6OkluaXRpYWxpemVQbGF0Zm9ybShwbGF0Zm9ybS5nZXQoKSk7CisjaWZkZWYgUERGX0VOQUJMRV9YRkEKKyAgY3BwZ2M6OkluaXRpYWxpemVQcm9jZXNzKHBsYXRmb3JtLT5HZXRQYWdlQWxsb2NhdG9yKCkpOworI2VuZGlmCiAKICAgY29uc3QgY2hhciogcmVjb21tZW5kZWRfdjhfZmxhZ3MgPSBGUERGX0dldFJlY29tbWVuZGVkVjhGbGFncygpOwogICB2ODo6Vjg6OlNldEZsYWdzRnJvbVN0cmluZyhyZWNvbW1lbmRlZF92OF9mbGFncyk7CiAKKyAgaWYgKCFqc19mbGFncy5lbXB0eSgpKQorICAgIHY4OjpWODo6U2V0RmxhZ3NGcm9tU3RyaW5nKGpzX2ZsYWdzLmNfc3RyKCkpOworCiAgIC8vIEJ5IGVuYWJsaW5nIHByZWRpY3RhYmxlIG1vZGUsIFY4IHdvbid0IHBvc3QgYW55IGJhY2tncm91bmQgdGFza3MuCiAgIC8vIEJ5IGVuYWJsaW5nIEdDLCBpdCBtYWtlcyBpdCBlYXNpZXIgdG8gY2hhc2UgdXNlLWFmdGVyLWZyZWUuCiAgIHN0YXRpYyBjb25zdCBjaGFyIGtBZGRpdGlvbmFsVjhGbGFnc1tdID0gIi0tcHJlZGljdGFibGUgLS1leHBvc2UtZ2MiOwpAQCAtNzcsOSArOTAsMTEgQEAKICNpZmRlZiBWOF9VU0VfRVhURVJOQUxfU1RBUlRVUF9EQVRBCiBzdGQ6OnVuaXF1ZV9wdHI8djg6OlBsYXRmb3JtPiBJbml0aWFsaXplVjhGb3JQREZpdW1XaXRoU3RhcnR1cERhdGEoCiAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGV4ZV9wYXRoLAorICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBqc19mbGFncywKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgYmluX2RpciwKICAgICB2ODo6U3RhcnR1cERhdGEqIHNuYXBzaG90X2Jsb2IpIHsKLSAgc3RkOjp1bmlxdWVfcHRyPHY4OjpQbGF0Zm9ybT4gcGxhdGZvcm0gPSBJbml0aWFsaXplVjhDb21tb24oZXhlX3BhdGgpOworICBzdGQ6OnVuaXF1ZV9wdHI8djg6OlBsYXRmb3JtPiBwbGF0Zm9ybSA9CisgICAgICBJbml0aWFsaXplVjhDb21tb24oZXhlX3BhdGgsIGpzX2ZsYWdzKTsKICAgaWYgKHNuYXBzaG90X2Jsb2IpIHsKICAgICBpZiAoIUdldEV4dGVybmFsRGF0YShleGVfcGF0aCwgYmluX2RpciwgInNuYXBzaG90X2Jsb2IuYmluIiwgc25hcHNob3RfYmxvYikpCiAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTg5LDcgKzEwNCwxNiBAQAogfQogI2Vsc2UgICAvLyBWOF9VU0VfRVhURVJOQUxfU1RBUlRVUF9EQVRBCiBzdGQ6OnVuaXF1ZV9wdHI8djg6OlBsYXRmb3JtPiBJbml0aWFsaXplVjhGb3JQREZpdW0oCi0gICAgY29uc3Qgc3RkOjpzdHJpbmcmIGV4ZV9wYXRoKSB7Ci0gIHJldHVybiBJbml0aWFsaXplVjhDb21tb24oZXhlX3BhdGgpOworICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBleGVfcGF0aCwKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYganNfZmxhZ3MpIHsKKyAgcmV0dXJuIEluaXRpYWxpemVWOENvbW1vbihleGVfcGF0aCwganNfZmxhZ3MpOwogfQogI2VuZGlmICAvLyBWOF9VU0VfRVhURVJOQUxfU1RBUlRVUF9EQVRBCisKK3ZvaWQgU2h1dGRvd25WOEZvclBERml1bSgpIHsKKyNpZmRlZiBQREZfRU5BQkxFX1hGQQorICBjcHBnYzo6U2h1dGRvd25Qcm9jZXNzKCk7CisjZW5kaWYKKyAgdjg6OlY4OjpEaXNwb3NlKCk7CisgIHY4OjpWODo6RGlzcG9zZVBsYXRmb3JtKCk7Cit9CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Y4X2luaXRpYWxpemVyLmggYi90ZXN0aW5nL3Y4X2luaXRpYWxpemVyLmgKaW5kZXggYmQyMzAxYy4uZWNkNTkxMSAxMDA2NDQKLS0tIGEvdGVzdGluZy92OF9pbml0aWFsaXplci5oCisrKyBiL3Rlc3RpbmcvdjhfaW5pdGlhbGl6ZXIuaApAQCAtMSw0ICsxLDQgQEAKLS8vIENvcHlyaWdodCAyMDE5IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTkgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCkBAIC0yMywxMSArMjMsMTMgQEAKIC8vIHxzbmFwc2hvdF9ibG9ifCBpcyBhbiBvcHRpb25hbCBvdXQgcGFyYW1ldGVyLgogc3RkOjp1bmlxdWVfcHRyPHY4OjpQbGF0Zm9ybT4gSW5pdGlhbGl6ZVY4Rm9yUERGaXVtV2l0aFN0YXJ0dXBEYXRhKAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBleGVfcGF0aCwKKyAgICBjb25zdCBzdGQ6OnN0cmluZyYganNfZmxhZ3MsCiAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGJpbl9kaXIsCiAgICAgdjg6OlN0YXJ0dXBEYXRhKiBzbmFwc2hvdF9ibG9iKTsKICNlbHNlCiBzdGQ6OnVuaXF1ZV9wdHI8djg6OlBsYXRmb3JtPiBJbml0aWFsaXplVjhGb3JQREZpdW0oCisgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGpzX2ZsYWdzLAogICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBleGVfcGF0aCk7CiAjZW5kaWYKLQordm9pZCBTaHV0ZG93blY4Rm9yUERGaXVtKCk7CiAjZW5kaWYgIC8vIFRFU1RJTkdfVjhfSU5JVElBTElaRVJfSF8KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvdjhfdGVzdF9lbnZpcm9ubWVudC5jcHAgYi90ZXN0aW5nL3Y4X3Rlc3RfZW52aXJvbm1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2ZWVhZDcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Y4X3Rlc3RfZW52aXJvbm1lbnQuY3BwCkBAIC0wLDAgKzEsNzYgQEAKKy8vIENvcHlyaWdodCAyMDIwIFRoZSBQREZpdW0gQXV0aG9ycworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2luY2x1ZGUgInRlc3RpbmcvdjhfdGVzdF9lbnZpcm9ubWVudC5oIgorCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHN0cmluZz4KKworI2luY2x1ZGUgImNvcmUvZnhjcnQvZnhfc3lzdGVtLmgiCisjaW5jbHVkZSAidGVzdGluZy92OF9pbml0aWFsaXplci5oIgorI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2UvY2hlY2suaCIKKyNpbmNsdWRlICJ2OC9pbmNsdWRlL2xpYnBsYXRmb3JtL2xpYnBsYXRmb3JtLmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS92OC1pc29sYXRlLmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS92OC1wbGF0Zm9ybS5oIgorI2luY2x1ZGUgInY4L2luY2x1ZGUvdjgtc25hcHNob3QuaCIKKworbmFtZXNwYWNlIHsKKworVjhUZXN0RW52aXJvbm1lbnQqIGdfZW52aXJvbm1lbnQgPSBudWxscHRyOworCit9ICAvLyBuYW1lc3BhY2UKKworVjhUZXN0RW52aXJvbm1lbnQ6OlY4VGVzdEVudmlyb25tZW50KGNvbnN0IGNoYXIqIGV4ZV9uYW1lKQorICAgIDogZXhlX3BhdGhfKGV4ZV9uYW1lKSwKKyAgICAgIGFycmF5X2J1ZmZlcl9hbGxvY2F0b3JfKHN0ZDo6bWFrZV91bmlxdWU8Q0ZYX1Y4QXJyYXlCdWZmZXJBbGxvY2F0b3I+KCkpIHsKKyAgRENIRUNLKCFnX2Vudmlyb25tZW50KTsKKyAgZ19lbnZpcm9ubWVudCA9IHRoaXM7Cit9CisKK1Y4VGVzdEVudmlyb25tZW50Ojp+VjhUZXN0RW52aXJvbm1lbnQoKSB7CisgIERDSEVDSyhnX2Vudmlyb25tZW50KTsKKworI2lmZGVmIFY4X1VTRV9FWFRFUk5BTF9TVEFSVFVQX0RBVEEKKyAgaWYgKHN0YXJ0dXBfZGF0YV8pCisgICAgZnJlZShjb25zdF9jYXN0PGNoYXIqPihzdGFydHVwX2RhdGFfLT5kYXRhKSk7CisjZW5kaWYgIC8vIFY4X1VTRV9FWFRFUk5BTF9TVEFSVFVQX0RBVEEKKworICBnX2Vudmlyb25tZW50ID0gbnVsbHB0cjsKK30KKworLy8gc3RhdGljCitWOFRlc3RFbnZpcm9ubWVudCogVjhUZXN0RW52aXJvbm1lbnQ6OkdldEluc3RhbmNlKCkgeworICByZXR1cm4gZ19lbnZpcm9ubWVudDsKK30KKworLy8gc3RhdGljCit2b2lkIFY4VGVzdEVudmlyb25tZW50OjpQdW1wUGxhdGZvcm1NZXNzYWdlTG9vcCh2ODo6SXNvbGF0ZSogaXNvbGF0ZSkgeworICB2ODo6UGxhdGZvcm0qIHBsYXRmb3JtID0gR2V0SW5zdGFuY2UoKS0+cGxhdGZvcm0oKTsKKyAgd2hpbGUgKHY4OjpwbGF0Zm9ybTo6UHVtcE1lc3NhZ2VMb29wKHBsYXRmb3JtLCBpc29sYXRlKSkKKyAgICBjb250aW51ZTsKK30KKwordm9pZCBWOFRlc3RFbnZpcm9ubWVudDo6U2V0VXAoKSB7CisjaWZkZWYgVjhfVVNFX0VYVEVSTkFMX1NUQVJUVVBfREFUQQorICBpZiAoc3RhcnR1cF9kYXRhXykgeworICAgIHBsYXRmb3JtXyA9IEluaXRpYWxpemVWOEZvclBERml1bVdpdGhTdGFydHVwRGF0YShleGVfcGF0aF8sIHN0ZDo6c3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nKCksIG51bGxwdHIpOworICB9IGVsc2UgeworICAgIHN0YXJ0dXBfZGF0YV8gPSBzdGQ6Om1ha2VfdW5pcXVlPHY4OjpTdGFydHVwRGF0YT4oKTsKKyAgICBwbGF0Zm9ybV8gPSBJbml0aWFsaXplVjhGb3JQREZpdW1XaXRoU3RhcnR1cERhdGEoCisgICAgICAgIGV4ZV9wYXRoXywgc3RkOjpzdHJpbmcoKSwgc3RkOjpzdHJpbmcoKSwgc3RhcnR1cF9kYXRhXy5nZXQoKSk7CisgIH0KKyNlbHNlCisgIHBsYXRmb3JtXyA9IEluaXRpYWxpemVWOEZvclBERml1bShzdGQ6OnN0cmluZygpLCBleGVfcGF0aF8pOworI2VuZGlmICAvLyBWOF9VU0VfRVhURVJOQUxfU1RBUlRVUF9EQVRBCisKKyAgdjg6Oklzb2xhdGU6OkNyZWF0ZVBhcmFtcyBwYXJhbXM7CisgIHBhcmFtcy5hcnJheV9idWZmZXJfYWxsb2NhdG9yID0gYXJyYXlfYnVmZmVyX2FsbG9jYXRvcl8uZ2V0KCk7CisgIGlzb2xhdGVfLnJlc2V0KHY4OjpJc29sYXRlOjpOZXcocGFyYW1zKSk7Cit9CisKK3ZvaWQgVjhUZXN0RW52aXJvbm1lbnQ6OlRlYXJEb3duKCkgeworICBpc29sYXRlXy5yZXNldCgpOworICBTaHV0ZG93blY4Rm9yUERGaXVtKCk7Cit9CmRpZmYgLS1naXQgYS90ZXN0aW5nL3Y4X3Rlc3RfZW52aXJvbm1lbnQuaCBiL3Rlc3RpbmcvdjhfdGVzdF9lbnZpcm9ubWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhMDMwZTQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Y4X3Rlc3RfZW52aXJvbm1lbnQuaApAQCAtMCwwICsxLDUxIEBACisvLyBDb3B5cmlnaHQgMjAyMCBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpZm5kZWYgVEVTVElOR19WOF9URVNUX0VOVklST05NRU5UX0hfCisjZGVmaW5lIFRFU1RJTkdfVjhfVEVTVF9FTlZJUk9OTUVOVF9IXworCisjaWZuZGVmIFBERl9FTkFCTEVfVjgKKyNlcnJvciAiVjggbXVzdCBiZSBlbmFibGVkIgorI2VuZGlmICAvLyBQREZfRU5BQkxFX1Y4CisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlICJmeGpzL2NmeF92OC5oIgorI2luY2x1ZGUgImZ4anMvY2Z4X3Y4X2FycmF5X2J1ZmZlcl9hbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJ0ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCIKKworbmFtZXNwYWNlIHY4IHsKK2NsYXNzIElzb2xhdGU7CitjbGFzcyBQbGF0Zm9ybTsKK2NsYXNzIFN0YXJ0dXBEYXRhOworfSAgLy8gbmFtZXNwYWNlIHY4CisKK2NsYXNzIFRlc3RMb2FkZXI7CisKK2NsYXNzIFY4VGVzdEVudmlyb25tZW50IDogcHVibGljIHRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyBwdWJsaWM6CisgIGV4cGxpY2l0IFY4VGVzdEVudmlyb25tZW50KGNvbnN0IGNoYXIqIGV4ZV9wYXRoKTsKKyAgflY4VGVzdEVudmlyb25tZW50KCkgb3ZlcnJpZGU7CisKKyAgLy8gTm90ZTogR2V0SW5zdGFuY2UoKSBkb2VzIG5vdCBjcmVhdGUgb25lIGlmIGl0IGRvZXMgbm90IGV4aXN0LAorICAvLyBzbyB0aGUgbWFpbiBwcm9ncmFtIG11c3QgZXhwbGljaXRseSBhZGQgdGhpcyBlbnZpcm9tZW50LgorICBzdGF0aWMgVjhUZXN0RW52aXJvbm1lbnQqIEdldEluc3RhbmNlKCk7CisgIHN0YXRpYyB2b2lkIFB1bXBQbGF0Zm9ybU1lc3NhZ2VMb29wKHY4OjpJc29sYXRlKiBwSXNvbGF0ZSk7CisKKyAgLy8gdGVzdGluZzo6RW52aXJvbm1lbnQ6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZTsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlOworCisgIHY4OjpQbGF0Zm9ybSogcGxhdGZvcm0oKSBjb25zdCB7IHJldHVybiBwbGF0Zm9ybV8uZ2V0KCk7IH0KKyAgdjg6Oklzb2xhdGUqIGlzb2xhdGUoKSBjb25zdCB7IHJldHVybiBpc29sYXRlXy5nZXQoKTsgfQorCisgcHJpdmF0ZToKKyAgY29uc3QgY2hhciogY29uc3QgZXhlX3BhdGhfOworICBzdGQ6OnVuaXF1ZV9wdHI8djg6OlN0YXJ0dXBEYXRhPiBzdGFydHVwX2RhdGFfOworICBzdGQ6OnVuaXF1ZV9wdHI8djg6OlBsYXRmb3JtPiBwbGF0Zm9ybV87CisgIHN0ZDo6dW5pcXVlX3B0cjxDRlhfVjhBcnJheUJ1ZmZlckFsbG9jYXRvcj4gYXJyYXlfYnVmZmVyX2FsbG9jYXRvcl87CisgIHN0ZDo6dW5pcXVlX3B0cjx2ODo6SXNvbGF0ZSwgQ0ZYX1Y4SXNvbGF0ZURlbGV0ZXI+IGlzb2xhdGVfOworfTsKKworI2VuZGlmICAvLyBURVNUSU5HX1Y4X1RFU1RfRU5WSVJPTk1FTlRfSF8KZGlmZiAtLWdpdCBhL3Rlc3RpbmcveGZhX2pzX2VtYmVkZGVyX3Rlc3QuY3BwIGIvdGVzdGluZy94ZmFfanNfZW1iZWRkZXJfdGVzdC5jcHAKaW5kZXggMmY5Y2M2Ny4uMjY0NzE1NyAxMDA2NDQKLS0tIGEvdGVzdGluZy94ZmFfanNfZW1iZWRkZXJfdGVzdC5jcHAKKysrIGIvdGVzdGluZy94ZmFfanNfZW1iZWRkZXJfdGVzdC5jcHAKQEAgLTEsNDcgKzEsMzcgQEAKLS8vIENvcHlyaWdodCAyMDE3IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gQ29weXJpZ2h0IDIwMTcgVGhlIFBERml1bSBBdXRob3JzCiAvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgogCiAjaW5jbHVkZSAidGVzdGluZy94ZmFfanNfZW1iZWRkZXJfdGVzdC5oIgogCisjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHN0cmluZz4KIAogI2luY2x1ZGUgImZwZGZzZGsvY3BkZnNka19oZWxwZXJzLmgiCiAjaW5jbHVkZSAiZnBkZnNkay9mcGRmeGZhL2NwZGZ4ZmFfY29udGV4dC5oIgorI2luY2x1ZGUgImZ4anMvZnh2OC5oIgogI2luY2x1ZGUgImZ4anMveGZhL2NmeGpzZV9lbmdpbmUuaCIKKyNpbmNsdWRlICJmeGpzL3hmYS9jZnhqc2VfaXNvbGF0ZXRyYWNrZXIuaCIKICNpbmNsdWRlICJmeGpzL3hmYS9jZnhqc2VfdmFsdWUuaCIKICNpbmNsdWRlICJ0ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCIKLSNpbmNsdWRlICJ0aGlyZF9wYXJ0eS9iYXNlL3B0cl91dGlsLmgiCi0jaW5jbHVkZSAieGZhL2Z4ZmEvY3hmYV9mZmFwcC5oIgorI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2UvY2hlY2tfb3AuaCIKKyNpbmNsdWRlICJ2OC9pbmNsdWRlL3Y4LWNvbnRhaW5lci5oIgorI2luY2x1ZGUgInY4L2luY2x1ZGUvdjgtbG9jYWwtaGFuZGxlLmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS92OC12YWx1ZS5oIgogCi1YRkFKU0VtYmVkZGVyVGVzdDo6WEZBSlNFbWJlZGRlclRlc3QoKQotICAgIDogYXJyYXlfYnVmZmVyX2FsbG9jYXRvcl8oCi0gICAgICAgICAgcGRmaXVtOjpNYWtlVW5pcXVlPENGWF9WOEFycmF5QnVmZmVyQWxsb2NhdG9yPigpKSB7fQorWEZBSlNFbWJlZGRlclRlc3Q6OlhGQUpTRW1iZWRkZXJUZXN0KCkgPSBkZWZhdWx0OwogCi1YRkFKU0VtYmVkZGVyVGVzdDo6flhGQUpTRW1iZWRkZXJUZXN0KCkge30KK1hGQUpTRW1iZWRkZXJUZXN0Ojp+WEZBSlNFbWJlZGRlclRlc3QoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgWEZBSlNFbWJlZGRlclRlc3Q6OlNldFVwKCkgewotICB2ODo6SXNvbGF0ZTo6Q3JlYXRlUGFyYW1zIHBhcmFtczsKLSAgcGFyYW1zLmFycmF5X2J1ZmZlcl9hbGxvY2F0b3IgPSBhcnJheV9idWZmZXJfYWxsb2NhdG9yXy5nZXQoKTsKLSAgaXNvbGF0ZV8gPSB2ODo6SXNvbGF0ZTo6TmV3KHBhcmFtcyk7Ci0gIEFTU0VSVF9UUlVFKGlzb2xhdGVfKTsKLQotICBFbWJlZGRlclRlc3Q6OlNldEV4dGVybmFsSXNvbGF0ZShpc29sYXRlXyk7Ci0gIEVtYmVkZGVyVGVzdDo6U2V0VXAoKTsKLQotICBDWEZBX0ZGQXBwOjpTa2lwRm9udExvYWRGb3JUZXN0aW5nKHRydWUpOworICBKU0VtYmVkZGVyVGVzdDo6U2V0VXAoKTsKIH0KIAogdm9pZCBYRkFKU0VtYmVkZGVyVGVzdDo6VGVhckRvd24oKSB7Ci0gIENYRkFfRkZBcHA6OlNraXBGb250TG9hZEZvclRlc3RpbmcoZmFsc2UpOwotCi0gIHZhbHVlXy5yZXNldCgpOworICB2YWx1ZV8uUmVzZXQoKTsKICAgc2NyaXB0X2NvbnRleHRfID0gbnVsbHB0cjsKIAotICBFbWJlZGRlclRlc3Q6OlRlYXJEb3duKCk7Ci0KLSAgaXNvbGF0ZV8tPkRpc3Bvc2UoKTsKLSAgaXNvbGF0ZV8gPSBudWxscHRyOworICBKU0VtYmVkZGVyVGVzdDo6VGVhckRvd24oKTsKIH0KIAogQ1hGQV9Eb2N1bWVudCogWEZBSlNFbWJlZGRlclRlc3Q6OkdldFhGQURvY3VtZW50KCkgY29uc3QgewpAQCAtNTMsNyArNDMsMTUgQEAKICAgaWYgKCFwQ29udGV4dCkKICAgICByZXR1cm4gbnVsbHB0cjsKIAotICByZXR1cm4gcENvbnRleHQtPkdldFhGQURvYygpLT5HZXRYRkFEb2MoKTsKKyAgQ1hGQV9GRkRvYyogcEZGRG9jID0gcENvbnRleHQtPkdldFhGQURvYygpOworICBpZiAoIXBGRkRvYykKKyAgICByZXR1cm4gbnVsbHB0cjsKKworICByZXR1cm4gcEZGRG9jLT5HZXRYRkFEb2MoKTsKK30KKwordjg6OkxvY2FsPHY4OjpWYWx1ZT4gWEZBSlNFbWJlZGRlclRlc3Q6OkdldFZhbHVlKCkgY29uc3QgeworICByZXR1cm4gdjg6OkxvY2FsPHY4OjpWYWx1ZT46Ok5ldyhpc29sYXRlKCksIHZhbHVlXyk7CiB9CiAKIGJvb2wgWEZBSlNFbWJlZGRlclRlc3Q6Ok9wZW5Eb2N1bWVudFdpdGhPcHRpb25zKApAQCAtNjIsMzcgKzYwLDU0IEBACiAgICAgTGluZWFyaXplT3B0aW9uIGxpbmVhcml6ZV9vcHRpb24sCiAgICAgSmF2YVNjcmlwdE9wdGlvbiBqYXZhc2NyaXB0X29wdGlvbikgewogICAvLyBKUyByZXF1aXJlZCBmb3IgWEZBLgotICBBU1NFUlQoamF2YXNjcmlwdF9vcHRpb24gPT0gSmF2YVNjcmlwdE9wdGlvbjo6a0VuYWJsZUphdmFTY3JpcHQpOworICBEQ0hFQ0tfRVEoamF2YXNjcmlwdF9vcHRpb24sIEphdmFTY3JpcHRPcHRpb246OmtFbmFibGVKYXZhU2NyaXB0KTsKICAgaWYgKCFFbWJlZGRlclRlc3Q6Ok9wZW5Eb2N1bWVudFdpdGhPcHRpb25zKAogICAgICAgICAgIGZpbGVuYW1lLCBwYXNzd29yZCwgbGluZWFyaXplX29wdGlvbiwgamF2YXNjcmlwdF9vcHRpb24pKSB7CiAgICAgcmV0dXJuIGZhbHNlOwogICB9Ci0gIHNjcmlwdF9jb250ZXh0XyA9IEdldFhGQURvY3VtZW50KCktPkdldFNjcmlwdENvbnRleHQoKTsKKyAgQ1hGQV9Eb2N1bWVudCogcERvYyA9IEdldFhGQURvY3VtZW50KCk7CisgIGlmICghcERvYykKKyAgICByZXR1cm4gZmFsc2U7CisKKyAgc2NyaXB0X2NvbnRleHRfID0gcERvYy0+R2V0U2NyaXB0Q29udGV4dCgpOwogICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBYRkFKU0VtYmVkZGVyVGVzdDo6RXhlY3V0ZShCeXRlU3RyaW5nVmlldyBpbnB1dCkgeworICBDRlhKU0VfU2NvcGVVdGlsX0lzb2xhdGVIYW5kbGVDb250ZXh0IHNjb3BlKAorICAgICAgc2NyaXB0X2NvbnRleHRfLT5HZXRKc2VDb250ZXh0Rm9yVGVzdCgpKTsKICAgaWYgKEV4ZWN1dGVIZWxwZXIoaW5wdXQpKQogICAgIHJldHVybiB0cnVlOwogCi0gIENGWEpTRV9WYWx1ZSBtc2coR2V0SXNvbGF0ZSgpKTsKLSAgdmFsdWVfLT5HZXRPYmplY3RQcm9wZXJ0eUJ5SWR4KDEsICZtc2cpOwogICBmcHJpbnRmKHN0ZGVyciwgIkZvcm1DYWxjOiAlLipzXG4iLCBzdGF0aWNfY2FzdDxpbnQ+KGlucHV0LkdldExlbmd0aCgpKSwKICAgICAgICAgICBpbnB1dC51bnRlcm1pbmF0ZWRfY19zdHIoKSk7Ci0gIC8vIElmIHRoZSBwYXJzaW5nIG9mIHRoZSBpbnB1dCBmYWlscywgdGhlbiB2OCB3aWxsIG5vdCBydW4sIHNvIHRoZXJlIHdpbGwgYmUKLSAgLy8gbm8gdmFsdWUgaGVyZSB0byBwcmludC4KLSAgaWYgKG1zZy5Jc1N0cmluZygpICYmICFtc2cuVG9XaWRlU3RyaW5nKCkuSXNFbXB0eSgpKQotICAgIGZwcmludGYoc3RkZXJyLCAiSlMgRVJST1I6ICVsc1xuIiwgbXNnLlRvV2lkZVN0cmluZygpLmNfc3RyKCkpOworCisgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHJlc3VsdCA9IEdldFZhbHVlKCk7CisgIGlmICghZnh2ODo6SXNBcnJheShyZXN1bHQpKQorICAgIHJldHVybiBmYWxzZTsKKworICB2ODo6TG9jYWw8djg6OlZhbHVlPiBtc2cgPSBmeHY4OjpSZWVudHJhbnRHZXRBcnJheUVsZW1lbnRIZWxwZXIoCisgICAgICBpc29sYXRlKCksIHJlc3VsdC5Bczx2ODo6QXJyYXk+KCksIDEpOworICBpZiAoIWZ4djg6OklzU3RyaW5nKG1zZykpCisgICAgcmV0dXJuIGZhbHNlOworCisgIFdpZGVTdHJpbmcgc3RyID0gZnh2ODo6UmVlbnRyYW50VG9XaWRlU3RyaW5nSGVscGVyKGlzb2xhdGUoKSwgbXNnKTsKKyAgaWYgKCFzdHIuSXNFbXB0eSgpKQorICAgIGZwcmludGYoc3RkZXJyLCAiSlMgRVJST1I6ICVsc1xuIiwgc3RyLmNfc3RyKCkpOwogICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgWEZBSlNFbWJlZGRlclRlc3Q6OkV4ZWN1dGVTaWxlbmNlRmFpbHVyZShCeXRlU3RyaW5nVmlldyBpbnB1dCkgeworICBDRlhKU0VfU2NvcGVVdGlsX0lzb2xhdGVIYW5kbGVDb250ZXh0IHNjb3BlKAorICAgICAgc2NyaXB0X2NvbnRleHRfLT5HZXRKc2VDb250ZXh0Rm9yVGVzdCgpKTsKICAgcmV0dXJuIEV4ZWN1dGVIZWxwZXIoaW5wdXQpOwogfQogCiBib29sIFhGQUpTRW1iZWRkZXJUZXN0OjpFeGVjdXRlSGVscGVyKEJ5dGVTdHJpbmdWaWV3IGlucHV0KSB7Ci0gIHZhbHVlXyA9IHBkZml1bTo6TWFrZVVuaXF1ZTxDRlhKU0VfVmFsdWU+KEdldElzb2xhdGUoKSk7Ci0gIHJldHVybiBzY3JpcHRfY29udGV4dF8tPlJ1blNjcmlwdChDWEZBX1NjcmlwdDo6VHlwZTo6Rm9ybWNhbGMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaWRlU3RyaW5nOjpGcm9tVVRGOChpbnB1dCkuQXNTdHJpbmdWaWV3KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZV8uZ2V0KCksIEdldFhGQURvY3VtZW50KCktPkdldFJvb3QoKSk7CisgIGF1dG8gdmFsdWUgPSBzdGQ6Om1ha2VfdW5pcXVlPENGWEpTRV9WYWx1ZT4oKTsKKyAgYm9vbCByZXQgPSBzY3JpcHRfY29udGV4dF8tPlJ1blNjcmlwdCgKKyAgICAgIENYRkFfU2NyaXB0OjpUeXBlOjpGb3JtY2FsYywgV2lkZVN0cmluZzo6RnJvbVVURjgoaW5wdXQpLkFzU3RyaW5nVmlldygpLAorICAgICAgdmFsdWUuZ2V0KCksIEdldFhGQURvY3VtZW50KCktPkdldFJvb3QoKSk7CisgIHZhbHVlXy5SZXNldChpc29sYXRlKCksIHZhbHVlLT5HZXRWYWx1ZShpc29sYXRlKCkpKTsKKyAgcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcveGZhX2pzX2VtYmVkZGVyX3Rlc3QuaCBiL3Rlc3RpbmcveGZhX2pzX2VtYmVkZGVyX3Rlc3QuaAppbmRleCA0MTJmZmQ5Li45YzE0ODY3IDEwMDY0NAotLS0gYS90ZXN0aW5nL3hmYV9qc19lbWJlZGRlcl90ZXN0LmgKKysrIGIvdGVzdGluZy94ZmFfanNfZW1iZWRkZXJfdGVzdC5oCkBAIC0xLDIyICsxLDIyIEBACi0vLyBDb3B5cmlnaHQgMjAxNyBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIENvcHlyaWdodCAyMDE3IFRoZSBQREZpdW0gQXV0aG9ycwogLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KIAogI2lmbmRlZiBURVNUSU5HX1hGQV9KU19FTUJFRERFUl9URVNUX0hfCiAjZGVmaW5lIFRFU1RJTkdfWEZBX0pTX0VNQkVEREVSX1RFU1RfSF8KIAotI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDxzdHJpbmc+CiAKLSNpbmNsdWRlICJ0ZXN0aW5nL2VtYmVkZGVyX3Rlc3QuaCIKLSNpbmNsdWRlICJ4ZmEvZnhmYS9wYXJzZXIvY3hmYV9kb2N1bWVudC5oIgotI2luY2x1ZGUgInhmYS9meGZhL3BhcnNlci9jeGZhX25vZGUuaCIKKyNpbmNsdWRlICJjb3JlL2Z4Y3J0L3N0cmluZ192aWV3X3RlbXBsYXRlLmgiCisjaW5jbHVkZSAidGVzdGluZy9qc19lbWJlZGRlcl90ZXN0LmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS92OC1sb2NhbC1oYW5kbGUuaCIKKyNpbmNsdWRlICJ2OC9pbmNsdWRlL3Y4LXBlcnNpc3RlbnQtaGFuZGxlLmgiCisjaW5jbHVkZSAidjgvaW5jbHVkZS92OC12YWx1ZS5oIgogCiBjbGFzcyBDRlhKU0VfRW5naW5lOwotY2xhc3MgQ0ZYSlNFX1ZhbHVlOwotY2xhc3MgQ0ZYX1Y4QXJyYXlCdWZmZXJBbGxvY2F0b3I7CitjbGFzcyBDWEZBX0RvY3VtZW50OwogCi1jbGFzcyBYRkFKU0VtYmVkZGVyVGVzdCA6IHB1YmxpYyBFbWJlZGRlclRlc3QgeworY2xhc3MgWEZBSlNFbWJlZGRlclRlc3QgOiBwdWJsaWMgSlNFbWJlZGRlclRlc3QgewogIHB1YmxpYzoKICAgWEZBSlNFbWJlZGRlclRlc3QoKTsKICAgflhGQUpTRW1iZWRkZXJUZXN0KCkgb3ZlcnJpZGU7CkBAIC0yOSwyMiArMjksMTggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaW5lYXJpemVPcHRpb24gbGluZWFyaXplX29wdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0T3B0aW9uIGphdmFzY3JpcHRfb3B0aW9uKSBvdmVycmlkZTsKIAotICB2ODo6SXNvbGF0ZSogR2V0SXNvbGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGlzb2xhdGVfOyB9CiAgIENYRkFfRG9jdW1lbnQqIEdldFhGQURvY3VtZW50KCkgY29uc3Q7CisgIENGWEpTRV9FbmdpbmUqIEdldFNjcmlwdENvbnRleHQoKSBjb25zdCB7IHJldHVybiBzY3JpcHRfY29udGV4dF87IH0KKyAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gR2V0VmFsdWUoKSBjb25zdDsKIAogICBib29sIEV4ZWN1dGUoQnl0ZVN0cmluZ1ZpZXcgaW5wdXQpOwogICBib29sIEV4ZWN1dGVTaWxlbmNlRmFpbHVyZShCeXRlU3RyaW5nVmlldyBpbnB1dCk7CiAKLSAgQ0ZYSlNFX0VuZ2luZSogR2V0U2NyaXB0Q29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIHNjcmlwdF9jb250ZXh0XzsgfQotICBDRlhKU0VfVmFsdWUqIEdldFZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWVfLmdldCgpOyB9Ci0KICBwcml2YXRlOgotICBzdGQ6OnVuaXF1ZV9wdHI8Q0ZYX1Y4QXJyYXlCdWZmZXJBbGxvY2F0b3I+IGFycmF5X2J1ZmZlcl9hbGxvY2F0b3JfOwotICBzdGQ6OnVuaXF1ZV9wdHI8Q0ZYSlNFX1ZhbHVlPiB2YWx1ZV87Ci0gIHY4OjpJc29sYXRlKiBpc29sYXRlXyA9IG51bGxwdHI7Ci0gIENGWEpTRV9FbmdpbmUqIHNjcmlwdF9jb250ZXh0XyA9IG51bGxwdHI7Ci0KICAgYm9vbCBFeGVjdXRlSGVscGVyKEJ5dGVTdHJpbmdWaWV3IGlucHV0KTsKKworICB2ODo6R2xvYmFsPHY4OjpWYWx1ZT4gdmFsdWVfOworICBDRlhKU0VfRW5naW5lKiBzY3JpcHRfY29udGV4dF8gPSBudWxscHRyOwogfTsKIAogI2VuZGlmICAvLyBURVNUSU5HX1hGQV9KU19FTUJFRERFUl9URVNUX0hfCmRpZmYgLS1naXQgYS90ZXN0aW5nL3hmYV90ZXN0X2Vudmlyb25tZW50LmNwcCBiL3Rlc3RpbmcveGZhX3Rlc3RfZW52aXJvbm1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ZjA5YjYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3hmYV90ZXN0X2Vudmlyb25tZW50LmNwcApAQCAtMCwwICsxLDQwIEBACisvLyBDb3B5cmlnaHQgMjAxOSBUaGUgUERGaXVtIEF1dGhvcnMKKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRlICJ0ZXN0aW5nL3hmYV90ZXN0X2Vudmlyb25tZW50LmgiCisKKyNpbmNsdWRlICJjb3JlL2Z4Z2UvY2Z4X2ZvbnRtZ3IuaCIKKyNpbmNsdWRlICJjb3JlL2Z4Z2UvY2Z4X2dlbW9kdWxlLmgiCisjaW5jbHVkZSAiY29yZS9meGdlL3N5c3RlbWZvbnRpbmZvX2lmYWNlLmgiCisjaW5jbHVkZSAidGhpcmRfcGFydHkvYmFzZS9jaGVjay5oIgorI2luY2x1ZGUgInhmYS9mZ2FzL2ZvbnQvY2ZnYXNfZ2Vtb2R1bGUuaCIKKworbmFtZXNwYWNlIHsKKworWEZBVGVzdEVudmlyb25tZW50KiBnX2VudiA9IG51bGxwdHI7CisKK30gIC8vIG5hbWVzcGFjZQorCitYRkFUZXN0RW52aXJvbm1lbnQ6OlhGQVRlc3RFbnZpcm9ubWVudCgpIHsKKyAgRENIRUNLKCFnX2Vudik7CisgIGdfZW52ID0gdGhpczsKK30KKworWEZBVGVzdEVudmlyb25tZW50Ojp+WEZBVGVzdEVudmlyb25tZW50KCkgeworICBEQ0hFQ0soZ19lbnYpOworICBnX2VudiA9IG51bGxwdHI7Cit9CisKK3ZvaWQgWEZBVGVzdEVudmlyb25tZW50OjpTZXRVcCgpIHsKKyAgQ0ZYX0dFTW9kdWxlOjpHZXQoKS0+R2V0Rm9udE1ncigpLT5HZXRCdWlsdGluTWFwcGVyKCktPlNldFN5c3RlbUZvbnRJbmZvKAorICAgICAgQ0ZYX0dFTW9kdWxlOjpHZXQoKS0+R2V0UGxhdGZvcm0oKS0+Q3JlYXRlRGVmYXVsdFN5c3RlbUZvbnRJbmZvKCkpOworCisgIC8vIFRoZSBmb250IGxvYWRpbmcgdGhhdCB0YWtlcyBwbGFjZSBpbiBDRkdBU19HRU1vZHVsZTo6Q3JlYXRlKCkgaXMgc2xvdywKKyAgLy8gYnV0IHdlIGRvIGl0IG9ubHkgb25jZSBwZXIgYmluYXJ5IGV4ZWN1dGlvbiwgbm90IG9uY2UgcGVyIHRlc3QuCisgIENGR0FTX0dFTW9kdWxlOjpDcmVhdGUoKTsKK30KKwordm9pZCBYRkFUZXN0RW52aXJvbm1lbnQ6OlRlYXJEb3duKCkgeworICBDRkdBU19HRU1vZHVsZTo6RGVzdHJveSgpOworfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy94ZmFfdGVzdF9lbnZpcm9ubWVudC5oIGIvdGVzdGluZy94ZmFfdGVzdF9lbnZpcm9ubWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MzU2YmQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3hmYV90ZXN0X2Vudmlyb25tZW50LmgKQEAgLTAsMCArMSwyNCBAQAorLy8gQ29weXJpZ2h0IDIwMTkgVGhlIFBERml1bSBBdXRob3JzCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaWZuZGVmIFRFU1RJTkdfWEZBX1RFU1RfRU5WSVJPTk1FTlRfSF8KKyNkZWZpbmUgVEVTVElOR19YRkFfVEVTVF9FTlZJUk9OTUVOVF9IXworCisjaW5jbHVkZSAidGVzdGluZy9ndGVzdC9pbmNsdWRlL2d0ZXN0L2d0ZXN0LmgiCisKKyNpZm5kZWYgUERGX0VOQUJMRV9YRkEKKyNlcnJvciAiWEZBIG11c3QgYmUgZW5hYmxlZCIKKyNlbmRpZgorCitjbGFzcyBYRkFUZXN0RW52aXJvbm1lbnQgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJvbm1lbnQgeworIHB1YmxpYzoKKyAgWEZBVGVzdEVudmlyb25tZW50KCk7CisgIH5YRkFUZXN0RW52aXJvbm1lbnQoKTsKKworICAvLyB0ZXN0aW5nOjpUZXN0RW52aXJvbm1lbnQ6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZTsKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlOworfTsKKworI2VuZGlmICAvLyBURVNUSU5HX1hGQV9URVNUX0VOVklST05NRU5UX0hfCmRpZmYgLS1naXQgYS90ZXN0aW5nL3hmYV91bml0X3Rlc3Rfc3VwcG9ydC5jcHAgYi90ZXN0aW5nL3hmYV91bml0X3Rlc3Rfc3VwcG9ydC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjYzJkNmMuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy94ZmFfdW5pdF90ZXN0X3N1cHBvcnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIwMTkgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotCi0jaW5jbHVkZSAidGVzdGluZy94ZmFfdW5pdF90ZXN0X3N1cHBvcnQuaCIKLQotI2luY2x1ZGUgPG1lbW9yeT4KLSNpbmNsdWRlIDx1dGlsaXR5PgotCi0jaW5jbHVkZSAiY29yZS9meGdlL2NmeF9mb250bWdyLmgiCi0jaW5jbHVkZSAiY29yZS9meGdlL2NmeF9nZW1vZHVsZS5oIgotI2luY2x1ZGUgImNvcmUvZnhnZS9zeXN0ZW1mb250aW5mb19pZmFjZS5oIgotI2luY2x1ZGUgInRlc3RpbmcvZ3Rlc3QvaW5jbHVkZS9ndGVzdC9ndGVzdC5oIgotI2luY2x1ZGUgInRoaXJkX3BhcnR5L2Jhc2UvcHRyX3V0aWwuaCIKLSNpbmNsdWRlICJ4ZmEvZmdhcy9mb250L2NmZ2FzX2ZvbnRtZ3IuaCIKLQotbmFtZXNwYWNlIHsKLQotLy8gVGhlIGxvYWRpbmcgdGltZSBvZiB0aGUgQ0ZHQVNfRm9udE1nciBpcyBsaW5lYXIgaW4gdGhlIG51bWJlciBvZiB0aW1lcyBpdCBpcwotLy8gbG9hZGVkLiBTbywgaWYgYSB0ZXN0IHN1aXRlIGhhcyBhIGxvdCBvZiB0ZXN0cyB0aGF0IG5lZWQgYSBmb250IG1hbmFnZXIgdGhleQotLy8gY2FuIGVuZCB1cCBleGVjdXRpbmcgdmVyeSwgdmVyeSBzbG93bHkuCi1jbGFzcyBYRkFUZXN0RW52aXJvbm1lbnQgZmluYWwgOiBwdWJsaWMgdGVzdGluZzo6RW52aXJvbm1lbnQgewotIHB1YmxpYzoKLSAgLy8gdGVzdGluZzo6RW52aXJvbm1lbnQ6Ci0gIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7Ci0gICAgYXV0byBmb250X21nciA9IHBkZml1bTo6TWFrZVVuaXF1ZTxDRkdBU19Gb250TWdyPigpOwotICAgIGlmIChmb250X21nci0+RW51bUZvbnRzKCkpCi0gICAgICBmb250X21ncl8gPSBzdGQ6Om1vdmUoZm9udF9tZ3IpOwotICB9Ci0gIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IGZvbnRfbWdyXy5yZXNldCgpOyB9Ci0KLSAgQ0ZHQVNfRm9udE1nciogRm9udE1hbmFnZXIoKSBjb25zdCB7IHJldHVybiBmb250X21ncl8uZ2V0KCk7IH0KLQotIHByaXZhdGU6Ci0gIHN0ZDo6dW5pcXVlX3B0cjxDRkdBU19Gb250TWdyPiBmb250X21ncl87Ci19OwotCi1YRkFUZXN0RW52aXJvbm1lbnQqIGdfZW52ID0gbnVsbHB0cjsKLQotfSAgLy8gbmFtZXNwYWNlCi0KLXZvaWQgSW5pdGlhbGl6ZVhGQVRlc3RFbnZpcm9ubWVudCgpIHsKLSAgLy8gfGdfZW52fCB3aWxsIGJlIGRlbGV0ZWQgYnkgZ3Rlc3QuCi0gIGdfZW52ID0gbmV3IFhGQVRlc3RFbnZpcm9ubWVudCgpOwotICBBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoZ19lbnYpOwotCi0gIC8vIFRPRE8oZHNpbmNsYWlyKTogVGhpcyBmb250IGxvYWRpbmcgaXMgc2xvdy4gV2Ugc2hvdWxkIG1ha2UgYSB0ZXN0IGZvbnQKLSAgLy8gbG9hZGVyIHdoaWNoIGxvYWRzIHVwIGEgc2luZ2xlIGZvbnQgd2UgdXNlIGluIGFsbCB0ZXN0cy4KLSAgQ0ZYX0dFTW9kdWxlOjpHZXQoKS0+R2V0Rm9udE1ncigpLT5TZXRTeXN0ZW1Gb250SW5mbygKLSAgICAgIFN5c3RlbUZvbnRJbmZvSWZhY2U6OkNyZWF0ZURlZmF1bHQobnVsbHB0cikpOwotfQotCi1DRkdBU19Gb250TWdyKiBHZXRHbG9iYWxGb250TWFuYWdlcigpIHsKLSAgcmV0dXJuIGdfZW52LT5Gb250TWFuYWdlcigpOwotfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy94ZmFfdW5pdF90ZXN0X3N1cHBvcnQuaCBiL3Rlc3RpbmcveGZhX3VuaXRfdGVzdF9zdXBwb3J0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhNTQ3NzguLjAwMDAwMDAKLS0tIGEvdGVzdGluZy94ZmFfdW5pdF90ZXN0X3N1cHBvcnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE5IFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQotLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLQotI2lmbmRlZiBURVNUSU5HX1hGQV9VTklUX1RFU1RfU1VQUE9SVF9IXwotI2RlZmluZSBURVNUSU5HX1hGQV9VTklUX1RFU1RfU1VQUE9SVF9IXwotCi0jaWZuZGVmIFBERl9FTkFCTEVfWEZBCi0jZXJyb3IgIlhGQSBtdXN0IGJlIGVuYWJsZWQiCi0jZW5kaWYKLQotY2xhc3MgQ0ZHQVNfRm9udE1ncjsKLQotdm9pZCBJbml0aWFsaXplWEZBVGVzdEVudmlyb25tZW50KCk7Ci0KLUNGR0FTX0ZvbnRNZ3IqIEdldEdsb2JhbEZvbnRNYW5hZ2VyKCk7Ci0KLSNlbmRpZiAgLy8gVEVTVElOR19YRkFfVU5JVF9URVNUX1NVUFBPUlRfSF8K